首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试用mod_wsgi安装烧瓶

尝试用mod_wsgi安装烧瓶
EN

Stack Overflow用户
提问于 2014-02-10 13:41:19
回答 3查看 3.1K关注 0票数 5

我正在尝试用mod_wsgi来设置烧瓶,但我一直收到以下错误

代码语言:javascript
复制
(13)Permission denied: access to / denied (filesystem path '/home/ec2-user/myapp') because search permissions are missing on a component of the path

在烧瓶应用程序中,测试是一个有效的途径。

这是我在myapp.conf文件夹中的/etc/httpd/conf.d文件

代码语言:javascript
复制
WSGIRestrictStdout Off
<VirtualHost *>
    ServerName somewhere.compute-1.amazonaws.com

    WSGIDaemonProcess flaskapp user=ec2-user group=ec2-user threads=5
    WSGIScriptAlias / /home/ec2-user/myapp/myapp.wsgi

    <Directory /home/ec2-user/myapp>
        WSGIProcessGroup flaskapp
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
    LogLevel notice
</VirtualHost>

这里是Apache/2.2.26python 2.6.8

我没有使用虚拟技术。

当我启动apache时,我在error_log中看到了这一点

代码语言:javascript
复制
[Mon Feb 10 14:33:00 2014] [notice] Apache/2.2.26 (Unix) DAV/2 mod_wsgi/3.2 Python/2.6.8 configured -- resuming normal operations

这是我的myapp.wsgi文件

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

@application.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    application.run(host='0.0.0.0', port=80)

只运行python myapp.wsgi很好

这个错误似乎告诉我应该更改对某个文件夹的一些权限,但是我不知道是哪个文件夹。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-10 16:09:18

您应该签出13PermissionDenied的Apache,并确保为您的文件夹设置了正确的权限。

代码语言:javascript
复制
chmod 755 /home/ec2-user/myapp/

您还可以:

代码语言:javascript
复制
cd /home/ec2-user/
ls -la 

它将输出每个文件和所有者:组和您文件夹的每个用户组的权限。寻找任何不寻常的东西。

来自WSGIDaemonProcess文档

user=name \ user=#uid.rst 定义守护进程应该以何种身份运行的用户的UNIX用户名或数字用户uid。如果没有提供此选项,守护进程将作为Apache将运行子进程的相同用户运行,并由用户指令定义。 注意,如果Apache不是作为根用户启动的,则忽略此选项,在这种情况下,无论设置是什么,守护进程都将以Apache启动时的用户身份运行。

如果您以apache的身份运行您的用户,它将不会以ec2-user的形式运行,并且apache用户必须有权访问所有子目录和包含的文件夹/home/ec2-user/

您可以移动到/var/www/chown移到用户apache,然后从那里运行,这样您就不必移动ec2-user主目录的权限。

票数 3
EN

Stack Overflow用户

发布于 2014-02-10 23:12:05

这个问题也是在mod_wsgi邮件列表中提出的。请参阅邮件列表上的讨论。后续行动将出现在邮寄名单上。

票数 1
EN

Stack Overflow用户

发布于 2016-11-29 17:50:20

我被困在这件事上,找不到任何有用的解释。我甚至尝试给apache一个临时shell来测试文件权限,但仍然一无所获。我终于找到了一个解决方案,记录在这里

简而言之:如果SELinux被配置为禁止访问所讨论的目录/文件,也可以生成此错误。检查您的audit.log并在必要时更改文件的安全上下文。

代码语言:javascript
复制
chcon  --user system_u --type httpd_sys_content_t -Rv /home/ec2-user/myapp/

在任何可能引起的安全风险方面,没有明示或暗示的保证。我使用的是gcloud/CentOS7 7默认配置,但我不知道这是平台还是发行版特定的配置。

祝好运!

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

https://stackoverflow.com/questions/21678826

复制
相关文章

相似问题

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