我有python脚本,我想通过.php在我的html中加载,所以,我在test.php中添加了这段代码。
<?php
$command = escapeshellcmd("/var/www/html/ledon.py");
$output = shell_exec($command);
echo $output;
?>
Shell_exec函数就好像我把ls -l而不是$命令一样显示所有文件。所以我不确定我在使用escapeshellcmd函数做错了什么。 谢谢。
答案 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;
?>