我见过很多其他人遇到类似的问题,他们无法从PHP运行Python脚本。我遇到了同样的情况,但我已经尝试了人们推荐的所有解决方案,但仍然没有成功。我也有一个新的系统安装,并已使我的脚本尽可能简单。无论我做什么,shell_exec()都会返回NULL。
因此,这里是如何复制我的问题:
/html:
<?php
$command = escapeshellcmd('sudo /usr/bin/python '.__DIR__.'/script.py');
$output = shell_exec($command);
exit(var_dump($output));
#!/usr/bin/python
print('Hello!')
因此,为了解决这个问题,我还将.py文件的用户组更改为"apache“,并对.py文件运行chmod +x。我确认ec2-user和apache在sudo组中。还是不走运!那么我还有什么没试过的呢?我遗漏了什么,或者我可以去哪里查找错误日志?
发布于 2018-08-25 06:39:19
使用文件常量__FILE__
来确定pyhton脚本的路径只有在你对它应用dirname
函数的情况下才有效-否则你会得到类似/var/www/html/script.php/script.py
的东西,但实际上你只想要/var/www/html/script.py
。
有两个简单的解决方案。使用dirname
或直接使用__DIR__
常量。
$command = escapeshellcmd('sudo /usr/bin/python ' . __DIR__ . '/script.py');
或
$command = escapeshellcmd('sudo /usr/bin/python ' . dirname(__FILE__) . '/script.py');
https://stackoverflow.com/questions/52012338
复制相似问题