首先安装apache:
sudo apt-get update
sudo apt-get install apache2
安装完成后,启动apache:
sudo service apache2 start
然后新建Django项目的配置文件:
cd /etc/apache2/sites-available
vim 001-project.conf
这里需要注意,现在的apache服务器的配置文件的后缀是.conf,不能写成.config,否则apache会找不到对应的配置文件。
然后是编写对应的配置文件,这里贴上一个例子,对照着写就可以了:
<VirtualHost *:80>
ServerName 127.0.0.1 # 如果有域名,这里就填写对应的域名。127.0.0.1对应的是本地
RewriteEngine On
RewriteRule ^/(d-media|media|examples|screenshots)($|(\/(.*))) /app/project/$0 [L]
DocumentRoot /app/project/
Alias /static/ /app/project/static/ # 如果有静态文件,则需要填写这句
<Directory /app/project>
Order Allow,Deny
allow From All # 这里允许所有人访问,也可以设置成有条件的访问,例如只能允许某些IP访问等等,具体设置这里不多说了
Options Indexes FollowSymLinks
</Directory>
WSGIProcessGroup project
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess lawyer_site python-path=/app/project:/app/ENV/project/lib/python2.7/site-packages user=ubuntu group=ubuntu inactivity-timeout=3600
WSGIScriptAlias / /app/project/project/wsgi.py
# python-path是对应的环境,我这里使用了虚拟环境virtualenv。如果不是虚拟环境,则找到对应的路径即可。
CustomLog /app/project/logs/access.log combined
ErrorLog /app/project/logs/error.log
</VirtualHost>
编辑完apache的配置文件之后,需要在sites-enabled文件夹中设置软连接:
cd ../sites-enabled/
sudo ln -s ../sites-available/001-project.conf
同时,需要在项目目录中新建一个日志文件夹,里面存放的是Django项目运行在apache服务器上的日志:
mkdir /app/project/logs
到这里,整个部署就算是完成了,我们重启apache服务器:
sudo service apache2 restart
查看apache服务器的运行状态:
sudo service apache2 status
下面是我在配置apache的时候遇到的一些问题:
1、遇到Invalid command ‘RewriteEngine’:
sudo a2enmod rewrite
sudo service apache2 restart
2、遇到Invalid command ‘WSGIProcessGroup’:
sudo a2enmod wsgi
3、如果显示ERROR: Module mod-wsgi does not exist!:
sudo apt-get install libapache2-mod-wsgi
sudo a2enmod wsgi
sudo service apache2 restart