为了账号安全,请及时绑定邮箱和手机立即绑定

Python 中打开文件时出现 Apache 权限错误

Python 中打开文件时出现 Apache 权限错误

PHP
holdtom 2023-09-08 16:52:46
我是网页设计新手,我正在尝试为一些 python 代码设置 Apache Web 界面。我正在运行一个测试 python 脚本,该脚本仅在 /var/www/html/ 中打开一个名为 output.txt 的新文件并尝试写入它。当网页加载时,我用来shell_exec('/usr/bin/python3 /var/www/html/ptest.py');运行我的 python 脚本。python 脚本确实运行并输出一些打印消息,但尝试打开 output.txt 失败并显示: Traceback (most最近的调用最后): File "/var/www/html/ptest.py", line 8, in f=open ("/var/www/html/output.txt", "w") PermissionError: [Errno 13] 权限被拒绝: '/var/www/html/output.txt'。如果文件已经存在并且我打开读取,它也会失败。我已经确认该脚本正在由 apache 运行getpass.getuser(),并且我已经为 /var/www/html/ 尝试了尽可能多的不同权限组合,包括 777。我已将 apache 设置为每个目录的组/var/ 到 html/。我已经尝试使用 777 权限提前创建该文件。我已经检查过 /var/ 到 html/ 具有组执行权限。我尝试创建并使用另一个完全由 apache 拥有的文件夹。我查看了 apache 指令,看看是否有我需要的指令,但我还没有找到。我在下面包含了 python 脚本和 php 页面的代码。编辑:我尝试使用 apache 作为 apache 运行 ptest.py su -s /bin/bash apache。ptest.py 以这种方式成功运行,因此问题似乎不是与 apache 用户/组关联的权限。ptest.py#!/usr/bin/python3import sysimport getpassimport ossys.stderr = sys.stdoutprint(getpass.getuser())print(os.getgid())f = open("/var/www/html/output.txt", "w")f.write("banana")f.close()print("I wrote banana, which is a berry")香蕉.php<html>    <head></head>    <body>        <h2>Welcome to the Program Test</h2>        <?php            echo "Created Command", "<br>";            $output = shell_exec('/usr/bin/python3 /var/www/html/ptest.py');            echo "Executed Command", "<br>";            echo $output, "<br>";            echo "End of output", "<br>";            $output = shell_exec('ls /var/www/html/');            echo $output;        ?>    </body></html>
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

它看起来像典型的 selinux 问题。尝试 selinux setenforce 0 – domino_pl


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信