使用PHP exec()运行python脚本的权限

时间:2016-12-10 23:08:48

标签: php permissions

我正在尝试在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的那些)。这是一个许可问题吗?如果是这样,我该怎么办?

1 个答案:

答案 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