PHP调用Python脚本并且python脚本无法写入文件

时间:2015-09-13 06:38:20

标签: php python

我有一个调用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”。这是写入文件失败的可能原因吗?

非常感谢!

1 个答案:

答案 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

来源:Running a Python script from PHP