网上关于用Apache部署Djano的教程纷乱复杂,第一是教程时间比较早,一些东西已经变了;第二就是写教程的也不太清楚每一步的含义;第三就是很多细节没有说清楚明白。整个流程不清晰。所以,想写一个完整的流程。
1.下载安装apache2
$sudo apt-get install apache2
注意:这个时候的apache是不带apxs的,需要自己额外安装dev包。
$sudo apt-get install apache2-dev
2.安装mod_wsgi
很多人都不清楚怎么安装mod_wsgi
$sudo apt-get install libapache2-mod-wsgi
3.配置
apache2默认的网站目录是在/var/www/(var 是顶级目录)
我们很多人用dev-server的时候,项目都是放在自己的用户文件夹内,这个时候可以采用软连接,这样就不需要搬迁项目。
ln -s /path/ /path/ (path 为项目所在目录和/var/www/)
在/etc/apache2/ 目录下的site-available 下新建项目的配置文件。
文件名没有特别需求,自己能够分清就可以了。
<VirtualHost *:80> #监听端口80
ServerName 192.168.201.146 #服务器地址
DocumentRoot /var/www/monitorsite #项目所在地址
Alias /static/ "/var/www/monitorsite/monitorsite/static/" #Django静态文件所在地址
WSGIScriptAlias / "/var/www/monitorsite/django.wsgi" #wsgi所在地址(可以使用django自己生成的wsgi.py,按照注释修改)
<Directory /var/www/monitorsite> #目录权限设置
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
项目模板设置
修改setting.py中的模板设置,改为相对路径(从/var/www/开始)
特别的
在Django1.6.5版本及以上
如果关闭了debug,需要在setting中设置allowhost为你的网站地址。
常见错误:
http 500
遇到这个错误请查看你的项目的权限,看看apache2是否有权限访问你的项目文件,任何一个文件不能访问都会导致这个错误。