设为首页 收藏本站
查看: 723|回复: 0

[经验分享] 在CentOS上部署开源博客系统Blog_mini

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-8 08:19:39 | 显示全部楼层 |阅读模式
0.说明
        本文为开源博客系统Blog_mini的官方部署文档,通过本文的阅读,你将可以在一个全新的CentOS系统上完全部署Blog_mini,从而成功架设属于你的个人博客网站。
        这里使用的操作系统为:CentOS 6.5,理论上,只要操作系统上安装的Python版本为2.6.x或2.7.x,都可以成功部署Blog_mini。




1.获取Blog_mini源代码

        有以下两种方式可以获取Blog_mini的源代码:

  • 通过git的方式
  • 通过Blog_mini项目主页下载

        我们将介绍这两种方法,实际中,你只需要选择其中一种即可,我们推荐第一种方法。

(1)通过git获取源代码
  • 首先确保你的系统已经安装了git版本控制系统:

1
2
[iyunv@leaf ~]# git --version
git version 1.7.1



  • 如果还没有安装,请通过yum方式安装:


1
[iyunv@leaf ~]# yum install git



  • 安装完成后,在用户目录中创建一个project的目录:

1
2
[iyunv@leaf ~]# mkdir project
[iyunv@leaf project]#



  • 从Blog_mini项目地址中克隆源代码:

1
[iyunv@leaf project]# git clone https://github.com/xpleaf/Blog_mini



        如果网络情况良好的话,很快就可以把代码克隆下来。

  • 查看Blog_mini的源代码目录结构:

1
2
3
4
5
[iyunv@leaf project]# cd Blog_mini/
[iyunv@leaf Blog_mini]# ls
app         LICENSE     migrations  requirements
config.py   manage.py   Procfile    requirements.txt
config.pyc  manage.pyc  README.md




(2)通过Blog_mini项目主页下载源代码

        如果你想通过该方式获得Blog_mini的源码的,那么请最好在有GUI界面的操作系统中进行操作,比如你可以先在Windows或Mac或有GUI界面的Linux操作系统中下载下来,再把它传到我们的CentOS操作系统中。

  • 进入项目主页:

https://github.com/xpleaf/Blog_mini
  • 点击Download ZIP按钮
  • 下载后的文件名应该是:Blog_mini-master.zip

        下载完成后,将其解压缩并传到CentOS操作系统中即可,Blog_mini的源码目录结构下方式(1)的是一样的。




2.安装virtualenv


  • 执行下面的命令安装即可:

1
[iyunv@leaf Blog_mini]# easy_install -i http://pypi.douban.com/simple virtualenv






3.创建虚拟环境venv


  • 在Blog_mini目录下执行下面的命令:

1
2
3
[iyunv@leaf Blog_mini]# virtualenv venv
New python executable in /root/project/Blog_mini/venv/bin/python
Installing setuptools, pip, wheel...done.



  • 可以在Blog_mini下看到生成了一个venv目录:

1
2
3
4
[iyunv@leaf Blog_mini]# ls
app         LICENSE     migrations  requirements
config.py   manage.py   Procfile    requirements.txt
config.pyc  manage.pyc  README.md   venv






4.安装pip


  • 执行如下命令:

1
[iyunv@leaf Blog_mini]# easy_install -i http://pypi.douban.com/simple pip



        虽然在进行第3步操作的时候也会安装pip,但是有可能会不成功,所以这里还是要确保安装无误。




5.激活虚拟环境venv

  • 在Blog_mini目录下:

1
2
[iyunv@leaf Blog_mini]# source venv/bin/activate
(venv) [iyunv@leaf Blog_mini]#



        注意看提示符的改变。




6.安装Blog_mini需求文件

  • 执行如下命令:

