- 前言
- 配置流程
- 1 添加個人賬戶
- 2 為個人賬戶添加sudo 權限
- 3 添加科大的鏡像源
- 4 添加 python 和 pip
- 5 安裝 lnmpa 內建開發環境
- 6 gunicorn安裝
- 7 flask 安裝
- 8 virtualenv 使用
- 9 從倉庫下載下傳 flask 工程檔案
- 10 運作工程項目
- 11 配置nginx 伺服器腳本
- 12 防火牆設定
- 13 mysql 配置
- 效果
1. 前言
今天騰訊雲伺服器終于批下來了, 喜大普奔啊!!!!因為我們需要使用它來搭建自己的網站, 是以趕緊配置一下
項目釋出位址: http://115.159.144.61:8001/
個人網站:http://www.zhyh2010.cn
2. 配置流程
2.1 添加個人賬戶
參考資料: [linux使用者管理(1)—-建立使用者(adduser和useradd)和删除使用者(userdel)]
主要指令:
ps: adduser 會預設建立使用者的主檔案夾
adduser zhyh2010
passwd zhyh2010
(http://blog.csdn.net/beitiandijun/article/details/41678251)
2.2 為個人賬戶添加sudo 權限
參考資料: Centos 添加sudo使用者(把普通使用者設定為sudoer)
主體流程:
login in root user.
終端執行 visudo。這個指令是打開 /etc/sudoer檔案。
在這個檔案的末尾添加 username ALL=(ALL) ALL 然後 ZZ
login in your username.
sudo yum update.//for test
2.3 添加科大的鏡像源
參考資料: Centos鏡像使用幫助
2.4 添加 python 和 pip
參考資料: CentOS6.5上安裝Python2.7和PIP
2.5 安裝 lnmpa 內建開發環境
參考資料: LNMPA 一鍵安裝
2.6 gunicorn安裝
參考資料: Installation
pip install gunicorn
2.7 flask 安裝
參考資料: Installation
pip install flask
pip install virtualenv
2.8 virtualenv 使用
參考資料: Installation
$ mkdir myproject
$ cd myproject
$ virtualenv venv
$ . venv/bin/activate
2.9 從倉庫下載下傳 flask 工程檔案
- git 操作, 當然也可以直接用filezila 将工程傳遞上去
- 注意這裡需要同時安裝 工程相關的依賴插件 flask-login 之類的
- 需要特别注意的是, 使用
和pip install xxx
的效果是不一樣的, 由于我們最終使用sudo運作, 是以, 這裡所有依賴的插件都應該使用sudo pip install xxx
進行安裝, 否則運作錯誤sudo pip
- 需要特别注意的是, 使用
2.10 運作工程項目
1.這裡使用gunicorn 啟動工程
gunicorn -D -w -b : application:app
2.這裡說明一下:
- D 表示背景運作
- w 表示有3 個 工作線程(感覺有些類似 nginx 的 master-worker 模型)
- b 指定ip 和端口
- 這裡采用本機通路, 主要是為了使用nginx 進行代理, 友善管理
- application 表存放 寫着全局變量 app 的那個工程檔案夾
- 在我們的這個工程中, 即包含 init.py 的那個檔案
- app 為全局變量 (
app = Flask(__name__)
)
- ps: 在下面圖示檔案夾中運作 gunicorn 指令
3.參考資料: Docs » Running Gunicorn
2.11 配置nginx 伺服器腳本
- 安裝完的nginx 在
目錄下, 我們可以找到/usr/local/nginx
檔案夾下的conf
檔案, 将其修改nginx.conf
- 添加nginx 需要監聽的端口資訊
server {
listen ;
server_name instagram.zhyh2010.com;
location /{
proxy_pass http://127.0.0.1:8000;
}
}
實際上, 我們将外部通過 8001 端口發送過來的請求, 代理給了
127.0.0.1:8000
也就是我們的 flask 項目
2.12 防火牆設定
- 參考資料:
- 解決 RHEL 7/ CentOS 7/Fedora 出現Unit iptables.service failed to load
- centOS防火牆中端口的開啟和關閉
- linux 中防火牆配置 iptables 指令參數的含義介紹
- 防火牆設定資訊
可以看到 我們的8000, 8001 端口都是開放的, 但是 8000 端口上沒有程式監聽 (我們的程式隻監聽本機的 8000 端口)
而 8001 端口是通過 nginx 監聽的。
- 端口監聽資訊
2.13 mysql 配置
- 我們突然想要擴充程式的功能, 為他添加一個爬蟲程式, 這裡設想的是, 爬蟲程式将爬取到的資料存儲到對應的資料庫表中, 即可實作自動發圖功能, 因而不在使用sqlite 資料庫。
- 安裝 mysqldb
yum install python-devel mysql-devel pip install python-mysql==
出現問題
參考文章: http://stackoverflow.com/questions/5178292/pip-install-mysql-python-fails-with-environmenterror-mysql-config-not-found
-
參考資料: http://www.linuxdiyf.com/viewarticle.php?id=75335
不過應該采用
/etc/init.d/mysql restart
3. 效果
項目釋出位址: http://115.159.144.61:8001/
顯示效果: