安装Apache2 libapache2-mod-wsgi部署Django应用

首先安装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
标签:部署Apache 发布于:2019-10-01 06:09:42