从 PHP 无缝运行 Python 脚本
要使用 PHP 执行 Python 脚本,有多种方法可用,包括 exec、shell_exec 和 system 。但是,在 PHP 中使用 exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2') 时,尽管将错误报告设置为 E_ALL 并启用了 display_errors,但可能不会生成任何输出。
要解决此问题,验证 Web 服务器用户是否具有访问和执行 Python 脚本及其关联命令的必要权限至关重要。具体来说,Python 文件应该具有执行权限,并且所有内部命令也应该设置适当的权限。
解决 shell_exec 的问题
Ubuntu Server 10.04 证明为该解决方案提供合适的环境。通过利用 PHP 的 shell_exec 函数,可以执行该命令并将输出作为字符串返回。以下 PHP 代码片段举例说明了这种方法:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Python 脚本中 Shebang 行的重要性
Python 脚本 (test.py) 应以以下行确保调用正确的解释器:
#!/usr/bin/env python
此行指示系统使用 $PATH 环境变量中指定的 Python 解释器,确保与安装的各种 Python 版本兼容。
要使 test.py 脚本在基于 Unix 的平台上可执行,请运行以下命令:
chmod +x myscript.py
文件和命令的执行权限
除了设置Python脚本的可执行权限之外,同样重要授予 Web 用户(通常是 www-data/apache)对该文件及其内部命令的执行权限。否则可能会导致脚本无法正常执行。
以上是为什么我的 PHP 代码不执行我的 Python 脚本,我该如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!