本机操作
-
首先进入项目文件夹,使用命令
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 vim2)输入
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命令获取 -
安装
mysqlsudo apt install mysql-server mysql-clientsudo apt install libmysqld-dev -
设置项目
1)进入
srv文件夹,cd /srv,srv可以是另外有权限访问的文件夹2)新建项目文件夹
mkdir Buggg3)进入
Buggg文件夹,并初始化为git文件夹,
cd Buggg
git init4)与远程仓库连接
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.com5)拉取仓库代码
git pull origin master 输入自己的用户名和密码即可拉取
6)进入虚拟环境
workon flask-py37)安装
python package
pip3 install -r requirements.txt8)进入数据库,并创建
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 tables10)启动服务
①设置运行的
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;
然后在浏览器输入域名即可访问。









网友评论