我有一个调用python脚本的PHP脚本。 Python脚本执行简单的文件写入功能。
的Python:
f = open("xxx", "w")
f.write("xxxxxx")
f.close
PHP:
$output = system("python /home/xxxx/training/scripts/load.py);
echo $output;
如果我直接运行Python,它就能够创建并写入该文件。 但是当我使用PHP来调用它时,不会创建和编写任何文件。 那是因为一些系统路径相关的问题吗? 如何解决?
P.S。如果我运行“whoami”,它会将用户显示为“apache”。这是写入文件失败的可能原因吗?
非常感谢!
答案 0 :(得分:1)
这个python脚本没有输出,php代码不会将命令输出保存到变量output
而是立即打印它,你应该使用shell_exec
E.g。
<?php
$output = shell_exec("python script.py");
print $output;
?>
反正,
在Ubuntu Server 10.04上测试。我希望它对Archlinux也有帮助。
在PHP中:
<?php $command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output; ?>
在Python文件&#39; test.py&#39;在第一行验证此文本:(见shebang 解释):
#!/usr/bin/env python
Python文件也应具有正确的权限(为用户执行) www-data / apache如果Php脚本在浏览器中运行或通过curl运行 和/或必须是&#34;可执行的&#34;。此外,.py文件中的所有命令都必须具有 正确的特权。
chmod +x myscript.py