我有一个测试 django 项目,我一直在使用 django 开发服务器。我想开始使用实际的 apache 服务器来正确模拟生产环境。我正在使用 Mac OS X。
我一直在使用this tutorial here ,但在第一组说明中,我从本地主机收到 403。浏览器说我没有访问服务器上的 /
的权限。
当我从教程中注释掉 apache 配置行时,WSGIScriptAlias//Users/username/Projects/django_books/django_books/django.wsgi
我可以访问本地主机。
这是我的 django.wsgi 文件的内容:
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_books.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
path = '/Users/username/Projects/django_books/django_books'
if path not in sys.path:
sys.path.append(path)
是什么导致了 403,为什么我看不到我的 Django 应用程序?
编辑
目录结构:
django_books
apache (empty directory right now)
random_book
__init__.py
models.py
views.py
django_books
__init__.py
django.wsgi
settings.py
urls.py
views.py
wsgi.py
media
static
css
style.css
manage.py
第二次编辑
所有目录的权限:
/Users/用户名/Projects/django_books/django_books/django.wsgi
-rw-r--r--
/用户/用户名/项目/django_books/django_books
drwxr-xr-x
/用户/用户名/Projects/django_books/
drwxr-xr-x
/用户/用户名/项目/
drwxr-xr-x
/用户/用户名/
drwxr-xr-x+
/用户/
drwxr-xr-x
最佳答案
根据我的小经验,我认为您必须添加以下行“就在 import sys 行下方以将您的项目放在路径上”(所以在“import sys”下进行调整)就像您引用的教程中所说的那样。另外,删除路径中的第二个“django_books”,因为你想链接到你的站点而不是你站点中的应用程序 ;-)(教程中的“mysite”,而不是 mysite/mysite)
import os
import sys
path = '/Users/username/Projects/django_books'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_books.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
再见
关于python - 让 Django 与 Apache 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18513831/