下载安装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 markdown

~$ 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 国际许可协议