![ubuntu linode 服务器 404 错误与 django mod_wsgi](https://linux22.com/image/802667/ubuntu%20linode%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20404%20%E9%94%99%E8%AF%AF%E4%B8%8E%20django%20mod_wsgi%20.png)
我已经使用 apache2 和 mod_wsgi 配置了 linode 服务器。
- 服务器正在运行
- wsgi 正在运行
- postgre 正在运行并且 syncdb 成功
我真正遇到的困难是提供应用程序服务。
我的文件结构:
.
├── logfile
└── srv
├── logfile
└── www
└── quickerhub.com
├── admin
│ ├── css
│ │ ├── base.css
│ │ ├── changelists.css
│ │ ├── dashboard.css
│ │ ├── forms.css
│ │ ├── ie.css
│ │ ├── login.css
│ │ ├── rtl.css
│ │ └── widgets.css
│ ├── img
│ │ ├── changelist-bg.gif
│ │ ├── changelist-bg_rtl.gif
│ │ ├── chooser-bg.gif
│ │ ├── chooser_stacked-bg.gif
│ │ ├── default-bg.gif
│ │ ├── default-bg-reverse.gif
│ │ ├── deleted-overlay.gif
│ │ ├── gis
│ │ │ ├── move_vertex_off.png
│ │ │ └── move_vertex_on.png
│ │ ├── icon_addlink.gif
│ │ ├── icon_alert.gif
│ │ ├── icon_calendar.gif
│ │ ├── icon_changelink.gif
│ │ ├── icon_clock.gif
│ │ ├── icon_deletelink.gif
│ │ ├── icon_error.gif
│ │ ├── icon-no.gif
│ │ ├── icon_searchbox.png
│ │ ├── icon_success.gif
│ │ ├── icon-unknown.gif
│ │ ├── icon-yes.gif
│ │ ├── inline-delete-8bit.png
│ │ ├── inline-delete.png
│ │ ├── inline-restore-8bit.png
│ │ ├── inline-restore.png
│ │ ├── inline-splitter-bg.gif
│ │ ├── nav-bg.gif
│ │ ├── nav-bg-grabber.gif
│ │ ├── nav-bg-reverse.gif
│ │ ├── nav-bg-selected.gif
│ │ ├── selector-icons.gif
│ │ ├── selector-search.gif
│ │ ├── sorting-icons.gif
│ │ ├── tool-left.gif
│ │ ├── tool-left_over.gif
│ │ ├── tool-right.gif
│ │ ├── tool-right_over.gif
│ │ ├── tooltag-add.gif
│ │ ├── tooltag-add_over.gif
│ │ ├── tooltag-arrowright.gif
│ │ └── tooltag-arrowright_over.gif
│ └── js
│ ├── actions.js
│ ├── actions.min.js
│ ├── admin
│ │ ├── DateTimeShortcuts.js
│ │ ├── ordering.js
│ │ └── RelatedObjectLookups.js
│ ├── calendar.js
│ ├── collapse.js
│ ├── collapse.min.js
│ ├── core.js
│ ├── getElementsBySelector.js
│ ├── inlines.js
│ ├── inlines.min.js
│ ├── jquery.init.js
│ ├── jquery.js
│ ├── jquery.min.js
│ ├── LICENSE-JQUERY.txt
│ ├── prepopulate.js
│ ├── prepopulate.min.js
│ ├── SelectBox.js
│ ├── SelectFilter2.js
│ ├── timeparse.js
│ └── urlify.js
├── interest
│ ├── django.wsgi
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ └── wsgi.py
├── js
│ └── jquery-1.10.1.min.js
├── logfile
├── manage.py
├── README
├── reoccurring
│ ├── admin.py
│ ├── forms.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── usagelib.py
│ └── views.py
├── schedule
│ ├── admin.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── tests.py
│ ├── usagelib.py
│ └── views.py
├── src
│ ├── facebooksdk
│ │ ├── examples
│ │ │ ├── appengine
│ │ │ │ ├── app.yaml
│ │ │ │ ├── example.html
│ │ │ │ └── example.py
│ │ │ ├── newsfeed
│ │ │ │ ├── app.yaml
│ │ │ │ ├── facebookclient.py
│ │ │ │ ├── static
│ │ │ │ │ ├── base.css
│ │ │ │ │ ├── favicon.ico
│ │ │ │ │ └── robots.txt
│ │ │ │ └── templates
│ │ │ │ ├── base.html
│ │ │ │ ├── home.html
│ │ │ │ └── index.html
│ │ │ ├── oauth
│ │ │ │ ├── app.yaml
│ │ │ │ ├── facebookoauth.py
│ │ │ │ └── oauth.html
│ │ │ └── tornado
│ │ │ ├── example.html
│ │ │ ├── example.py
│ │ │ └── schema.sql
│ │ ├── facebook.py
│ │ ├── facebook_sdk.egg-info
│ │ │ ├── dependency_links.txt
│ │ │ ├── PKG-INFO
│ │ │ ├── SOURCES.txt
│ │ │ └── top_level.txt
│ │ ├── MANIFEST.in
│ │ ├── README.rst
│ │ └── setup.py
│ └── pip-delete-this-directory.txt
├── static
│ └── js
│ └── jquery-1.10.1.min.js
├── templates
│ ├── 404.html
│ ├── 500.html
│ ├── Base.html
│ ├── Home.html
│ ├── Reoccurring.html
│ └── Usersettings.html
└── usersetting
├── admin.py
├── __init__.py
├── __init__.pyc
├── models.py
├── models.pyc
└── views.py
我的django.wsgi:
import os
import sys
sys.path.append('/srv/www/quickerhub.com/')
os.environ['PYTHON_EGG_CACHE'] = '/srv/www/quickerhub.com.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我的httpd.conf:
WSGIScriptAlias / /www/quickerhub.com/interest/django.wsgi
<Directory /srv/www/quickerhub.com>
Order allow,deny
Allow from all
</Directory>
我的 sites-enabled/quickerhub.com:
WSGIPythonPath /srv/www/quickerhub.com
<VirtualHost *:80>
ServerName quickerhub.com
ServerAlias testing.quickerhub.com
Alias /static/ /srv/www/quickerhub.com/interest/static/
# Alias /sitemap.xml /srv/www/quickerhub.com/interest/static/sitemap.xml
WSGIScriptAlias / /srv/www/quickerhub.com/interest/django.wsgi
<Directory />
AllowOverride None
Options -Indexes
</Directory>
<Directory /srv/www/quickerhub.com/.git/>
Deny From All
</Directory>
</VirtualHost>
请帮忙!谢谢!
答案1
该目录/srv/www
不存在或 Apache 无法读取。请检查其是否存在以及权限(它应该是所有人都可读/可执行的)。
sudo chmod a+rx /srv/www
答案2
有三件事你需要重新检查
检查 httpd.conf 文件中的 mod_wsgi 路径。使用 find 命令获取 django.wsgi 的绝对路径
WSGIScriptAlias / /path/to/mysite/apache/django.wsgi
检查 /srv/www/quickerhub.com 的所有权和权限
在 httpd.conf 中添加以下给定的语法并重新启动 apache
<Directory /srv/www/quickerhub.com> Order allow,deny Allow from all </Directory>