全站之路一路坑——在Apache下部署django博客
Posted 血之君殇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全站之路一路坑——在Apache下部署django博客相关的知识,希望对你有一定的参考价值。
上一篇博客:全栈之路一路坑之使用django开发博客
开发完博客之后,很多后续应用需要博客部署之后才可以使用,这篇文章就来尝试一下将开发好的博客部署到服务器上。
开发阶段,一直使用的是virtualenv和python manage.py runserver,但需要部署到服务器上时就有些不合适了,所以我尝试把它部署到Apache里。
查阅了相关资料发现部署方法有两种,一种是python_mod,另一种是wsgi,资料上说后者更加稳定一点,所以我选择使用wsgi进行集成。
安装httpd-devel,因为wsgi需要这个依赖
yum install -y httpd-devel
安装mod_wsgi
yum install mod_wsgi.x86_64
查阅了很多资料,踩了很多坑,总算找到一种可行的方案,现在分享给大家,我的服务器系统是centos7,安装的所有软件都是最新的。
首先在conf.d下面创建一个配置文件,名为django.conf,它会自动被httpd.conf加载进去
因为我的服务器上跑着很多项目,所以必须用虚拟主机了,编辑django.conf文件
Listen 8000 WSGIPythonPath /var/www/django/blog <VirtualHost *:8000> WSGIScriptAlias / /var/www/django/blog/blog/wsgi.py <Directory /var/www/django/blog/blog> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>
代码为apache多添加了一个8000端口的监听,然后第二行要注意,不能写在虚拟主机里,否则会报错,然后下面就是很常规的将目录写进虚拟主机里,然后访问一下8000端口
样式文件全都不在,因为需要在虚拟主机里配置一下,但是每个app的样式都写在自己里面配置起来很麻烦,所以使用一个命令,将所有的样式提取出来,首先,在根目录下创建一个static的文件夹,然后在settings.py中增加一行,它自带了STATIC_URL,不过很显然,这儿有错误,所以我选择自己添加一个进去
STATIC_ROOT = \'static/\'
然后执行命令
python manage.py collectstatic
然后在根目录下的static中会生成所有的静态文件,然后将代码上传到服务器上去,然后再次打开django.conf修改
Listen 8000 WSGIPythonPath /var/www/django/blog <VirtualHost *:8000> WSGIScriptAlias / /var/www/django/blog/blog/wsgi.py Alias /static/ /var/www/django/blog/static/ <Directory /var/www/django/blog/static> Require all granted </Directory> <Directory /var/www/django/blog/blog> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>
然后访问网址,发现样式正常了
以上是关于全站之路一路坑——在Apache下部署django博客的主要内容,如果未能解决你的问题,请参考以下文章
Nginx+uWSGI部署Django网站的详细步骤,脱坑必备,值得收藏!
在windows下,使用apache部署django,访问接口一直pending