下载安装apache
安装Apache和mod-wsgi
~$ apt-get install apache2
~$ apt-get install libapache2-mod-wsgi-py3
安装开发包
# 如果安装不了在执行apt-get update更新一下
~$ apt-get install apache2-dev
具体查看django官方文档和mod_wsgi官网
安装编译wsgi
下载解压源码:进入https://github.com/GrahamDumpleton/mod_wsgi/releases
~$ wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.4.tar.gz
~$ tar xvfz 4.6.4.tar.gz
配置源代码
~$ cd mod_wsgi_4.6.4/
# 查询apxs路径
~$ whereis apxs
/usr/bin/apxs
# 查询python路径
~$ whereis python
/usr/bin/p ython3.5
# 运行“configure”脚本
~$ ./configure --with-apxs=/usr/bin/apxs --with-python=/usr/bin/python3.5
使用 make
构建源代码,创建Apache标准位置替换mod_wsgi.so sudo make install
(已替换旧版本文件usr/lib/apache2/modules/mod_wsgi.so)
查看Apache是否启用 cd /etc/apache2/mods-enabled/
,如果有个 wsgi.conf
说明已经启用
apache配置文件
查看虚拟环境
~$ python -c 'import sys; print(sys.prefix)'
/home/ubuntu/home/mysite_env
~$ deactivate
进入/etc/apache2/sites-available,新建mysite.conf:sudo vim mysite.conf,输入
<VirtualHost *:8000>
WSGIDaemonProcess mysite python-home=/home/mysite_env python-path=/home/myiste
WSGIProcessGroup mysite
WSGIScriptAlias / /home/mysite/mysite/wsgi.py
<Directory /home/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
生效配置
# 写入配置,重启服务(启用服务:a2ensite,关闭服务:a2dissit),启动成功后查看/etc/apache2/sites-enabled/下有000-default.conf、mysite.conf两个服务启动着
~$ sudo a2ensite mysite.conf
# 关闭000-default.conf服务
~$ sudo a2dissite 000-default.conf
# 查看配置是否没问题,返回Syntax OK
~$ apache2ctl configtest
# 重启服务
~$ apache2ctl restart
完全重启apache服务后,打开ip可以访问但未开静态文件夹,接下来需要放开静态文件夹,修改mysite.conf
<VirtualHost *:80>
#ServerName www.zhangyanc.club
WSGIDaemonProcess mysite python-home=/home/mysite_env python-path=/home/mysite
WSGIProcessGroup mysite
WSGIScriptAlias / /home/mysite/mysite/wsgi.py
<Directory /home/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /home/mysite/static/
<Directory /home/mysite/static>
Require all granted
</Directory>
Alias /media/ /home/mysite/meida/
<Directory /home/mysite/media>
Require all granted
</Directory>
</VirtualHost>
如果还是样式不对,需要收集静态文件,找到settings.py,在STATIC_URL上面加上 STATIC_ROOT = os.path.join(BASE_DIR, ‘static_collected’)
保存
进入虚拟环境执行 python3.5 manage.py collectstatic
修改mysite.conf的静态文件路径
Alias / static / / home / mysite / static_collected /
< Directory / home / mysite / static_collected >
Require all granted
< / Directory >
再次重启Apache apache2ctl restart
,如有问题可以查看日志 cat /var/log/apache2/error.log
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://zhangyanc.club/article/django_apache/
许可协议:署名-非商业性使用 4.0 国际许可协议