在子目录上安装django

时间:2015-02-03 05:48:53

标签: python django apache2

我正在Ubuntu 14上运行apache2服务器。现在我想配置Apache与mod_wsgi一起在域的子目录(如www.abc.com/lab)上运行Django,但我总是不能这样做。 / p>

顺便说一句,我已经成功安装了Python。我可以python --version返回Python 2.7.3。以下是我的设置步骤:

  1. 我在/ var / www下创建了一个pylab文件夹,里面有这些文件 init .py, init .pyc,manage.py,settings.py ,settings.pyc,最后是urls.py

  2. 然后我转到/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>  
    
  3. 但是当我访问www.abc.com/lab时,我只看到404错误。我做错了什么?

2 个答案:

答案 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)。