1
(venv) [iyunv@leaf Blog_mini]# pip install -r requirements/common.txt



        因为这里要安装Blog_mini所需的一些扩展包,所以需要一定时间,当然如果网络良好的话,很快就可以安装完成。




        来看这一步,除了数据库的配置以外,Blog_mini的全部需求环境已经搭建好了,接下来要完成下面的两个任何之一:
  • 使用sqlite作为默认数据库来运行Blog_mini
  • 使用MySQL作为默认数据库来运行Blog_mini

        数据库的使用只需要使用其中一种即可。
        如果你是新手,或者你只是想快速搭建好基于Blog_mini的博客网站,你可以选择第一种,因为这不需要你做任何的配置。
        如果你对MySQL的安装与使用本身有比较多的了解,同时你也想获得更好的性能,可以选择第二种。
        当然,下面我也会给出详细的使用方法。




7.使用sqlite作为默认数据库来运行Blog_mini

        Python本身就自带了sqlite数据库,因此如果你要使用sqlite来作为默认数据库,你不需要做任何配置。

        接下来要做的就是运行Blog_mini了。

  • 生成Blog_mini所需要的系统默认数据,请在Blog_mini目录下执行下面的命令:

1
2
3
4
(venv) [iyunv@leaf Blog_mini]# python manage.py deploy product
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 051691f120e6, fit to MySQL



        如果出现上面的提示就说明成功了!对于最后面出现的'fit to MySQL'大家不用觉得疑惑,这只是当时的一个备注,用来注明后面你要使用MySQL也是可以的,没有太大的意义。

  • 查看生成的sqlite数据库:

1
2
3
4
(venv) [iyunv@leaf Blog_mini]# ls
app         data.sqlite  manage.pyc  README.md         venv
config.py   LICENSE      migrations  requirements
config.pyc  manage.py    Procfile    requirements.txt



        可以看到多了一个data.sqlite文件,这个文件就是sqlite数据库文件!

  • 运行Blog_mini:

1
2
3
4
5
(venv) [iyunv@leaf Blog_mini]# gunicorn manage:app
[2016-03-07 01:57:32 +0000] [7273] [INFO] Starting gunicorn 19.4.5
[2016-03-07 01:57:32 +0000] [7273] [INFO] Listening at: http://127.0.0.1:8000 (7273)
[2016-03-07 01:57:32 +0000] [7273] [INFO] Using worker: sync
[2016-03-07 01:57:32 +0000] [7278] [INFO] Booting worker with pid: 7278



        上面的提示就说明Blog_mini已经成功运行了!不过这样的运行方式只能在本机以8000端口访问,如果你的CentOS操作系统本身没有GUI界面的话,你在本机也没有办法访问,所以我们可以用下面的方式运行。

  • 以80端口运行Blog_mini:

1
2
3
4
5
(venv) [iyunv@leaf Blog_mini]# gunicorn -b 0.0.0.0:80 manage:app
[2016-03-07 02:01:46 +0000] [7317] [INFO] Starting gunicorn 19.4.5
[2016-03-07 02:01:46 +0000] [7317] [INFO] Listening at: http://0.0.0.0:80 (7317)
[2016-03-07 02:01:46 +0000] [7317] [INFO] Using worker: sync
[2016-03-07 02:01:46 +0000] [7322] [INFO] Booting worker with pid: 7322



        这样的话:
  • 如果你是在有公网IP地址的服务器部署Blog_mini的,只需要在互联网上任何一台主机的浏览器上输入你的公网IP地址,就可以访问Blog_mini了。

  • 如果你只是在局域网上部署Blog_mini的,那么在局域网上的任何一台主机的浏览器上输入你这台主机的IP地址也是可以访问的了。


        不过,如果无法访问的话,那可能是防火墙的问题,你可以先把防火墙关掉:

