我花了一整天的时间试图找到问题的答案,但失败了,于是决定在这里发布我的问题。所以我开发了一个 Django 应用程序,现在在将其部署到 apache (httpd) 服务器时遇到了问题。如果相关的话,我目前正在运行 CentOS 7.2。
我一直在遵循该教程来做我想做的事情:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos-7
显然,我没有从头开始创建新项目,因为我已经有一个项目,只是对其进行了调整以适应本教程。完成并重新启动 httpd 服务后,尝试访问该网站时收到以下错误消息:
Forbidden
You don't have permission to access / on this server.
这不是防火墙问题,因为当我删除 django.conf(即恢复更改)时,会显示默认的 apache 站点。
我的 django.conf 文件如下所示:
Alias /static /home/dudu/DjangoProject/mysite/static
<Directory /home/dudu/DjangoProject/mysite/static>
Require all granted
</Directory>
<Directory /home/dudu/DjangoProject/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess DjangoProject python-path=/home/dudu/DjangoProject:/home/dudu/DjangoProject/DjangoProjectEnv/lib/python2.7/site-packages
WSGIProcessGroup DjangoProject
WSGIScriptAlias / /home/dudu/DjangoProject/mysite/wsgi.py
相关文件夹结构:
/home/dudu/
|--DjangoProject
| |--manage.py
| |--db.sqlite3
| |--DjangoProjectEnv (with python environment)
| |--mysite
| | |--settings.py
| | |--wsgi.py
| | |--other related django files
此外,在我的 settings.py 的底部,我还有以下内容:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
我的wsgi.py文件如下:
import os
from django.core.wsgi import get_wsgi_application
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" # had os.environ.setdefault before
application = get_wsgi_application()
我希望我已经包含了所有必要的信息,并希望您能够提供帮助!提前谢谢您!