Mxonline在阿里雲伺服器上的部署(uwsgi nginx)
我的專案結構
1. 執行`python manage.py migrate`命令,將遷移檔案,對映到資料庫中,建立相應的表。
進入資料庫 use mxonline資料庫 source /home/Mxonline3-master/mxonline.sql 匯入資料
2. 執行`python manage.py runserver 0.0.0.0:8000`,然後在你自己電腦上,在瀏覽器中輸入`http://你的伺服器的ip地址:8000/`,訪問下網站所有頁 面,確保所有頁面都沒有錯誤。
3. 設定`ALLOW_HOST`為你的域名,以及ip地址。
4. 設定`DEBUG=False`,避免如果你的網站產生錯誤,而將錯誤資訊暴漏給使用者。
### 安裝uwsgi
1. uwsgi是一個應用伺服器,非靜態檔案的網路請求就必須通過他完成,他也可以充當靜態檔案伺服器,但不是他的強項。uwsgi是使用python編寫的,因此通過`pip install uwsgi`就可以了。(uwsgi必須安裝在系統級別的Python環境中,不要安裝到虛擬環境中)。
2. 使用命令`uwsgi --http :8000 --module zhiliaoketang.wsgi --vritualenv=/root/.virtualenvs/django-env-py2`。用`uwsgi`啟動專案,如果能夠在瀏覽器中訪問到這個頁面,說明`uwsgi`可以載入專案了。
### 編寫uwsgi配置檔案:
在專案的路徑下面,建立一個檔案叫做mxonline.ini的檔案
寫入配置:
[uwsgi] # socket檔案 socket = 127.0.0.1:8000 # 專案的路徑 chdir = /home/Mxonline3-master # Django的wsgi檔案 module = Mxonline3.wsgi # 程序相關的設定 # 主程序 master = true # 最大數量的工作程序 processes = 10 # 設定socket的許可權 chmod-socket = 664 # 退出的時候是否清理環境 vacuum = true buffer-size = 65536 # Python虛擬環境的路徑 home = /root/.virtualenvs/django_env
然後使用命令`uwsgi --ini mxonline.ini`,看下是否還能啟動這個專案。
### 安裝nginx:
1. nginx是一個web伺服器。用來載入靜態檔案和接收http請求的。通過命令`sudo apt install nginx`即可安裝。
2. `nginx`常用命令:
* 啟動nginx:service nginx start
* 關閉nginx:service nginx stop
* 重啟nginx:service nginx restart
### 編寫nginx配置檔案:
在/etc/nginx/conf.d下新建一個檔案 mxonline.conf
寫入配置:
upstream django {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name www.donghao.club;
server_name 47.107.66.196;
charset utf-8;
client_max_body_size 75M;
location /static {
alias /home/Mxonline3-master/static;
}
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
}
寫完配置檔案後,為了測試配置檔案是否設定成功,執行命令:`service nginx configtest`,如果不報錯,說明成功。
每次修改完了配置檔案,都要記得執行`service nginx restart`。
回到專案->使用命令 uwsgi mxonline.ini
這樣專案就執行起來了
值得注意的是:由於我是用的阿里雲伺服器,我們需要開放25埠,用來發送郵件,不然會發送超時。
這樣就部署成功了,當然你也可以用supervisor來對程序管理。
mxonline 線上地址:http://www.donghao.club/
Github:https://github.com/1417766861/Mxonline3.6