天天看點

在Ubuntu上部署開源部落格系統Blog_mini

1.擷取Blog_mini源代碼

        有以下兩種方式可以擷取Blog_mini的源代碼:

通過git的方式

通過Blog_mini項目首頁下載下傳

        我們将介紹這兩種方法,實際中,你隻需要選擇其中一種即可,我們推薦第一種方法。

(1)通過git擷取源代碼

首先確定你的系統已經安裝了git版本控制系統:

1

2

3

<code>xpleaf@leaf:~$ git version</code>

<code>程式“git”尚未安裝。 您可以使用以下指令安裝:</code>

<code>sudo</code> <code>apt-get </code><code>install</code> <code>git</code>

如果還沒有安裝,請通過apt-get方式安裝:

<code>xpleaf@leaf:~$ </code><code>sudo</code> <code>apt-get </code><code>install</code> <code>git</code>

<code>[</code><code>sudo</code><code>] xpleaf 的密碼:</code>

安裝完成後,在使用者目錄中建立一個project的目錄:

<code>xpleaf@leaf:~$ </code><code>mkdir</code> <code>project</code>

<code>xpleaf@leaf:~$ </code><code>cd</code> <code>project/</code>

<code>xpleaf@leaf:~</code><code>/project</code><code>$</code>

從Blog_mini項目位址中克隆源代碼:

<code>xpleaf@leaf:~</code><code>/project</code><code>$ git clone https:</code><code>//github</code><code>.com</code><code>/xpleaf/Blog_mini</code>

        如果網絡情況良好的話,很快就可以把代碼克隆下來。

檢視Blog_mini的源代碼目錄結構:

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>ls</code>

<code>app        LICENSE    migrations  README.md     requirements.txt</code>

<code>config.py  manage.py  Procfile    requirements</code>

(2)通過Blog_mini項目首頁下載下傳源代碼

        如果你想通過該方式獲得Blog_mini的源碼的,那麼請最好在有GUI界面的作業系統中進行操作,比如你可以先在Windows或Mac或有GUI界面的Linux作業系統中下載下傳下來,再把它傳到我們的CentOS作業系統中。

進入項目首頁:

<a href="https://github.com/xpleaf/Blog_mini" target="_blank">https://github.com/xpleaf/Blog_mini</a>

點選Download ZIP按鈕

下載下傳後的檔案名應該是:Blog_mini-master.zip

        下載下傳完成後,将其解壓縮并傳到Ubuntu作業系統中即可,Blog_mini的源碼目錄結構下方式(1)的是一樣的。

2.安裝pip

執行下面的指令安裝即可:

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>sudo</code> <code>apt-get </code><code>install</code> <code>python-pip</code>

3.安裝virtualenv

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>sudo</code> <code>apt-get </code><code>install</code> <code>virtualenv</code>

        如果上面的指令說找不到virtualenv的,就使用下面的指令:

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>sudo</code> <code>apt-get </code><code>install</code> <code>python-virtualenv</code>

4.建立虛拟環境venv

在Blog_mini目錄下執行下面的指令:

4

5

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ virtualenv venv</code>

<code>Running virtualenv with interpreter </code><code>/usr/bin/python2</code>

<code>New python executable </code><code>in</code> <code>venv</code><code>/bin/python2</code>

<code>Also creating executable </code><code>in</code> <code>venv</code><code>/bin/python</code>

<code>Installing setuptools, pip...</code><code>done</code><code>.</code>

可以在Blog_mini下看到生成了一個venv目錄:

<code>config.py  manage.py  Procfile    requirements  venv</code>

5.激活虛拟環境venv

在Blog_mini目錄下:

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>source</code> <code>venv</code><code>/bin/activate</code>

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$</code>

        注意看提示符的改變。

6.安裝Blog_mini需求檔案

執行如下指令:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ pip </code><code>install</code> <code>-i http:</code><code>//pypi</code><code>.douban.com</code><code>/simple/</code> <code>-r requirements</code><code>/common</code><code>.txt</code>

        因為這裡要安裝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目錄下執行下面的指令:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ python manage.py deploy product</code>

