尝试使用 exec、shell_exec 或系统命令从 PHP 运行 Python 脚本时,必须考虑安全上下文您的网络服务器。在许多情况下,网络服务器可能没有足够的权限来执行脚本。
要诊断和解决与权限相关的问题,尝试运行以下代码片段会很有帮助:
if (exec('echo TEST') == 'TEST') { echo 'exec works!'; }
如果这段代码能够运行,则说明 PHP 的 exec 函数工作正常。但是,如果 PHP 无法生成输出,则可能是 Web 服务器用户没有足够的权限。
使用 exec 的一个很好的替代方法是 shell_exec 函数在 PHP 中。 Shell_exec 返回所执行命令的完整输出,如果发生错误或未产生输出,则返回 NULL。用法示例:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
要确保 Python 脚本正确执行,请验证脚本的第一行是否包含以下 shebang:
#!/usr/bin/env python
这个 shebang 指定了要使用的解释器,对于确保正确的 Python 版本至关重要
为了将脚本识别为可执行文件,请确保它具有适当的权限。在 UNIX 类型平台上,使用以下命令:
chmod +x myscript.py
此外,Python 脚本及其中调用的任何命令都必须具有运行所需的权限。
通过考虑用户权限和使用 shell_exec,您可以有效地从 PHP 执行 Python 脚本,确保两种语言之间的安全和功能集成。
以上是如何从 PHP 安全地执行 Python 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!