我正在Ubuntu 14上运行apache2服务器。现在我想配置Apache与mod_wsgi一起在域的子目录(如www.abc.com/lab)上运行Django,但我总是不能这样做。 / p>
顺便说一句,我已经成功安装了Python。我可以python --version
返回Python 2.7.3
。以下是我的设置步骤:
我在/ var / www下创建了一个pylab文件夹,里面有这些文件 init .py, init .pyc,manage.py,settings.py ,settings.pyc,最后是urls.py
然后我转到/etc/apache2/sites-available
并创建一个包含以下内容的实验室文件:
<VirtualHost *:80>
ServerName /lab
DocumentRoot /var/www/pylab
<Directory /lab>
Options All
AllowOverride All
Require all granted
</Directory>
Alias /static/ /var/www/pylab/static/
<Location "/static/">
Options -Indexes
</Location>
Alias /media/ /var/www/pylab/media/
<Location "/media/">
Options -Indexes
</Location>
WSGIScriptAlias / /var/www/pylab/wsgi.py
WSGIDaemonProcess labapi python-path=/var/www/pylabprocesses=2 threads=15 display-name=Pylab
WSGIProcessGroup pylab
</VirtualHost>
但是当我访问www.abc.com/lab时,我只看到404错误。我做错了什么?
答案 0 :(得分:0)
你需要对你的apache文件进行一些调整。
<VirtualHost *:80>
ServerName www.abc.com/lab
Alias /lab/ /var/www/pylab
DocumentRoot /var/www/pylab
<Directory /var/www/pylab>
Options All
AllowOverride All
Require all granted
</Directory>
Alias /static/ /var/www/pylab/static/
<Location "/static/">
Options -Indexes
</Location>
Alias /media/ /var/www/pylab/media/
<Location "/media/">
Options -Indexes
</Location>
WSGIScriptAlias / /var/www/pylab/wsgi.py
WSGIDaemonProcess labapi python-path=/var/www/pylabprocesses=2 threads=15 display-name=Pylab
WSGIProcessGroup pylab
</VirtualHost>
使用上面的代码更改您的代码,并将您的配置文件符号链接,该文件现在位于/etc/apache2/sites-available
/etc/apache2/sites-enabled
ln /etc/apache2/sites-available/source-file-name /etc/apache2/sites-enabled/target-file-name
文件夹下{{1}}
我希望你会喜欢。 :)
答案 1 :(得分:0)
首先,不要在/ var / www下创建项目。这是一个潜在的安全风险。 Django不是PHP,它不是由Web服务器提供的文件。另外,不要出于同样的原因设置DocumentRoot。
确定Django应用程序服务位置的是WSGIScriptAlias
指令。因此,如果您想在/ lab下提供它,只需将指令设置为:
WSGIScriptAlias /lab /<path>/pylab/wsgi.py
(您的应用的路径在哪里,不是&t; / var / www)。