如何从PHP文件运行python文件?

时间:2017-07-27 04:51:18

标签: php python

我有python脚本,我想通过.php在我的html中加载,所以,我在test.php中添加了这段代码。

<?php
$command = escapeshellcmd("/var/www/html/ledon.py");
$output =  shell_exec($command);
echo $output;
?>

Shell_exec函数就好像我把ls -l而不是$命令一样显示所有文件。所以我不确定我在使用escapeshellcmd函数做错了什么。 谢谢。

3 个答案:

答案 0 :(得分:0)

使用Python,您必须通过使用'python somescript.py'调用脚本来调用解释器。请记住,我对PHP知之甚少,我认为你需要这样做:$command = escapeshellcmd("python /var/www/html/ledon.py");假设你的shell有一个指向安装Python的地方的链接。

答案 1 :(得分:0)

来自官方doc

快速提醒那些尝试在unix类型平台上使用shell_exec并且似乎无法使其工作的人。 PHP作为系统上的Web用户(generally www for Apache)执行,因此您需要确保Web用户对您尝试在shell_exec命令中使用的任何文件或目录拥有权限。其他方面,它似乎没有做任何事情。

Python文件应具有正确的权限(如果PHP脚本在浏览器中运行或通过www-data / apache执行,则为用户curl执行)和/或必须是&#34;可执行的&#34;。此外,.py文件中的所有命令都必须具有正确的权限。

您可能希望使用sudo并将脚本的例外添加到sudoers文件

答案 2 :(得分:0)

你的shell命令错误。你需要指定在文件上运行哪个程序 - 即使用Python运行它,你需要像Python一样运行它:

python /var/www/html/ledon.py

但是,您需要使用system而不是shell_exec

因此,您的完整PHP代码应为:

<?php
$command = escapeshellcmd("python /var/www/html/ledon.py");
$output =  system($command);
echo $output;
?>