首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Apache上运行Flask :错误13 (缺少搜索权限)

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

Stack Overflow用户
提问于 2016-08-17 16:49:47
回答 1查看 493关注 0票数 0

我试图在我的Ubuntu16.04/Apache2.4服务器上运行一个测试Flask应用程序,但在请求页面时一直收到403错误。

日志显示以下内容:

代码语言:javascript
复制
[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,以及sudo chmod +x .cd ..

我仍然得到相同的“搜索权限缺失的一个组成部分的路径”错误。

下面是web-server目录中ls -al的输出:

代码语言:javascript
复制
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的内容

代码语言:javascript
复制
from hello import app as application

下面是hello.py的内容

代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
        return 'Hello, OpenDC!'

这是我的/etc/apache2/sites-available/opendc.ewi.tudelft.nl.conf的内容

代码语言:javascript
复制
<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>

另一件要注意的事情是,我遵循了Flask installation guide,所以我在virtualenv中使用了python,这是我以前从未使用过的。我不知道这是否会改变什么,或者我是否应该因此而做一些不同的事情。

我也找到了this SO question,并听从了里面的建议,但这并没有改变任何事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-17 17:06:34

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38992024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档