1
2
3
4
(venv) [iyunv@leaf Blog_mini]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]



        因为博主最开始是学网络工程出身的,所以大家如果在网络通信上遇到任何问题,都可以给我回复提问,我将一一解答。

        到了这一步,你已经是成功地把Blog_mini的服务器部署好了,接下来你就可以运营你的个人博客网站了!Blog_mini功能强大,但使用非常简单,你可以参考博主关于Blog_mini介绍的博文来了解它的功能,当然你也可以自己探索,相信这对你来说都非常容易!
        需要注意的是,Blog_mini支持后台管理,下面是Blog_mini管理后台的默认账号密码:


        提示:在部署完Blog_mini后,里面是没有任何数据的,如果你需要一定的数据来测试Blog_mini的功能,可以在完成上面的操作后执行下面的命令:      
1
(venv) [iyunv@leaf Blog_mini]# python manage.py deploy test_data



         这将会生成100篇博文和700条评论,同时还有博文分类和系统导航,以方便你验证Blog_mini的功能。




8.使用MySQL作为默认数据库来运行Blog_mini

(1)安装与配置MySQL
        这一点继续第6步的操作,我们将使用MySQL数据库,在执行下面的步骤之前,请确保你的系统上已经安装并配置了MySQL数据库。如果你还没有安装,并且不知道怎么安装,可以有两种方法:

  • 通过yum方式安装MySQL
  • 通过源码的方式安装MySQL

        第一种方法比较简单,不过博主也专门写了一篇博文来介绍使用yum安装MySQL的过程。可以查看这里的地址:《在CentOS上使用yum安装MySQL+安全优化》
        第二种方法虽然步骤比较多,但是也很容易实现,博主为此写了一篇完整的博文,包括了完整安装与配置MySQL的详细方法和步骤:《在CentOS上源码安装MySQL+安装问题解决+安全优化》
        新手可以直接使用第一种方法,当然觉得自己可以接受挑战的,也完全可以使用第二种方法!

        MySQL的安装与配置完成之后,接着做下面的操作。


(2)安装Python的MySQL函数库
  • 安装MySQL-python依赖函数库:

1
(venv) [iyunv@leaf Blog_mini]# yum install python-devel mysql-devel zlib-devel openssl-devel



  • 安装MySQL-python:

1
2
3
4
5
(venv) [iyunv@leaf Blog_mini]# pip install MySQL-python
……
Successfully built MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5



        注意查看有没有安装成功的信息。


(3)为Blog_mini创建数据库
  • 退出虚拟环境,回到用户主目录中:

1
2
3
(venv) [iyunv@leaf Blog_mini]# deactivate
[iyunv@leaf Blog_mini]# cd
[iyunv@leaf ~]#



  • 登陆到MySQL数据库中(请先确保MySQL服务已经开启):


1
2
3
4
[iyunv@leaf ~]# mysql -u root -p
Enter password:

mysql>



  • 为Blog_mini创建数据库:

1
2
3
4
5
6
7
8
9
10
11
12
mysql> create database blog_mini default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| blog_mini          |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)



        这里我们创建了名为`blog_mini`的数据库,同时指定编码和字符集分别为utf8和utf8_general_ic。


(4)创建数据库路径环境变量
        Blog_mini的源码中指定了读取环境变量DATABASE_URL来获取数据库的路径,因此我们要为系统设定一个名为DATABASE_URL的环境变量,并且指定值为MySQL数据库的路径。

  • 设定系统环境变量:


1
[iyunv@leaf ~]# export DATABASE_URL=mysql://root:123456@127.0.0.1/blog_min



        这里指定了使用的数据库路径为:mysql://root:123456@127.0.0.1/blog_mini,其中123456是密码,其它也很容易知道。
  • 验证系统环境变量:

1
2
[iyunv@leaf ~]# echo $DATABASE_URL
mysql://root:123456@127.0.0.1/blog_mini



        有上面的输出即说明我们的设置没有问题。


(5)初始化Blog_mini系统默认数据
        我们首先要初始化Blog_mini所需要的系统默认数据,以确保后面Blog_mini能够正确运行。
  • 进入project/Blog_mini目录,初始化虚拟环境:

