本機(jī)操作
首先進(jìn)入項(xiàng)目文件夾汁果,使用命令
pip freeze > requirements.txt
導(dǎo)出requirements.txt
-
然后執(zhí)行命令
git push origin master
將自己的項(xiàng)目提交到git
?
服務(wù)器操作
- 安裝
Ubantu
或CentOS
虛擬機(jī)
- 安裝
xshell
诡渴,安裝完成后輸入虛擬機(jī)ip
修陡、port
厌均、用戶名呀非、密碼來連接虛擬機(jī)显拳,連接成功后就可以在xshell
上操作服務(wù)器
推薦使用
root
用戶操作服務(wù)器氯质,在xshell
輸入su
螟加,然后輸入密碼進(jìn)入root
權(quán)限如果沒有設(shè)置
root
密碼直焙,則可以按如下操作設(shè)置root
密碼:第一步:
sudo passwd
第二步:輸入密碼
第三步:確認(rèn)密碼
- 安裝
python3
景东,apt install python3
- 安裝
git
,sudo apt install git
- 生成
sshkey
:sudo ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
- 查看
sshkey
:sudo cat ~/.ssh/id_rsa.pub
- 添加
sshkey
: 將sshkey
添加在自己的github
密鑰中
- 生成
- 在
su
賬戶下安裝virtualenv
和virtualenvwrapper
奔誓,執(zhí)行pip3 install virtualenvwrapper
即可
注:安裝完成后需要設(shè)置環(huán)境變量斤吐,不然無法識(shí)別命令。
1)首先安裝
vim
厨喂,sudo apt install vim
2)輸入
vim ~/.bashrc
進(jìn)入編輯和措,按 ↓ 至底部,輸入i
進(jìn)入編輯模式蜕煌,輸入以下兩行代碼:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
輸入完成后派阱,按
ESC
,然后輸入:wq
保存并退出斜纪,然后執(zhí)行source ~/.bashrc
激活
創(chuàng)建虛擬環(huán)境贫母,
mkvirtualenv -p "/usr/bin/python3" flask-py3
文兑,flask-py3
是虛擬環(huán)境名稱,可隨意取名但不可重復(fù)腺劣,-p "/usr/bin/python3"
是指定python
版本為py3
绿贞,這個(gè)py3
的路徑通過which python3
命令獲取-
安裝
mysql
sudo apt install mysql-server mysql-client
sudo apt install libmysqld-dev
-
設(shè)置項(xiàng)目
1)進(jìn)入
srv
文件夾,cd /srv
誓酒,srv
可以是另外有權(quán)限訪問的文件夾2)新建項(xiàng)目文件夾
mkdir Buggg
3)進(jìn)入
Buggg
文件夾樟蠕,并初始化為git
文件夾,?
cd Buggg
?
git init
4)與遠(yuǎn)程倉庫連接
?
git remote add origin git@gitee.com:slowchen/Buggg.git
? 備注:如果報(bào)錯(cuò)
ssh: Could not resolve hostname gitee.com: Name or service not known
靠柑,則執(zhí)行以下操作:? ①
ping gitee.com
? 獲取到github.com
的ip
為116.211.167.14
? ②在/ etc/hosts
中添加一行如下:
?116.211.167.14 gitee.com
5)拉取倉庫代碼
?
git pull origin master
? 輸入自己的用戶名和密碼即可拉取
6)進(jìn)入虛擬環(huán)境
?
workon flask-py3
7)安裝
python package
?
pip3 install -r requirements.txt
8)進(jìn)入數(shù)據(jù)庫寨辩,并創(chuàng)建
?
mysql -uroot -p
,輸入密碼歼冰,進(jìn)入數(shù)據(jù)庫?
create database buggg charset utf8
靡狞,注意此處的buggg
與項(xiàng)目config.py
里面的database
應(yīng)該一 致9)進(jìn)入項(xiàng)目文件夾,遷移數(shù)據(jù)庫
?
python3 manage.py db init
?
python3 manage.py db migrate
?
python3 manage.py db upgrade
? 遷移完成后隔嫡,可以進(jìn)入數(shù)據(jù)庫查看是否遷移成功
?
mysql -uroot -p
?
use buggg
?
show tables
10)啟動(dòng)服務(wù)
? ①設(shè)置運(yùn)行的
host
為'0.0.0.0'
甸怕,否則無法訪問? ②進(jìn)入項(xiàng)目文件夾,直接運(yùn)行主
app
文件?
python3 app.py
? ③進(jìn)入項(xiàng)目文件夾腮恩,使用
flask_script
運(yùn)行? 在
manage.py
中添加manager.add_command('runserver', Server(host='0.0.0.0'))
? 再運(yùn)行
python3 manage.py runserver
即可啟動(dòng)服務(wù)11)本機(jī)訪問
? 本機(jī)訪問虛擬機(jī)
ip
+port
即可訪問梢杭,port
未改變則為5000
,例如http://192.168.40.128:5000
nginx
安裝: sudo apt-get install nginx
啟動(dòng):sudo service nginx start
重啟:sudo service nginx restart
停止:sudo service nginx stop
測試:sudo service nginx configtest
在/etc/nginx/conf.d
編寫生成并配置文件buggg.conf
生成: touch buggg.conf
配置:
upstream buggg {
server unix:///srv/Buggg/buggg.sock; #項(xiàng)目目錄下的sock文件
}
server{
listen 80;
server_name 192.168.1.104; #虛擬機(jī)ip
charset utf-8;
client_max_body_size 75M;
location / {
uwsgi_pass buggg; #對(duì)應(yīng)第一行的 upstream
include /etc/nginx/uwsgi_params;
}
}
uwsgi
安裝:sudo pip install uwsgi
秸滴,注意不要安裝在虛擬環(huán)境中武契,要安裝在系統(tǒng)里面。
啟動(dòng)flask項(xiàng)目:uwsgi --http :5000 --wsgi-file /srv/Buggg/Buggg.py --callable app -H /root/.virtualenvs/buggg-env-py3
在項(xiàng)目文件夾荡含,創(chuàng)建配置文件buggg_uwsgi.ini
[uwsgi]
chdir = /srv/Buggg #項(xiàng)目文件夾地址
home = /root/.virtualenvs/buggg-env-py3 #虛擬環(huán)境
module = Buggg #項(xiàng)目文件夾名稱
master = true
processes = 10
wsgi-file = /srv/Buggg/Buggg.py #項(xiàng)目主程序
callable = app #主程序app名稱
socket = /srv/Buggg/buggg.sock #此處的socket應(yīng)與buggg.conf中的upstream一致
chmod-socket = 666
*注:復(fù)制時(shí)要?jiǎng)h除備注咒唆,否則報(bào)錯(cuò)
使用配置文件啟動(dòng)flask
項(xiàng)目
進(jìn)入項(xiàng)目文件夾,執(zhí)行uwsgi --ini buggg_uwsgi.ini
同時(shí)啟動(dòng)nginx
和 uwsgi
释液,然后在瀏覽器輸入虛擬機(jī)ip
即可訪問項(xiàng)目
supervisor
-
安裝
pip install supervisor
全释,使用python2
,安裝在系統(tǒng)python
下 -
啟動(dòng)
supervisord -c supervisor.conf
-
配置
在項(xiàng)目文件夾下新建
supervisor.conf
-
填寫如下配置
# 項(xiàng)目名稱 [program:Buggg] # supervisor執(zhí)行的命令 command=uwsgi --ini /srv/Buggg/buggg_uwsgi.ini # 項(xiàng)目的目錄 directory = /srv/Buggg # 開始的時(shí)候等待多少秒 startsecs=0 # 停止的時(shí)候等待多少秒 stopwaitsecs=0 autostart=true # 程序掛了后自動(dòng)重啟 autorestart=true # 輸出的log文件 stdout_logfile=/srv/Buggg/log/supervisord.log # 輸出的錯(cuò)誤文件 stderr_logfile=/srv/Buggg/log/supervisord.err [supervisord] # log的級(jí)別 loglevel=info # 使用supervisorctl的配置 [supervisorctl] # 使用supervisorctl登錄的地址和端口號(hào) serverurl = http://127.0.0.1:9001 # 登錄supervisorctl的用戶名和密碼 username = admin password = admin [inet_http_server] # supervisor的服務(wù)器 port = :9001 # 用戶名和密碼 username = admin password = admin [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
*****注:填寫配置文件時(shí)误债,千萬注意不要在配置后面添加注釋浸船,如需注釋應(yīng)該換行
-
其他
- 如果報(bào)錯(cuò)另外程序在運(yùn)行中,可執(zhí)行
sudo killall supervisord
殺掉進(jìn)程寝蹈,然后重新啟動(dòng) - 可在瀏覽器中打開虛擬機(jī)
ip
+配置文件中填寫的port
(例如http://192.168.1.104:9001
)李命,輸入用戶名+密碼(admin
:admin
)來管理進(jìn)程
?
- 如果報(bào)錯(cuò)另外程序在運(yùn)行中,可執(zhí)行
啟動(dòng)
supervisord -c supervisor.conf
啟動(dòng)supervisor
service nginx start
啟動(dòng)nginx
在瀏覽器輸入虛擬機(jī)ip
,即可打開網(wǎng)站躺盛。
ip綁定域名
在域名控制臺(tái)解析到服務(wù)器ip后项戴,編輯/etc/nginx/conf.d/buggg.conf
,在server_name里面添加域名槽惫,例如
server_name 118.89.24.114 www.bug-gg.com www.bug-gg.xyz bug-gg.com bug-gg.xyz;
然后在瀏覽器輸入域名即可訪問周叮。