本机操作
首先进入项目文件夹,使用命令
pip freeze > requirements.txt
导出requirements.txt
-
然后执行命令
git push origin master
将自己的项目提交到git
服务器操作
- 安装
Ubantu
或CentOS
虚拟机
- 安装
xshell
,安装完成后输入虚拟机ip
、port
、用户名、密码来连接虚拟机,连接成功后就可以在xshell
上操作服务器
推荐使用
root
用户操作服务器,在xshell
输入su
,然后输入密码进入root
权限如果没有设置
root
密码,则可以按如下操作设置root
密码:第一步:
sudo passwd
第二步:输入密码
第三步:确认密码
- 安装
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
,执行pip3 install virtualenvwrapper
即可
注:安装完成后需要设置环境变量,不然无法识别命令。
1)首先安装
vim
,sudo apt install vim
2)输入
vim ~/.bashrc
进入编辑,按 ↓ 至底部,输入i
进入编辑模式,输入以下两行代码:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
输入完成后,按
ESC
,然后输入:wq
保存并退出,然后执行source ~/.bashrc
激活
创建虚拟环境,
mkvirtualenv -p "/usr/bin/python3" flask-py3
,flask-py3
是虚拟环境名称,可随意取名但不可重复,-p "/usr/bin/python3"
是指定python
版本为py3
,这个py3
的路径通过which python3
命令获取-
安装
mysql
sudo apt install mysql-server mysql-client
sudo apt install libmysqld-dev
-
设置项目
1)进入
srv
文件夹,cd /srv
,srv
可以是另外有权限访问的文件夹2)新建项目文件夹
mkdir Buggg
3)进入
Buggg
文件夹,并初始化为git
文件夹,
cd Buggg
git init
4)与远程仓库连接
git remote add origin git@gitee.com:slowchen/Buggg.git
备注:如果报错
ssh: Could not resolve hostname gitee.com: Name or service not known
,则执行以下操作: ①
ping gitee.com
获取到github.com
的ip
为116.211.167.14
②在/ etc/hosts
中添加一行如下:
116.211.167.14 gitee.com
5)拉取仓库代码
git pull origin master
输入自己的用户名和密码即可拉取
6)进入虚拟环境
workon flask-py3
7)安装
python package
pip3 install -r requirements.txt
8)进入数据库,并创建
mysql -uroot -p
,输入密码,进入数据库
create database buggg charset utf8
,注意此处的buggg
与项目config.py
里面的database
应该一 致9)进入项目文件夹,迁移数据库
python3 manage.py db init
python3 manage.py db migrate
python3 manage.py db upgrade
迁移完成后,可以进入数据库查看是否迁移成功
mysql -uroot -p
use buggg
show tables
10)启动服务
①设置运行的
host
为'0.0.0.0'
,否则无法访问 ②进入项目文件夹,直接运行主
app
文件
python3 app.py
③进入项目文件夹,使用
flask_script
运行 在
manage.py
中添加manager.add_command('runserver', Server(host='0.0.0.0'))
再运行
python3 manage.py runserver
即可启动服务11)本机访问
本机访问虚拟机
ip
+port
即可访问,port
未改变则为5000
,例如http://192.168.40.128:5000
nginx
安装: sudo apt-get install nginx
启动: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; #项目目录下的sock文件
}
server{
listen 80;
server_name 192.168.1.104; #虚拟机ip
charset utf-8;
client_max_body_size 75M;
location / {
uwsgi_pass buggg; #对应第一行的 upstream
include /etc/nginx/uwsgi_params;
}
}
uwsgi
安装:sudo pip install uwsgi
,注意不要安装在虚拟环境中,要安装在系统里面。
启动flask项目:uwsgi --http :5000 --wsgi-file /srv/Buggg/Buggg.py --callable app -H /root/.virtualenvs/buggg-env-py3
在项目文件夹,创建配置文件buggg_uwsgi.ini
[uwsgi]
chdir = /srv/Buggg #项目文件夹地址
home = /root/.virtualenvs/buggg-env-py3 #虚拟环境
module = Buggg #项目文件夹名称
master = true
processes = 10
wsgi-file = /srv/Buggg/Buggg.py #项目主程序
callable = app #主程序app名称
socket = /srv/Buggg/buggg.sock #此处的socket应与buggg.conf中的upstream一致
chmod-socket = 666
*注:复制时要删除备注,否则报错
使用配置文件启动flask
项目
进入项目文件夹,执行uwsgi --ini buggg_uwsgi.ini
同时启动nginx
和 uwsgi
,然后在浏览器输入虚拟机ip
即可访问项目
supervisor
-
安装
pip install supervisor
,使用python2
,安装在系统python
下 -
启动
supervisord -c supervisor.conf
-
配置
在项目文件夹下新建
supervisor.conf
-
填写如下配置
# 项目名称 [program:Buggg] # supervisor执行的命令 command=uwsgi --ini /srv/Buggg/buggg_uwsgi.ini # 项目的目录 directory = /srv/Buggg # 开始的时候等待多少秒 startsecs=0 # 停止的时候等待多少秒 stopwaitsecs=0 autostart=true # 程序挂了后自动重启 autorestart=true # 输出的log文件 stdout_logfile=/srv/Buggg/log/supervisord.log # 输出的错误文件 stderr_logfile=/srv/Buggg/log/supervisord.err [supervisord] # log的级别 loglevel=info # 使用supervisorctl的配置 [supervisorctl] # 使用supervisorctl登录的地址和端口号 serverurl = http://127.0.0.1:9001 # 登录supervisorctl的用户名和密码 username = admin password = admin [inet_http_server] # supervisor的服务器 port = :9001 # 用户名和密码 username = admin password = admin [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
*****注:填写配置文件时,千万注意不要在配置后面添加注释,如需注释应该换行
-
其他
- 如果报错另外程序在运行中,可执行
sudo killall supervisord
杀掉进程,然后重新启动 - 可在浏览器中打开虚拟机
ip
+配置文件中填写的port
(例如http://192.168.1.104:9001
),输入用户名+密码(admin
:admin
)来管理进程
- 如果报错另外程序在运行中,可执行
启动
supervisord -c supervisor.conf
启动supervisor
service nginx start
启动nginx
在浏览器输入虚拟机ip
,即可打开网站。
ip绑定域名
在域名控制台解析到服务器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;
然后在浏览器输入域名即可访问。