部署新的Django專案———〇一 .前期準備
在前面我們已經瞭解瞭如何利用Django框架做一個小專案,但是一直是通過命令列來實現專案的執行的,顯然這樣不符合生產環境使用要求。那麼下面這一階段我們就來簡單的瞭解一下如何部署Django專案
整體思路網上的方法用的最多的就是用uwsgi和nginx來實現專案的部署,這裡也用這個方式實現。
環境準備為了模擬真實的使用環境,我打算把專案部署在騰訊的雲伺服器上。
系統和python的版本
python為3.6.8,是現裝的,由於這個版本的Python用的比較多,就直接指定用這個版本的安裝了
[root@VM-0-13-centos myfiles]# yum install python36
系統發行版為centos7.5
安裝django
django和前面使用的版本一樣,在安裝完python3以後可以直接通過pip3安裝
[root@VM-0-13-centos myfiles]# pip3 install django==2.0.13
建立新的專案
安裝好django以後可以建立一個新的專案來備後面測試使用,注意專案的路徑,我是在家目錄下建立了一個code的資料夾,用來放程式碼
直接在目錄下建立一個新的專案
[root@VM-0-13-centos code]# django-admin startproject blog
要通過ip訪問這個專案,要先對配置檔案settings.py檔案進行修改,先用*來允許所有的IP地址訪問(修改ALLOW_HOSTS列表)
ALLOWED_HOSTS = ['*']
然後執行程式,指定埠8000
[root@VM-0-13-centos blog]# python3 manage.py runserver 0.0.0.0:8000
這裡要注意,執行前應該檢檢視看8000埠是否已經開啟,如果沒問題的話,在本機可以訪問一下ip+埠號
紅色字表示我們還未對資料庫進行遷移,但並不影響程式的執行,
這樣就準備好了Django的專案
uwsgi的準備uwsgi的用途我們後面再說,這裡先把他準備好
安裝
uwsgi可以通過pip直接安裝
[root@VM-0-13-centos blog]# pip3 install uwsgi
但是很多時候下載完成後在安裝時會報錯
提示資訊是沒有<Python.h>檔案,這是因為我們我們沒有安裝python開發包,通過yum安裝一下
[root@VM-0-13-centos blog]# yum install python36-devel
這裡一定要注意,開發包的版本要和python的版本一致
重新安裝uwsgi就好了
uwsgi的測試
下面新建一個Python檔案來測試uwsgi
##file name:uwsgi_test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"]
就是一個簡單的函式,用來發送一個字串給前端頁面
然後執行下面的程式碼
[root@VM-0-13-centos code]# uwsgi --http :9090 --wsgi-file uwsgi_test.py
同樣在執行前應該檢查埠的開啟狀態,這裡我們指定的是9090埠,然後在本地訪問這個地址
前端顯示了我們通過函式傳送到字串Hello World,說明uwsgi的狀態也是OK的。
nginx的準備nginx的準備稍微麻煩一些,我一步步來
安裝nginx
nginx的安裝有直接通過yum安裝,也可以下載原始碼直接自己安裝,我在Ubuntu上也按裝過,覺得方法都差不多,yum安裝時會解決所有的依賴問題,但是裝的路徑比較分散,這裡建議使用原始檔安裝
下載檔案,這裡直接下載1.16.1版本並解壓
[root@VM-0-13-centos myfiles]# wget http://nginx.org/download/nginx-1.16.1.tar.gz [root@VM-0-13-centos myfiles]# tar -xzvf nginx-1.16.1.tar.gz
我們把nginx安裝在/opt/nginx路徑下,安裝的時候指定了兩個附加的功能,後期再說
[root@VM-0-13-centos nginx-1.16.1]# ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module
安裝過程中首先報錯,提示需要PCRE libiary
yum安裝,注意安裝的還是開發包
[root@VM-0-13-centos nginx-1.16.1]# yum install pcre-devel
繼續執行配置檔案,又出現錯誤
沒有OpenSSL,繼續yum安裝
[root@VM-0-13-centos nginx-1.16.1]# yum install openssl-devel
配置完成以後,可以通過makefile進行安裝
[root@VM-0-13-centos nginx-1.16.1]# make && make install
跳轉到我們指定的安裝路徑下,執行nginx,也可以用絕對路徑執行
[root@VM-0-13-centos /]# /opt/nginx/sbin/nginx
可以看一下nginx預設的配置檔案,監聽的埠是80,用瀏覽器訪問一下,就能開啟nginx的預設引導頁面
說明nginx也已經正常安裝。