<code>INFO  [alembic.runtime.migration] Context impl SQLiteImpl.</code>

<code>INFO  [alembic.runtime.migration] Will assume non-transactional DDL.</code>

<code>INFO  [alembic.runtime.migration] Running upgrade  -&gt; 051691f120e6, fit to MySQL</code>

        如果出現上面的提示就說明成功了!對于最後面出現的'fit to MySQL'大家不用覺得疑惑,這隻是當時的一個備注,用來注明後面你要使用MySQL也是可以的,沒有太大的意義。

檢視生成的sqlite資料庫:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>ls</code>

<code>app        config.pyc   LICENSE    migrations  README.md     requirements.txt</code>

<code>config.py  data.sqlite  manage.py  Procfile    requirements  venv</code>

        可以看到多了一個data.sqlite檔案,這個檔案就是sqlite資料庫檔案!

運作Blog_mini:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ gunicorn manage:app</code>

<code>[2016-03-08 11:49:11 +0000] [7189] [INFO] Starting gunicorn 19.4.5</code>

<code>[2016-03-08 11:49:11 +0000] [7189] [INFO] Listening at: http:</code><code>//127</code><code>.0.0.1:8000 (7189)</code>

<code>[2016-03-08 11:49:11 +0000] [7189] [INFO] Using worker: </code><code>sync</code>

<code>[2016-03-08 11:49:11 +0000] [7194] [INFO] Booting worker with pid: 7194</code>

        上面的提示就說明Blog_mini已經成功運作了!不過這樣的運作方式隻能在本機以8000端口通路,如果你的Ubuntu作業系統本身沒有GUI界面的話,你在本機也沒有辦法通路,是以我們可以用下面的方式運作。

以80端口運作Blog_mini:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ gunicorn -b 0.0.0.0:80  manage:app</code>

<code>[2016-03-08 11:50:43 +0000] [7202] [INFO] Starting gunicorn 19.4.5</code>

<code>[2016-03-08 11:50:43 +0000] [7202] [INFO] Listening at: http:</code><code>//0</code><code>.0.0.0:80 (7202)</code>

<code>[2016-03-08 11:50:43 +0000] [7202] [INFO] Using worker: </code><code>sync</code>

<code>[2016-03-08 11:50:43 +0000] [7207] [INFO] Booting worker with pid: 7207</code>

        這樣的話:

如果你是在有公網IP位址的伺服器部署Blog_mini的,隻需要在網際網路上任何一台主機的浏覽器上輸入你的公網IP位址,就可以通路Blog_mini了。

如果你隻是在區域網路上部署Blog_mini的,那麼在區域網路上的任何一台主機的浏覽器上輸入你這台主機的IP位址也是可以通路的了。

        不過,如果無法通路的話,那可能是防火牆的問題,你可以先把防火牆關掉:

<code>xpleaf@leaf:~$ </code><code>sudo</code> <code>ufw disable</code>

        因為部落客最開始是學網絡工程出身的,是以大家如果在網絡通信上遇到任何問題,都可以給我回複提問,我将一一解答。 

        到了這一步,你已經是成功地把Blog_mini的伺服器部署好了,接下來你就可以營運你的個人部落格網站了!Blog_mini功能強大,但使用非常簡單,你可以參考部落客關于Blog_mini介紹的博文來了解它的功能,當然你也可以自己探索,相信這對你來說都非常容易!

        需要注意的是,Blog_mini支援背景管理(在首頁底欄有'背景管理'登陸連結,點選即可進入登陸頁面),下面是Blog_mini管理背景的預設賬号密碼:

賬号:[email protected]

密碼:blog_mini

        提示:在部署完Blog_mini後,裡面是沒有任何資料的,如果你需要一定的資料來測試Blog_mini的功能,可以在完成上面的操作後執行下面的指令:       

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ python manage.py deploy test_data</code>

         這将會生成100篇博文和700條評論,同時還有博文分類和系統導航,以友善你驗證Blog_mini的功能。

8.使用MySQL作為預設資料庫來運作Blog_mini

