apache 配置中的权限被拒绝:[Errno 13] 权限被拒绝

permission denied in apache configuration : [Errno 13] Permission denied

我想使用 wsgi 在 apache2.4(ubuntu 16) 上托管 Flask,但我在浏览器中遇到 500 错误:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@51.255.213.181 to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.25 (Ubuntu) Server at 51.255.213.181 Port 80

当我 运行 tail -f /var/log/apache2/error.log:

[Tue Jan 02 05:27:28.444613 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868] Traceback (most recent call last):
[Tue Jan 02 05:27:28.444688 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]   File "/var/www/TW96/tw96.wsgi", line 4, in 
[Tue Jan 02 05:27:28.444703 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]     from index import app as application
[Tue Jan 02 05:27:28.444717 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]   File "/var/www/TW96/tw96/index.py", line 32, in 
[Tue Jan 02 05:27:28.444740 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]     app.run(port=80,debug=True)
[Tue Jan 02 05:27:28.444755 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]   File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 841, in run
[Tue Jan 02 05:27:28.444766 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]     run_simple(host, port, self, **options)
[Tue Jan 02 05:27:28.444789 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]   File "/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py", line 780, in run_simple
[Tue Jan 02 05:27:28.444799 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868]     s.bind((hostname, port))
[Tue Jan 02 05:27:28.444825 2018] [wsgi:error] [pid 3308:tid 139686857123584] [client 209.95.51.167:53868] PermissionError: [Errno 13] Permission denied

这是我的 apache 配置文件:

<VirtualHost *:80>
                ServerName roboticworkshop.ir
                ServerAdmin root@51.255.213.181
                WSGIScriptAlias / /var/www/TW96/tw96.wsgi
                <Directory /var/www/TW96/tw96/>
                        Require all granted
                </Directory>
                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这是我的 wsgi 文件:

import sys,os
sys.path.insert(0,"/var/www/TW96/tw96")
os.chdir("/var/www/TW96/tw96")
from index import app as application

和 www 文件夹:

TW96
....tw96
........index.py
........static
........templates
....tw96.wsgi

/var/www/TW96/tw96/index.py 的第 32 行在端口 80 上启动了一个 HTTP 服务器:

app.run(port=80,debug=True)

这失败了,因为 first 1024 ports are for privileged users only。即使您的应用程序 运行 作为特权用户,Apache 已经在侦听该端口,因此您无法打开它。

无论如何,导入您的应用程序首先不应启动 HTTP 服务器。删除第 32 行。