Apache mod_wsgi:访问页面时出现权限错误

1 投票
2 回答
798 浏览
提问于 2025-04-18 17:57

我在这个Apache服务器上尝试运行Django,使用的是Python 3.3。

httpd(Apache的服务程序)启动得很顺利,但一旦我试图访问 localhost(本地服务器),就出现了500错误。Apache的日志里显示了这个:

[Wed Aug 20 13:50:24 2014] [error] [client 127.0.0.1] PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.3/site-packages/django/__init__.py'
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1] mod_wsgi (pid=691): Target WSGI script '/var/www/tabstat/projet_tabstat/wsgi.py' cannot be loaded as Python module.
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1] mod_wsgi (pid=691): Exception occurred processing WSGI script '/var/www/tabstat/projet_tabstat/wsgi.py'.
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "/var/www/tabstat/projet_tabstat/wsgi.py", line 13, in <module>
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]     from django.core.wsgi import get_wsgi_application
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 584, in _check_name_wrapper
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 1022, in load_module
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 1003, in load_module
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 560, in module_for_loader_wrapper
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 853, in _load_module
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 977, in get_code
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1]   File "<frozen importlib._bootstrap>", line 1031, in get_data
[Wed Aug 20 13:50:26 2014] [error] [client 127.0.0.1] PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.3/site-packages/django/__init__.py'

我试过用 chmod 777 __init__.py 来修改权限,但没有任何变化。我在想,是什么原因导致了这个错误……

2 个回答

1

与其关闭selinux,不如运行下面的命令:

restorecon -R /path/to/your/project/
restorecon -R /path/to/python/site-packages/
chcon -u system_u  /path/to/your/project/ -R 
chcon -u system_u  /path/to/python/site-packages/ -R
chown apache.apache /path/to/your/project/ -R
chown apache.apache /path/to/python/site-packages/ -R

# Remember to restart apache
systemctl restart httpd.service
0

我发现是因为SELinux不信任这个文件,原因不明。

撰写回答