全站之路一路坑(2)——在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>
然后访问网址,发现样式正常了

全站之路一路坑(2)——在Apache下部署django博客的更多相关文章
- C蛮的全栈之路-node篇(二) 实战一:自动发博客
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...
- Ubuntu下Apache中部署Django
环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 1. 安装apache2: sudo apt-get instal ...
- [js高手之路]Node.js实现简易的爬虫-抓取博客文章列表信息
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的http库 ...
- [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取博客所有的文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的h ...
- apache上部署django的静态文件
一直在优化自己博客的代码, 昨天把css样式表分离出来, 用作静态 文件, 但是自己还没学django怎么使用静态文件, 经过一番google 终于解决了. django 使用静态文件有两种方法, 一 ...
- (踩过的坑)使用Github Page搭建个人博客
最近需要搭建一个网站,作为导航网址,但是自己的域名备案还要等上几天,就想着有没有别的办法来搭建一个公网可以访问的网站. Github Page的话是一个github个人主页,完全适合用来搭建普通网站. ...
- Apache mod_wsgi部署Django项目
学习python web开发,Django部署备忘 1.下载mod_wsgi,下载路径如下:http://code.google.com/p/modwsgi/downloads/list挑选For 2 ...
- 在Apache上部署Django
跟php类似,要想使Apache能够处理python脚本(实际上Apache是不能处理脚本的,只是利用别的扩展模块处理相应脚本),就要给Apache安装相应的扩展模块. Apache起初的python ...
- LAMP环境的搭建(四)----Apache下部署项目
根据前文完成了LAMP基本环境的安装,那么接下来就是部署线上的环境了. yum 安装的apache 目录存在于 /etc/httpd apache最重要的文件就是 httpd.conf. 目录再 ...
随机推荐
- Google Authenticator(谷歌身份验证器)C#版
摘要:Google Authenticator(谷歌身份验证器),是谷歌公司推出的一款动态令牌工具,解决账户使用时遭到的一些不安全的操作进行的"二次验证",认证器基于RFC文档中的 ...
- 五分钟搞定Linux容器
[TechTarget中国原创] Linux容器针对特定工作负载提供了全新的灵活性与可能性.存在很多解决方案,但是没有一个解决方案能够像systemd容器那样进行快速部署.给我五分钟,本文将介绍如何使 ...
- 分分钟教你做出自己的新闻阅读APP
分分钟教你做出自己的新闻阅读APP 引子 曾经不小心发现了一些好的看新闻的网站,但是电脑又不是随身携带,因此想要下载一个这个网站的手机APP来看新闻,但是问题来了,这个网站根本没有做Android端! ...
- 2018浙江省赛(ACM) The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
我是铁牌选手 这次比赛非常得爆炸,可以说体验极差,是这辈子自己最脑残的事情之一. 天时,地利,人和一样没有,而且自己早早地就想好了甩锅的套路. 按理说不开K就不会这么惨了啊,而且自己也是毒,不知道段错 ...
- Android之Bitmap 高效加载
一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数 图片格式(Bitmap.Config) 一张100*100的图片占用内存的大小 ALPHA_8 图片长度*图片宽度 100 ...
- knockout,change事件
knockout,change事件 不知道为啥公司要用ko,就这样吧 大概需求,动态绑定的预算类别,然后预算类别切换时候,根据预算类别中的value去找上级编号.
- mysql中游标的使用案例详解(学习笔记)(转)
1.游标是啥玩意?简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行.我给大家准备一张图: 2.怎么使 ...
- 多线程(继承Thread)
/** *Thread的常用方法 *1.start(),启动线程再执行run方法 *2.run():子线程要执行的代码放入run()方法中 *3.currentThread()静态的,调取当前线程,返 ...
- 想象一下(imagine)
想象一下(imagine) 题目描述 我们高大的老班举起了有半个他那么高的三角板,说:"你们想象一下--" 于是你就陷入了想象-- 有一棵n个点的树,每个叶子节点上都有一个人,他们 ...
- 配置ubuntu16.04下Theano使用GPU运行程序的环境
ubuntu16.04默认安装了python2.7和python3.5 .本教程使用python3.5 第一步:将ubuntu16.04默认的python2修改成默认使用python3 . sudo ...