我的 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");
?>
该文件调用 a trivia.py
,它写出一个文件(“./testfile.txt”),然后 php 从文件中获取数据并显示它。我添加了一个变量来查看 exec 是否正在工作并返回0
. PHP 服务器正在由 user 执行http
。
现在trivia.py
,我在文件顶部有以下行
#!/usr/bin/env python
当我通过 SSH 连接到服务器时,它执行得非常好。我从 SSH 运行脚本,它会创建上面指定的文件,并且网页可以正常工作。但是,如果我使用 PHP 文件来创建它,它将无法在网络上运行。
我很确定这与某处的权限有关,但我对 Linux 的权限不是很好。
系统信息:Synology Diskstation、DSM5、PHP5、Python 2.7
编辑:
trivia.py
currenlty 拥有 777 作为admin
所有者和组的权限users