gpt4 book ai didi

python - PHP访问运行shell脚本

转载 作者:行者123 更新时间:2023-12-04 19:29:57 26 4
gpt4 key购买 nike

我有这个基本上运行 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”:权限被拒绝

最佳答案

快速而肮脏的解决方法:sudo chmod 777 /home/ubuntu/python -R如果您想正确解决它,这是我的想法:

  • 首先检查 apache/nginx 的运行用户和组
  • 然后检查它对此类文件/文件夹的权限(这不是必需的,但它更具体地显示了问题)
  • 最后更改 nginx-user 的组,如 usermod -aG GROUP USER然后 sudo chmod 775 DIR -R (或者您可以更精确地使权限)
  • 777 的差异和 775是: 777使您服务器上的任何用户都可以编辑该文件,而“775”仅允许所有者和组成员编辑它。

    关于python - PHP访问运行shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67527503/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com