在DigitalOcean上部署了flaskblog,項目雖小,部署中也學到了很多東西。
作業系統選擇的是Ubuntu14.04,原因就是平時自己主要使用這個版本,順手而已,所以你自己可以根據需要選擇合適的linux版本。
部署方案:
Virtualenv+Gunicorn+Nginx+Supervisor
從這裡下載項目的代碼flaskblog, 工程中帶有簡單的設定檔參考。
可以先訪問flaskblog看一下。
注意
本文中使用Ubuntu14.04 64位主機, 建立一個名為xin的使用者,進行部署。
本文重點部署,所有linux的相關操作不做詳細介紹。
部署目錄是(/home/xin/www/flaskblog),所以請注意設定檔中的目錄。
環境
系統:Ubuntu 14.04 64
Web Server: Nginx
虛擬環境: Virtualenv
WSGI Server: Gunicorn
資料庫: MySQL
Monitor: Supervisor
使用supervisor主要是監控gunicorn的運行,保證伺服器的可以持續運行。
安裝
安裝軟體
$ sudo apt-get install python-pip $ sudo apt-get install python-dev $ sudo pip install virtualenv $ sudo apt-get install mysql-server $ sudo apt-get install libmysqlclient-dev $ sudo apt-get install nginx $ sudo apt-get install supervisor
下載工程並開啟虛擬環境
使用git下載代碼到(/home/xin/www/flaskblog)
$ git clone https://github.com/defshine/flaskblog.git $ cd flaskblog
啟動虛擬環境,安裝工程依賴
$ virtualenv venv $ source venv/bin/activate (venv)$ pip install -r requirements.txt
如何退出虛擬環境
(venv)$ deactivate
資料庫
在MySQL資料庫中建立資料庫(flaskblog),修改 config.py中的資料庫的配置
初始化資料庫並建立管理使用者
(venv)$ python manage.py create_db (venv)$ python manage.py create_user -u admin -p 123456
開啟監控
根據自己的情況,編輯工程下的supervisor設定檔(flaskblog.conf),然後複製到系統目錄中
$ sudo cp flaskblog.conf /etc/supervisor/conf.d/
重新載入設定檔,並啟動flaskblog
$ sudo supervisorctl reload $ sudo supervisorctl start flaskblog
查看運行狀態
$ sudo supervisorctl status
Nginx
修改nginx的設定檔(flaskblog),然後複製到系統目錄中去,並建立軟連結。重啟nignx。
$ sudo cp flaskblog /etc/nginx/site-available/ $ cd /etc/nginx/site-enabled $ sudo ln -s /etc/nginx/site-avalaible/flaskblog . $ sudo service nginx reload $ sudo service nginx restart
查看nginx狀態
$ sudo service nginx status
然後,就可以通過ip地址訪問了。當然,配置好網域名稱,訪問起來更好。
flaskblog這個小項目,剛剛有個小雛形,後續還可以開發一些小特性。