写入日志文件或接触随机文件时,Flask/wsgi权限被拒绝

2024-09-12 10:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个非常简单的Flask程序,记录POST有效载荷。它在调试中运行得很好,所以我把它连接到apache上。现在我得到了 “IOError:[Errno 13]权限被拒绝:”当试图记录除/tmp之外的任何位置时。在

我在rhel7.x上运行apachev2.4.6和wsgiv3.4。 我的东西是:

vhost文件:

Listen *:8080 <VirtualHost *:8080> ServerName www.test.com ErrorLog /var/log/httpd/error2.log CustomLog /var/log/httpd/access2.log combined # didn't work #<Directory /> # Options Indexes FollowSymLinks Includes ExecCGI # AllowOverride All # Require all granted #</Directory> WSGIDaemonProcess csplogger user=apache group=apache threads=5 WSGIProcessGroup csplogger WSGIScriptAlias /report-to /var/www/FLASKAPPS/csplogger/csplogger.wsgi </VirtualHost>

在csplogger.wsgi文件:

还有Python:

from flask import Flask, request import json import os import logging from logging import Formatter, FileHandler from logging.handlers import RotatingFileHandler app = Flask(__name__) if not app.debug: logdir = '/opt/logs/' file_handler = FileHandler('/tmp/access.log') #file_handler = FileHandler(logdir + 'access.log') #file_handler = RotatingFileHandler(logdir + 'access.log', maxBytes=20000000, backupCount=10) file_handler.setFormatter(Formatter('%(asctime)s %(levelname)s: %(message)s')) logging.getLogger('werkzeug').setLevel(logging.INFO) logging.getLogger('werkzeug').addHandler(file_handler) app.logger.addHandler(file_handler) app.logger.setLevel(logging.INFO) # adding some debug app.logger.info(os.environ) app.logger.info(os.path.dirname(logdir).format()) app.logger.info(os.listdir(logdir)) @app.route('/', methods=['GET', 'POST']) def home(): if request.method != 'POST': app.logger.info('GET testing'.format()) return ('not a post\n', 200) else: data = request.get_json() app.logger.info(json.dumps(data)) return ('', 204) if __name__ =='__main__': app.run(host='0.0.0.0', port=5000, debug=False)

/opt/logs是预期的日志目标。是乔恩阿帕奇:阿帕奇(这是我的apache用户/组)并完全开放。我知道python应用程序可以找到这些目录,因为我正在列出内容并将其记录(当登录到/tmp时)/访问.log)作为调试的一部分。我提到这是RHEL,但我没有提到SELinux是残疾人。在

长话短说,我可以看到目录中的文件,这两个文件都是由apache用户管理的,但我不能编写这些日志文件。在

谢谢你的时间。任何帮助都将不胜感激。在


Tags: 文件importinfologappflaskosapache