【发布时间】:2021-05-13 23:49:18
【问题描述】:
我有这个基本上运行 shell 脚本的 PHP 脚本。 shell 脚本采用 python 文件名 main.py 并在输出文件移动到不同的文件夹后提供输出并将其存储在文件中。 我的 PHP 代码:
<?php
if ($_GET['run']) {
# This code will run if ?run=true is set.
exec("/home/ubuntu/python/script.sh");
}
?>
<!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
<a href="?run=true">Click Me!</a>
Myscript 代码是这样的:
#!/bin/bash
/usr/bin/python3 /home/ubuntu/python/main.py > /home/ubuntu/python/output/mainOut
mv /home/ubuntu/python/main.py /home/ubuntu/python/outputMain
当我使用命令运行脚本时,我的脚本运行良好,但使用 PHP 时,它给了我权限被拒绝错误。我尝试更改用户名或将 sudo 添加到脚本,但它不起作用。任何建议都会有所帮助。 这是我的错误日志:
mv:无法将“/home/ubuntu/python/main.py”移动到“/home/ubuntu/python/outputMain/main.py”:权限被拒绝
【问题讨论】:
-
您的 Apache 可能以在该目录中没有写入权限的单独用户身份运行。您可以尝试将文件夹上的组更改为Apache的组并将权限更改为775。