聲明:本文轉載於知乎看戲(https://zhuanlan.zhihu.com/p/28204251)
開始粘貼
sudo apt-get update
sudo apt-get install python-pip python-dev nginx
粘粘粘
sudo pip install virtualenv
好了,粘到這了我要說一下,virtualenv這個python中的神器不需要我再細說了,下面我要說的是我們要創建一個目錄也是一樣,粘粘粘,這個路徑你也可以自己設置
mkdir /home/project
cd /home/project
我們現在在當前的目錄下/home/project/繼續粘貼
virtualenv venv
粘貼完成後你會發現在/home/project/下會有一個venv的文件夾,我們繼續
cd venv
現在路徑就是/home/project/venv 這個路徑下會有幾個文件夾,管它呢?我就要結果,好的
source bin/activate
執行完後你會發現我們已經在虛擬環境中了
(venv)user@host:~/project類似這樣的前面有個括號裏面是venv
—————————————-這是分割線—————————————
我們已經在虛擬環境中了,下面不要退出我們繼續在虛擬環境中搞事情。
pip install uwsgi flask
在虛擬環境中繼續安裝…….
正常情況下,此時別的教程就開始了,我們要新建一個test.py的項目類似這樣的
from flask import Flask
app = Flask(__name__)
.....然後讓你請求返回hello world
if __name__ == "__main__":
app(host='0.0.0.0')
然後讓你python test.py ,又讓你在瀏覽器輸入,滾滾滾滾,md老子哪裏的瀏覽器,都是大黑屏。
上傳項目
我們先把我們的項目傳到服務器上面去
sudo scp -r /你本地電腦路徑/appservice/ root@ip:/home/project
會讓你輸入密碼,輸入就好了,注意:sudo scp -r /你本地電腦路徑/appservice/ root@ip:/home/project 是在你的本地電腦上輸入的!
現在你的項目已經來到了服務器上面,
創建uWSGI入口
比較麻煩的正題開始了。創建wsgi入口:這個不要慌張因爲剛剛你把項目傳上來的時候已經創建了一個appservice的文件夾,下面繼續粘貼命令
nano /home/project/appservice/wsgi.py
讓你創建一個wsgi.py內容是
from 你項目入口裏面的application import application
if __name__ == "__main__":
application.run()
然後我們保存一下!記得保存!!
保存成功後我們繼續,先把虛擬環境關掉
deactivate
現在開始很重要了!雖然可以直接粘貼,但是最好要理解的粘貼,別因爲你的文件夾名稱不同導致失敗。
創建uWSGI配置文件
nano /home/project/appservice/myproject.ini
粘貼內容
[uwsgi]
module = wsgi
master = true
processes = 5
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true
完成後保存,友情提示 輸入 :wq
創建一個Upstart腳本
就是粘貼
sudo nano /etc/init/myproject.conf
粘貼
description "uWSGI server instance configured to serve myproject"
start on runlevel [2345]
stop on runlevel [!2345]
setuid root
setgid www-data
env PATH=/home/project/venv/bin
chdir /home/myproject/appservice
exec uwsgi --ini myproject.ini
env:就是最開始我們創建的虛擬環境路徑
chdir:我們的項目路徑
這兩個根據實際情況改一下子就可以了
完成後保存並關閉文件。 :wq
您可以通過鍵入以下內容立即開始進程:
sudo start myproject
此時應該顯示的運行成功,之前我運行一次不成功的情況是,setuid那個root沒改
將Nginx配置爲代理請求
繼續粘貼
sudo nano /etc/nginx/sites-available/myproject
粘
server {
listen 80;
server_name 你的服務器對外ip;
access_log /home/project/log/access.log;
error_log /home/project/log/error.log;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/project/appservice/myproject.sock;
}
}
粘貼到這裏有的朋友會發現myproject.sock這個東西出現了很多次阿,哪裏來的啊,不要怕,此時這個myproject.sock正安靜的躺在你的appservice裏。
保存 :wq
注意/home/project/log/文件夾得先創建出來
要啓用我們剛剛創建的Nginx服務器塊配置,請將該文件鏈接到sites-enabled目錄:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
我們可以鍵入以下內容來測試語法錯誤:
sudo nginx -t
balabalabalabtla%^& * 出現success ok 臥槽,恭喜你。
如果這返回沒有指示任何問題,我們可以重新啓動Nginx進程來閱讀我們的新配置:
sudo service nginx restart
您現在應該可以在Web瀏覽器中訪問服務器的域名或IP地址
md等待爲什麼我的不好用?費了一大頓勁爲什麼還是鏈接不上。
這裏面是因爲你的阿里雲80端口沒給你開,你去添加一個80端口就ok了!!