我正在尝试在PHP中执行以下命令:
<?php exec("xdg-open file") ?>
<?php exec("python file.py") ?>
所有文件都在/var/www/html
。
其他更简单的命令似乎正在起作用。例如:
<?php exec("touch file.txt") ?>
<?php echo exec("ls") ?>
<?php echo exec("whoami") ?>
我只是希望能够使用PHP运行任何Python / shell命令(没有需要sudo的那些)。这是一个许可问题吗?如果是这样,我该怎么办?
答案 0 :(得分:0)
要执行文件,请确保该文件具有可执行权限。
chmod +x file.py
在服务器环境中,如果由另一个进程运行,例如PHP通过Apache / nginX运行,则这些权限必须与运行该服务器进程的用户相关联。
例如,假设您的文件名是file.py
必须设置fily.py的权限,以使所有者与Web服务器相同,并且该所有者具有可执行权限。使用chown
我们可以更改所有者,假设我们的网络服务器作为http用户和http组运行:
chown http:http file.py
chmod o+x file.py
如果流程不是所有者,而是在同一个群组中:
chmod g+x file.py
或两者都没有:
chmod o+x file.py