在Ubuntu 16.04上使用Apache部署Django应用程序

时间:2017-03-20 06:00:47

标签: django apache mod-wsgi django-wsgi

我一直在反对使用Ubuntu 16.04部署在Apache服务器上的应用程序。我认为可能是我网站中的配置错误问题,因此只需部署测试应用test_app并按照Django documentation上的基本说明进行操作,以及我在{{}}中插入的内容{1}}:

/etc/apache2/sites-available/000-default.conf

而且,我无法在WSGIScriptAlias / /var/www/html/python/test_app/test_app/wsgi.py #WSGIPythonHome /var/www/html/python/test_app/venv #WSGIPythonPath /var/www/html/python/test_app Alias /static/ /var/www/html/python/test_app/static/ <Directory /var/www/html/python/test_app/static> Order allow,deny Allow from all Require all granted </Directory> <Directory /var/www/html/python/test_app/test_app> <Files wsgi.py> Order allow,deny Allow from all Require all granted </Files> </Directory> 上看到任何内容。我正在进行配置吗?

以下是日志中生成的错误:

localhost

2 个答案:

答案 0 :(得分:0)

所以,最后......我想通了!谢谢你的帮助。

正如我在错误日志中的第一行所说:

'/var/www/html/python/test_app/test_app/wsgi.py' cannot be loaded as Python module.

这意味着Apache模块无法访问wsgi.py。我在这里搜索了它并获得了solution

所以,在我的wsgi.py中,我添加了这个:

import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/var/www/html/python/test_app')

并且有效。

答案 1 :(得分:0)

<VirtualHost *:80>
  ServerName programmerlab.com # this ll be your domain name
  WSGIDaemonProcess programmerlab.com python-path=/var/www/html/gautam.tech:/var/www/html/programmerlab.com/env/lib/python3.6/site-packages
  WSGIProcessGroup programmerlab.com

  #Your static files location
        Alias /static /var/www/html/programmerlab.com/portfolio/static
        <Directory /var/www/html/programmerlab.com/portfolio/static>
            Require all granted
        </Directory>

    <LocationMatch "\.(jpg|gif|png|js|css)$">
        SetHandler None
    </LocationMatch>

 WSGIScriptAlias / /var/www/html/programmerlab.com/myproject/wsgi.py
 DocumentRoot /var/www/html/programmerlab.com
    <Directory /var/www/html/programmerlab.com/myproject>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>
</VirtualHost>

要了解python路径,只需键入

  

哪个python

在终端上。

此虚拟主机设置已经过全面测试,可以确保正常工作。