0.說明python
本文爲開源博客系統Blog_mini的官方部署文檔,經過本文的閱讀,你將能夠在一個全新的CentOS系統上徹底部署Blog_mini,從而成功架設屬於你的我的博客網站。mysql
這裏使用的操做系統爲:CentOS 6.5,理論上,只要操做系統上安裝的Python版本爲2.6.x或2.7.x,均可以成功部署Blog_mini。
git
更新說明:2017-02-06測試,在騰訊雲上使用CentOS 7.3來進行安裝也是很是完美的,依然能夠正常使用。github
1.獲取Blog_mini源代碼
sql
有如下兩種方式能夠獲取Blog_mini的源代碼:
數據庫
經過git的方式瀏覽器
經過Blog_mini項目主頁下載安全
咱們將介紹這兩種方法,實際中,你只須要選擇其中一種便可,咱們推薦第一種方法。
bash
(1)經過git獲取源代碼服務器
首先確保你的系統已經安裝了git版本控制系統:
[root@leaf ~]# git --version git version 1.7.1
若是尚未安裝,請經過yum方式安裝:
[root@leaf ~]# yum install git
安裝完成後,在用戶目錄中建立一個project的目錄:
[root@leaf ~]# mkdir project [root@leaf ~]# cd project [root@leaf project]#
從Blog_mini項目地址中克隆源代碼:
[root@leaf project]# git clone https://github.com/xpleaf/Blog_mini
若是網絡狀況良好的話,很快就能夠把代碼克隆下來。
查看Blog_mini的源代碼目錄結構:
[root@leaf project]# cd Blog_mini/ [root@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
執行下面的命令安裝便可:
[root@leaf Blog_mini]# easy_install -i http://pypi.douban.com/simple virtualenv
CentOS上默認已是安裝了easy_install,若是尚未安裝,請先安裝easy_install.
3.建立虛擬環境venv
在Blog_mini目錄下執行下面的命令:
[root@leaf Blog_mini]# virtualenv venv New python executable in /root/project/Blog_mini/venv/bin/python Installing setuptools, pip, wheel...done.
能夠在Blog_mini下看到生成了一個venv目錄:
[root@leaf Blog_mini]# ls app LICENSE migrations requirements config.py manage.py Procfile requirements.txt config.pyc manage.pyc README.md venv
4.安裝pip
執行以下命令:
[root@leaf Blog_mini]# easy_install -i http://pypi.douban.com/simple pip
雖然在進行第3步操做的時候也會安裝pip,可是有可能會不成功,因此這裏仍是要確保安裝無誤。
5.激活虛擬環境venv
在Blog_mini目錄下:
[root@leaf Blog_mini]# source venv/bin/activate (venv) [root@leaf Blog_mini]#
注意看提示符的改變。
6.安裝Blog_mini需求文件
執行以下命令:
(venv) [root@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目錄下執行下面的命令:
(venv) [root@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數據庫:
(venv) [root@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:
(venv) [root@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:
(venv) [root@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地址也是能夠訪問的了。
不過,若是沒法訪問的話,那多是防火牆的問題,你能夠先把防火牆關掉:
(venv) [root@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@163.com
密碼:blog_mini
提示:在部署完Blog_mini後,裏面是沒有任何數據的,若是你須要必定的數據來測試Blog_mini的功能,能夠在完成上面的操做後執行下面的命令:
(venv) [root@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依賴函數庫:
(venv) [root@leaf Blog_mini]# yum install python-devel mysql-devel zlib-devel openssl-devel
安裝MySQL-python:
(venv) [root@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建立數據庫
退出虛擬環境,回到用戶主目錄中:
(venv) [root@leaf Blog_mini]# deactivate [root@leaf Blog_mini]# cd [root@leaf ~]#
登錄到MySQL數據庫中(請先確保MySQL服務已經開啓):
[root@leaf ~]# mysql -u root -p Enter password: mysql>
爲Blog_mini建立數據庫:
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數據庫的路徑。
設定系統環境變量:
[root@leaf ~]# export DATABASE_URL=mysql://root:123456@127.0.0.1/blog_mini
這裏指定了使用的數據庫路徑爲:mysql://root:123456@127.0.0.1/blog_mini,其中123456是密碼,其它也很容易知道。
驗證系統環境變量:
[root@leaf ~]# echo $DATABASE_URL mysql://root:123456@127.0.0.1/blog_mini
有上面的輸出即說明咱們的設置沒有問題。
(5)初始化Blog_mini系統默認數據
咱們首先要初始化Blog_mini所須要的系統默認數據,以確保後面Blog_mini可以正確運行。
進入project/Blog_mini目錄,初始化虛擬環境:
[root@leaf ~]# cd project/Blog_mini/ [root@leaf Blog_mini]# source venv/bin/activate (venv) [root@leaf Blog_mini]#
初始化Blog_mini系統默認數據:
(venv) [root@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:
(venv) [root@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:
(venv) [root@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地址也是能夠訪問的了。
不過,若是沒法訪問的話,那多是防火牆的問題,你能夠先把防火牆關掉:
(venv) [root@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@163.com
密碼:blog_mini
提示:在部署完Blog_mini後,裏面是沒有任何數據的,若是你須要必定的數據來測試Blog_mini的功能,能夠在完成上面的操做後執行下面的命令:
(venv) [root@leaf Blog_mini]# python manage.py deploy test_data
這將會生成100篇博文和700條評論,同時還有博文分類和系統導航,以方便你驗證Blog_mini的功能。
在CentOS上部署Blog_mini的文檔到這裏就結束了,若是你們在部署的過程當中出現什麼問題,請在博文下面給我留言,我將盡最大努力幫助你們!謝謝你們!