1
2
3
[iyunv@leaf ~]# cd project/Blog_mini/
[iyunv@leaf Blog_mini]# source venv/bin/activate
(venv) [iyunv@leaf Blog_mini]#



  • 初始化Blog_mini系统默认数据:

1
2
3
4
5
[iyunv@leaf Blog_mini]# source venv/bin/activate
(venv) [iyunv@leaf Blog_mini]# python manage.py deploy product
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 051691f120e6, fit to MySQL




(6)运行Blog_mini
  • 运行Blog_mini:

1
2
3
4
5
(venv) [iyunv@leaf Blog_mini]# gunicorn manage:app
[2016-03-07 01:57:32 +0000] [7273] [INFO] Starting gunicorn 19.4.5
[2016-03-07 01:57:32 +0000] [7273] [INFO] Listening at: http://127.0.0.1:8000 (7273)
[2016-03-07 01:57:32 +0000] [7273] [INFO] Using worker: sync
[2016-03-07 01:57:32 +0000] [7278] [INFO] Booting worker with pid: 7278



        上面的提示就说明Blog_mini已经成功运行了!不过这样的运行方式只能在本机以8000端口访问,如果你的CentOS操作系统本身没有GUI界面的话,你在本机也没有办法访问,所以我们可以用下面的方式运行。
  • 以80端口运行Blog_mini:

1
2
3
4
5
(venv) [iyunv@leaf Blog_mini]# gunicorn -b 0.0.0.0:80 manage:app
[2016-03-07 02:01:46 +0000] [7317] [INFO] Starting gunicorn 19.4.5
[2016-03-07 02:01:46 +0000] [7317] [INFO] Listening at: http://0.0.0.0:80 (7317)
[2016-03-07 02:01:46 +0000] [7317] [INFO] Using worker: sync
[2016-03-07 02:01:46 +0000] [7322] [INFO] Booting worker with pid: 7322



        这样的话:
  • 如果你是在有公网IP地址的服务器部署Blog_mini的,只需要在互联网上任何一台主机的浏览器上输入你的公网IP地址,就可以访问Blog_mini了。

  • 如果你只是在局域网上部署Blog_mini的,那么在局域网上的任何一台主机的浏览器上输入你这台主机的IP地址也是可以访问的了。


        不过,如果无法访问的话,那可能是防火墙的问题,你可以先把防火墙关掉:
1
2
3
4
(venv) [iyunv@leaf Blog_mini]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]



        因为博主最开始是学网络工程出身的,所以大家如果在网络通信上遇到任何问题,都可以给我回复提问,我将一一解答。

        到了这一步,你已经是成功地把Blog_mini的服务器部署好了,接下来你就可以运营你的个人博客网站了!Blog_mini功能强大,但使用非常简单,你可以参考博主关于Blog_mini介绍的博文来了解它的功能,当然你也可以自己探索,相信这对你来说都非常容易!
        需要注意的是,Blog_mini支持后台管理,下面是Blog_mini管理后台的默认账号密码:

        提示:在部署完Blog_mini后,里面是没有任何数据的,如果你需要一定的数据来测试Blog_mini的功能,可以在完成上面的操作后执行下面的命令:      
1
(venv) [iyunv@leaf Blog_mini]# python manage.py deploy test_data



         这将会生成100篇博文和700条评论,同时还有博文分类和系统导航,以方便你验证Blog_mini的功能。


        在CentOS上部署Blog_mini的文档到这里就结束了,如果大家在部署的过程中出现什么问题,请在博文下面给我留言,我将尽最大努力帮助大家!谢谢大家!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-187785-1-1.html 上篇帖子: 9个使用前必须再三小心的Linux命令 下篇帖子: Installation of Oracle 9i (R2) on SUSE LINUX 9_1 博客
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表