用Apache运行的FlaskApp无法在服务器端保存文件不能获得工作许可?

2024-09-27 07:32:26 发布

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

我有一个FlaskApp运行在/var/www/FlaskApp/FlaskApp/init.py

├── /var/www/FlaskApp
├── FlaskApp
|   ├── flask (This is a virtual environment with python3.4 and packages)
│   ├── __init__.py
├──flaskapp.wsgi 
├── config.py

Myinit.py如下所示:

^{pr2}$

我阅读了apache错误日志,发现这是一个权限错误:

[Fri Dec 09 12:08:11.371696 2016] [wsgi:error] [pid 3425:tid 1962931248] IOError: [Errno 13] Permission denied: u'/var/www/FlaskApp/FlaskApp/static/runFiles/myfile.txt

所以我想apache用户无法访问这个目录。只是为了搞乱,我想看看chmod777能不能解决这个问题。所以我这样做了:

sudo chmod 777 /var/www/

不过,当我试图上传文件时,还是出现了错误。我正在尝试上载文件:

curl -i -X POST -F files=@/pathtomyfile.txt myip/upload/

我想知道如何修复权限错误。我尝试添加绝对路径,还尝试了以下操作:

sudo chown -R www-data:www-data /var/www
chmod go-rwx /var/www

然而,我一直未能摆脱这个错误。这是我的烧瓶app.conf来自apache:

WSGIPythonHome /usr/local/bin
WSGIPythonPath /var/www/FlaskApp/FlaskApp/flask/lib/python3.4/site-packages

<VirtualHost *:80>
                ServerName my ip (this is local)
                ServerAdmin my email
                WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
                <Directory /var/www/FlaskApp/FlaskApp/>
                        Require all granted
                </Directory>
                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我正在深入了解为什么当我试图保存要上载到服务器的文件时,权限被拒绝的错误。在

好的,这里还有一些输出:

ls -ldg /var/www/
drwxrwxrwx+ 4 www-data 4096 Dec  7 10:31 /var/www/

ls -ldg /var/www/FlaskApp/FlaskApp/static/runFiles
drwxr-xr-x 2 root 0 Nov 23 07:54 /var/www/FlaskApp/FlaskApp/static/runFiles

Tags: 文件py权限flaskwsgidatainitis
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:26

抱歉,如果您提到了这一点,但我没有看到它:apache进程是以什么用户身份运行的?你确定是www数据用户吗?在

sudo chown -R www-data:www-data /var/www
chmod go-rwx /var/www

通过这样做,^你已经锁定了它,这样除了www数据用户以外,没有人可以对这些文件做任何事情。甚至www数据组也无法访问,因为go-rwx意味着“拒绝对group,others的rwx权限”。在

最后,对于故障排除,这些输出是什么?在

^{pr2}$

相关问题 更多 >

    热门问题