Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

發表於2016-10-27

前不久為了部署Django專案,在百度上到處找教程,找到的教程因為這樣那樣的原因,總是失敗,可能是因為作者水平比較高吧,有些細節的東西估計沒寫出來,造成我這種初學者想照著做都做不成。百度不行就用Google吧,中文不行就找英文的,最後,給我誤打誤撞的部署成功了。為了加深印象,我用虛擬機器再重新部署一次。

準備工作

我使用的系統是Ubuntu14.04.5 LTS(Trusty Tahr) server i386版,官網下載地址:http://releases.ubuntu.com/14.04.4/ubuntu-14.04.5-server-i386.iso

安裝的時候全部選擇英文,記得以前選擇中文的時候安裝時出了問題,伺服器元件一個不選,Ubuntu安裝做的很貼心,基本上是一路回車,就不詳細說明了。
裝好以後,首先要更新apt-get,貌似我的ubuntu映象是在國內站下載的,所以源是國內的地址,所以就不用更換源了。

1. 更新apt-get

2. 安裝SSH

裝好以後,用ifconfig檢視一下IP地址
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

可以看到IP地址是192.168.0.154,下面我們就使用XSHELL連線192.168.0.154進行操作了。

3. 安裝Git

這一步不是必須的,因為我的測試專案是放在git.oschina.com上的,安裝git獲取專案程式碼就很方便了

安裝配置MySQL

1. 安裝

安裝過程中會提示讓你設定root密碼
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

2. 配置

2.1 資料庫初始化:

2.2 執行資料庫Mysql安全配置嚮導

輸入root密碼
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

是否修改root密碼,因為前面已經設定過了,選n
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

是否移除匿名使用者,肯定是要選y的
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

是否允許遠端登陸,如果選n的話,只能在本機訪問資料庫,建議選y
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

是否移除test資料庫,建議選是
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

重新載入許可權表,選y
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web伺服器

All done!

安裝配置Python環境

1.安裝python-dev包

2.安裝pip

3.更換pip源
因為國內使用預設的pip源速度很慢,所以需要更換,在使用者根目錄下新建.pip目錄,在該目錄下新建pip.conf檔案

然後在檔案裡寫上:

4.安裝配置VirtualEnv和VirtualEnvWrapper
VirtualEnv可以管理多個開發環境,VirtualEnvWrapper使得VirtualEnv變得更好用

安裝完成以後,需要在環境變數中加入一些配置:
下面這句話是使用python3才需要執行的,python2不需要

不管python是什麼版本,都要執行下面兩句:

可以重啟系統啟用,也可以執行:

然後就可以開始建立一個虛擬環境:

你會發現,提示符變成(first)user@hostname:~$,表示現在已經進入first的虛擬環境,在此環境下進行的pip等操作,只會在當前環境下生效,當前虛擬環境在/home/siva/Env/first目錄下

Django專案配置

1.安裝django

我使用選擇版本來安裝:

2.下載或拷貝專案

安裝完成以後,使用git把專案clone下來,此處填寫你自己的地址:

此例子的專案名稱是Siva_First,路徑是在/home/siva/下

3.配置django

用Mysql建好專案的資料庫,然後進入Siva_First目錄,用django應用資料模型:

建立後臺超級使用者:

靜態檔案安置:

4.測試專案

執行開發伺服器測試一下是否可以正常執行:

這時,用瀏覽器開啟http://192.168.0.154:8000/可以看到網站

5.退出虛擬環境

因為當前是在first虛擬環境下,為了下一步的安裝,必須退出當前的虛擬環境:

uWSGI安裝和配置

1.安裝uWSGI
pip下安裝很簡單:

我們可以測試一下uwsgi是否安裝成功

上面的命令是使用8000埠,虛擬環境在/home/siva/Env/first,專案在/home/siva/Siva_First下

2.配置uWSGI

使用上面的命令列來部署網站肯定是不行的,我們需要使用“Emperor mode”,建立一個目錄來放配置檔案:

以專案名稱來命名這個配置檔案:

內容如下:

project是專案名稱,base是專案所在位置

現在,配置檔案建好了,但是uwsgi還不能自動執行我們需要在/etc/init目錄中建一個啟動指令碼:

內容如下:

這一步完成以後,uwsgi還是不能正常啟動,是因為www-data使用者組還沒有建立,等我們裝完nginx以後就可以了。

反向代理:Nginx的安裝和配置

1.安裝

2.建立配置檔案

內容如下:

然後把這個配置檔案連結到sites-enabled目錄下

檢查一下配置檔案的語法是否有問題

如果沒問題,那麼重啟一下nginx和uwsgi的服務就可以訪問了

相關文章