试图在Apache上运行Flask:错误13(缺少搜索权限)

时间:2016-08-17 08:49:47

标签: apache ubuntu flask mod-wsgi wsgi

我试图在我的Ubuntu 16.04 / Apache 2.4服务器上运行测试Flask应用程序,并且在请求页面时我一直收到403错误。

日志显示以下内容:

[Wed Aug 17 10:13:39.782920 2016] [core:error] [pid 30612:tid 140294142019328] (13)Permission denied: [client 131.180.174.104:57481] AH00035: access to /favicon.ico denied (filesystem path '/home/leon/opendc-production/web-server/opendc.wsgi') because search permissions are missing on a component of the path, referer: https://opendc.ewi.tudelft.nl/

我在Apache的网站上找到了(13) Permission Denied页面并按照步骤操作sudo chmod 644 opendc.wsgisudo chmod 644 hello.pysudo chmod 644 hello.pyc,以及{{1 }}和sudo chmod +x .一路向下。

我仍然得到相同的"路径组件上缺少搜索权限"错误。

这里是cd ..目录中ls -al的输出:

web-server

这里是drwxrwx--- 3 leon leon 4096 Aug 17 10:36 . drwxrwx--- 7 leon leon 4096 Aug 17 10:21 .. -rw-rw---- 1 leon leon 93 Aug 16 14:13 .gitignore -rw-r--r-- 1 leon leon 106 Aug 16 15:41 hello.py -rw-r--r-- 1 leon leon 419 Aug 16 15:45 hello.pyc -rw-rw---- 1 leon leon 54044 Aug 16 14:13 openapi-spec.yaml -rw-r--r-- 1 leon leon 37 Aug 17 10:36 opendc.wsgi -rw-rw---- 1 leon leon 410 Aug 16 14:13 README.md drwxrwx--- 6 leon leon 4096 Aug 16 15:40 venv 的内容:

opendc.wsgi

这里是from hello import app as application 的内容:

hello.py

这是我from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, OpenDC!' 的内容:

/etc/apache2/sites-available/opendc.ewi.tudelft.nl.conf

另一件要注意的事情是我跟着Flask installation guide,所以我在<VirtualHost *:443> # Meta ServerAdmin l.overweel@gmail.com ServerName opendc.ewi.tudelft.nl:443 # SSL SSLEngine on SSLCertificateFile /root/opendc.ewi.tudelft.nl.crt SSLCertificateKeyFile /root/opendc.ewi.tudelft.nl.key SSLCertificateChainFile /root/DigiCertCA.crt # WSGI Python app WSGIDaemonProcess opendc user=leon group=adm threads=5 WSGIScriptAlias / /home/leon/opendc-production/web-server/opendc.wsgi <Directory /home/leon/opendc-production/web-server> WSGIProcessGroup opendc WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost> 中使用python,这是我之前从未使用过的。不知道这是否会发生任何变化,或者我是否因此而采取不同的行动。

我还找到了this SO question并遵循了那里的建议,但它并没有改变任何东西。

1 个答案:

答案 0 :(得分:1)

Apache以特殊用户身份运行。如果您的文件位于主目录下,则无法读取它们。最好将它们移出主目录。否则,您必须在文件所在的所有目录上执行chmod o+rx,这与您的操作系统为您设置的内容相悖。