Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux上查找产品UUID可以在CLI上工作,但不能在PHP中工作_Php_Linux_Command Line Interface - Fatal编程技术网

在Linux上查找产品UUID可以在CLI上工作,但不能在PHP中工作

在Linux上查找产品UUID可以在CLI上工作,但不能在PHP中工作,php,linux,command-line-interface,Php,Linux,Command Line Interface,当我从linux命令行以root用户身份运行此命令时: cat /sys/devices/virtual/dmi/id/product_uuid 我对机器的UUID很了解。但当我在php中执行此操作时: echo `cat /sys/devices/virtual/dmi/id/product_uuid`; 我没有得到输出。PHP中的一个例子显示我是www数据,这是我所期望的 显而易见的问题是:为什么没有产出?如果这是一个权限问题,有没有办法将该命令放在shell脚本中,并通过PHP调用它?

当我从linux命令行以root用户身份运行此命令时:

cat /sys/devices/virtual/dmi/id/product_uuid
我对机器的UUID很了解。但当我在php中执行此操作时:

echo `cat /sys/devices/virtual/dmi/id/product_uuid`;
我没有得到输出。PHP中的一个例子显示我是www数据,这是我所期望的

显而易见的问题是:为什么没有产出?如果这是一个权限问题,有没有办法将该命令放在shell脚本中,并通过PHP调用它?谢谢

更新:我认为这是一个许可问题。当将product_uuid文件的权限从r---for root:root更改为r--r-,我可以通过PHP读取该文件,但更愿意将shell脚本称为可以获取文件内容的www数据。

您应该在PHP中使用exec函数

echo exec('cat /sys/devices/virtual/dmi/id/product_uuid');
请使用shell_exec函数获取输出

echo shell_exec('/sys/devices/virtual/dmi/id/product_uuid');

这将以字符串形式显示输出

您使用uuid的目的是什么?你知道它很容易被欺骗,并且不是确定计算机唯一性的安全方法吗?这不是我的问题,我想我会等待其他人的回答。您的问题的答案是,它被用来确定一组安全的程序员中5-6台计算机的身份,然后确定我们要连接到的数据库的位置。我们都在同一组中,所有这些信息都是每台计算机的内部信息。我不担心在这种情况下它会被欺骗。啊哈,很公平。只是想确保你知道。但是,您应该知道,有些计算机在查询uuid时不会返回实际的uuid,因为网络设备不会返回uuid。另一方面,在回答您的问题时,php脚本和命令行条目是否由同一用户运行?如果您执行$output=`cat…`,它是否有效;echo$输出;,就像在文件里一样?其他命令是否有效?echo`ls-la`有用吗?我敢肯定,在你最后一次发表评论@will之后,我进行了编辑,说到底,这是一个权限问题。