我想从php打开python脚本。我的php用户是“ user23”,这是我的Ubuntu 18.04桌面上的主要用户帐户。 start.php :
<?php
echo 'php user: ' . get_current_user();
$output=shell_exec("python ./test.py");
echo'<br>python script user: ';
echo($output);
echo '<br>Current PHP version: ' . phpversion();
?>
test.py:
import getpass
import os
print(getpass.getuser())
os.mkdir(getpass.getuser())
如果我使用Chrome打开http://localhost/start.php,则显示PHP输出:
php user: user23
python script user: root
Current PHP version: 7.1.32
因此脚本可以运行,但是不会创建“ root”文件夹。 PHP错误日志:
File "./test.py", line 4, in <module>
os.mkdir(getpass.getuser())
OSError: [Errno 13] Permission denied: 'root'
我不明白为什么php和python用户不同( user23,root ),以及root用户如何无权创建文件夹( Errno 13) ]权限被拒绝:“ root” )。
如果我打开start.php,则python用户将为user23,并且文件夹创建完美。
$ php start.php
php user: user23<br>python script user: user23
<br>Current PHP version: 7.2.19-0ubuntu0.18.04.2
如果有问题,我会使用xampp。希望您能帮助我,我现在完全迷路了。 对不起,我的英语。
答案 0 :(得分:0)
也许对您有帮助 sudo的php代码
shell_exec('echo "PASS" | sudo -u root -S python .test.py');