(1)安裝與配置MySQL

        這一點繼續第6步的操作,我們将使用MySQL資料庫,在執行下面的步驟之前,請確定你的系統上已經安裝并配置了MySQL資料庫。如果你還沒有安裝,并且不知道怎麼安裝,可以有兩種方法:

通過apt-get方式安裝MySQL

通過源碼的方式安裝MySQL

        新手可以直接使用第一種方法,當然覺得自己可以接受挑戰的,也完全可以使用第二種方法!

        MySQL的安裝與配置完成之後,接着做下面的操作。

(2)安裝Python的MySQL函數庫

安裝python必要的函數庫:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>sudo</code> <code>apt-get </code><code>install</code> <code>python-dev libmysqlclient-dev</code>

安裝MySQL-python:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ pip </code><code>install</code> <code>MySQL-python</code>

<code>……</code>

<code>Successfully installed MySQL-python</code>

<code>Cleaning up...</code>

        注意檢視有沒有安裝成功的資訊。

(3)為Blog_mini建立資料庫

退出虛拟環境,回到使用者主目錄中:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ deactivate </code>

<code>xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ </code><code>cd</code>

<code>xpleaf@leaf:~$</code>

登陸到MySQL資料庫中(請先確定MySQL服務已經開啟):

<code>[root@leaf ~]</code><code># mysql -u root -p</code>

<code>Enter password: </code>

<code>mysql&gt;</code>

為Blog_mini建立資料庫:

6

7

8

9

10

11

12

13

<code>mysql&gt; create database blog_mini default character </code><code>set</code> <code>utf8 collate utf8_general_ci;</code>

<code>Query OK, 1 row affected (0.04 sec)</code>

<code>mysql&gt; show databases;</code>

<code>+--------------------+</code>

<code>| Database           |</code>

<code>| information_schema |</code>

<code>| blog_mini          |</code>

<code>| mysql              |</code>

<code>| performance_schema |</code>

<code>4 rows </code><code>in</code> <code>set</code> <code>(0.04 sec)</code>

        這裡我們建立了名為`blog_mini`的資料庫,同時指定編碼和字元集分别為utf8和utf8_general_ic。

(4)建立資料庫路徑環境變量

        Blog_mini的源碼中指定了讀取環境變量DATABASE_URL來擷取資料庫的路徑,是以我們要為系統設定一個名為DATABASE_URL的環境變量,并且指定值為MySQL資料庫的路徑。

設定系統環境變量:

<code>xpleaf@leaf:~$ </code><code>export</code> <code>DATABASE_URL=mysql:</code><code>//root</code><code>:[email protected]</code><code>/blog_mini</code>

        這裡指定了使用的資料庫路徑為:mysql://root:[email protected]/blog_mini,其中123456是密碼,其它也很容易知道。

驗證系統環境變量:

<code>xpleaf@leaf:~$ </code><code>echo</code> <code>$DATABASE_URL</code>

<code>mysql:</code><code>//root</code><code>:[email protected]</code><code>/blog_mini</code>

        有上面的輸出即說明我們的設定沒有問題。

(5)初始化Blog_mini系統預設資料

        我們首先要初始化Blog_mini所需要的系統預設資料,以確定後面Blog_mini能夠正确運作。

進入project/Blog_mini目錄,初始化虛拟環境:

<code>xpleaf@leaf:~$ </code><code>cd</code> <code>project</code><code>/Blog_mini/</code>

初始化Blog_mini系統預設資料:

<code>(venv)xpleaf@leaf:~</code><code>/project/Blog_mini</code><code>$ python manage.py deploy product          </code>

<code>INFO  [alembic.runtime.migration] Context impl MySQLImpl.</code>

(6)運作Blog_mini

<code>(venv) [root@leaf Blog_mini]</code><code># python manage.py deploy test_data</code>

        在Ubuntu上部署Blog_mini的文檔到這裡就結束了,如果大家在部署的過程中出現什麼問題,請在博文下面給我留言,我将盡最大努力幫助大家!謝謝大家!

本文轉自 xpleaf 51CTO部落格,原文連結:http://blog.51cto.com/xpleaf/1748707,如需轉載請自行聯系原作者