让PHP运行Python脚本

13 投票
4 回答
32934 浏览
提问于 2025-04-15 19:00

我正在尝试用PHP来运行一个Python程序。以下是我的代码:

$command = '/usr/local/bin/python script.py file';
$temp = exec($command, $output);

这个代码在命令行下可以正常工作,但在浏览器中运行时却不行。我使用的是Apache服务器,可能是权限设置的问题?我对Linux还很陌生,不知道该怎么解决这个问题。

如果有人能帮忙,我会非常感激!

编辑 1:

我尝试使用proc_open,但没有任何反应。我已经给脚本提供了完整路径,并且把脚本设置为可执行,但还是不行。还有什么其他方法可以在服务器上尝试吗?(我的服务器是CentOS 5)

4 个回答

2

几点注意事项

  • script.py 文件需要使用完整路径,比如 /home/abhinav/script.py
  • script.py 文件需要设置为可执行,使用命令 chmod +x script.py
6

明白问题出在哪里了:

  1. 这个域名是作为虚拟主机设置的,并且PHP的安全模式是开启的。我猜在安全模式下,像proc_open、exec、system、passthru这些功能是不能使用的。

  2. 把脚本放在虚拟主机可以访问的目录里。Apache服务器无法访问虚拟主机文档根目录之外的目录。

谢谢大家的帮助!

6

你需要提供脚本的完整路径,并且还要确保运行网页服务器的用户能够读取这个脚本(这意味着路径中的每个文件夹都必须对网页用户有可执行权限)。

撰写回答