Python文件不会从php运行

时间:2014-12-28 21:02:17

标签: php python synology

我的Web服务器上有一个PHP文件,它应该调用python脚本(相同的文件夹),写入文件,然后获取其内容并显示数据。

PHP文件名为q.php

它包含

<?php
   $tmp = exec("trivia.py");
   sleep(4);
   $homepage = file_get_contents('./testfile.txt', true);
   echo $homepage + '<p>exec ret:' + $tmp;
   echo exec("whoami");
?>

此文件调用trivia.py写出文件(“./ testfile.txt”),然后php从文件中获取数据并显示它。我添加了一个变量来查看exec是否正常工作并返回0。 PHP服务器由用户http执行。

现在trivia.py,我在文件顶部有以下行

#!/usr/bin/env python

当我SSH到服务器时,它执行得很好。从SSH我运行脚本,它创建上面指定的文件,网页工作正常。但是,如果我使用PHP文件来创建它,它将无法从Web上运行。

我很确定这与某些地方的权限有关,但我对Linux的权限并不是那么好。

系统信息:Synology Diskstation,DSM5,PHP5,Python 2.7

编辑:

trivia.py currenlty拥有admin所有者和群组users的权限777

2 个答案:

答案 0 :(得分:0)

通过exec运行文件时,您需要为文件提供完整路径,如果文件位于同一目录中,则无关紧要。

请尝试使用(假设文件位于/ var / www / public)

exec('/var/www/public/trivia.py');

答案 1 :(得分:-1)

对于Windows用户 - 问题已解决PHP exec python

我建议将此$tmp = exec("trivia.py");替换为

$tmp = exec("C:\\Python27\\python.exe trivia.py");

// Add your python.exe route before the file

希望它有效!!