在 Linux 上查找产品 UUID 适用于 CLI,但不适用于 PHP


finding product UUID on Linux works on CLI, but not in PHP

当我从 linux 命令行运行以下命令(以 root 身份)时:

cat /sys/devices/virtual/dmi/id/product_uuid

我得到了机器的UUID。 但是当我在 php 中执行此操作时:

echo `cat /sys/devices/virtual/dmi/id/product_uuid`;

我没有得到输出。 PHP 中的 A 显示我www-data这是我所期望的。

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

更新:我相信这是一个权限问题。 当将 product_uuid 文件的权限从 r-- --- --- for root:root 更改为 r-- --- r--, 我可以通过 PHP 读取文件,但更愿意调用 shell 脚本作为可以获取文件内容的 www-data。

你应该在php中使用exec函数

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

请使用shell_exec()函数获取输出

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

这会将输出显示为字符串