我希望使用apache2 mod_wsgi部署多个Django站点(现在说2个 - www.example.com,www.example2.com)。以下是我在新的Ubuntu 16.04安装中遵循的步骤。
我在.bashrc中设置alias python=python3
,因为我在python3中工作
包:
apache2 - sudo apt-get install apache2
mod_wsgi - sudo apt-get install libapache2-mod-wsgi-py3
Django(V1.11) - sudo apt-get install python3-django
然后我在
中创建了两个项目的/ var / WWW /
django-admin startproject example
django-admin startproject example2
然后我为这两个项目做了以下(我只提到了一个,另一个是完全相同的,除了用example2替换示例)
/var/www/example/example/settings.py
ALLOWED_HOSTS = ['example.com', 'www.example.com']
/var/www/example/example/wsgi.py
#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings")
os.environ["DJANGO_SETTINGS_MODULE"] = "example.settings"
/etc/apache2/sites-available/example.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/example
WSGIScriptAlias / /var/www/example/example/wsgi.py
ErrorLog /var/www/example/error.log
</VirtualHost>
另外,我添加了
/etc/apache2/apache2.conf中
WSGIPythonPath /var/www/example
我为example.conf和example2.conf
调用了a2ensite
一旦我重新启动apache 我现在可以成功访问www.example.com ,但www.example2.com会出现内部服务器错误(500)。我认为那是因为我在apache2.conf中只包含了一条WSGIPythonPath路径并将其更改为
/etc/apache2/apache2.conf中
WSGIPythonPath /var/www/example:/var/www/example2
但是,我现在得到两者的内部服务器错误(500)。
在这两种情况下,错误消息都是ImportError: No module named example
顺便说一句,这是我的第一次部署。 Hense我以前没有经验。
请指导我应该做些什么才能使这两个网站正常运行。