Python3.4+Nginx+Django1.8+Mysql5.5專案開發與部署
阿新 • • 發佈:2019-01-25
折騰好幾天才將專案部署成功,現在用篇文章給記錄下來。我的專案是採用的Python3.4+Nginx+uswgi+Mysql5.5+django1.8+Ubuntu12環境。專案原始碼是放在我的Github上https://github.com/xiaokugua250/GdProject,有興趣可以下載和提出指正意見。(文章記錄的比較亂,後續會做相應整理) 環境安裝不多說,網上都有。需要注意的是安裝mysql時如果要使得資料庫能夠遠端連線就需要修改資料庫配置http://my.oschina.net/duhaizhang/blog/71929 ,如果還是不能連線遠端資料庫需要注意一下在資料庫配置檔案 /etc/mysql/my.conf檔案下bind_address屬性需要修改(最直接是註釋掉)
安裝django+mysql+nginx+uwsgi網上教程很多,由於我的伺服器是Ubuntu,所以直接 切換到root使用者下apt-get install mysql nginx uwsgi Django1.8安裝網上教程很多,我直接採用pip3 install django就安裝成功。 下面就直接開始專案例項,我的專案目錄是 /Project. 進入目錄後新建django專案django-admin startproject GdProjectDjango,進入目錄GdProjectDjango python3 manage.py startapp gdrobot 新建app.專案完成後目錄如下:
django專案是否建立成功,可以執行 python3 manage.py runserver 隨後會在http://127.0.0.1:8000下顯示it worked 表明專案建立成功 本文主要講的是專案配置所以新建django專案就掠過,如果不明白網上教程很多百度即可,唯一不同的是本文采用的是django1.8 現在依次給出部署配置。為了方便起見/etc/nginx/nginx.conf中進行配置。配置如下
其中server 127.0.0.1:8002可以更改埠號,這個是用於本機uwsgi監聽埠傳遞給uginx。server_name 為你的伺服器域名或者IP,因為我的伺服器現在只能IP訪問,所以server_name 設定為伺服器IP 112.74.104.106 /media /static分別對應為你Djano專案下的media 和static目錄路徑。特別需要注意的是location下的root 對應的是 django專案所在的目錄
專案現在已經啟動起來,但是靜態檔案沒有載入進去。現在我們採用socket進行uwsgi到nginx之間的連線,這次啟動命令為 uswgi --socket :埠 --moudle 專案.wsgi 在我的專案中啟動例子如下, 我們新建專案.ini檔案來啟動, 專案ini檔案如下,需要注意的是moudle 屬性和 socket屬性,特別是socket一定要相對應
如果在部署時,後臺管理admin出現無法載入css/js等靜態檔案的情況,執行 python3 managy.py collectstatic 命令即可解決。前提是你的static目錄下存放有admin靜態檔案目錄 如果想多個app公用一個外部static目錄,則需要在setting.py中新增STATICFILES_DIRS屬性