环境迁移(批量操作)
开发机上导出 $ pip3 freeze > a.txt
服务器上安装 $ pip3 sudo apt-get install python3-pip
$ pip3 install --upgrade pip
$ sudo vi /usr/bin/pip3
from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())
$ pip3 install -r a.txt
将项目源码上传至华为云服务器
可以通过ssh方式、github方式 或 pycharm远程将代码上传
安装 uwsgi
$ sudo pip3 install uwsgi
在项目文件夹下创建uwsgi.ini文件并配置(注:配置与注释不可在同一行)
[uwsgi]
socket=127.0.0.1:8000 # uwsgi监听的地址和端口
chdir=/home/tmp/pycharm_project_367 # 项目根目录->绝对路径
wsgi-file=myexpression/wsgi.py # 项目中wsgi.py文件目录,相对于当前工作目录
process=2 # 进程个数
pidfile=uwsgi.pid # 服务的pid记录文件
daemonize=uwsgi.log # 服务的日志文件位置
vacuum=True # 进程停止后,回收pid
master=True # 启动主进程管理子进程
查看uwsgi 进程
$ sudo ps aux | grep uwsgi
启动/结束uwsgi进程(需要在uwsgi.ini当前目录下)
$ sudo uwsgi --ini uwsgi.ini
$ sudo uwsgi --stop uwsgi.pid
$ sudo killall uwsgi
ngnix配置
安装
sudo apt install ngnix
修改nginx配置配置:
sudo vim /etc/ngnix/sites-available/default
location为定位符
修改location / 将访问ngnix路由的80端口 映射到 uwsgi的8000端口
location / {}
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
启动/重启nginx :
$ sudo /etc/init.d/ngnix start
$ sudo /etc/init.d/ngnix restart
配置以访问静态文件,让静态路由有效,并重启ngnix:
location / static{
root /home/tmp/pycharm_project_367;
# 以上改为项目文件夹的绝对路径
}
安装MySQL数据库
$ sudo apt-get install mysql-server
$ sudo apt-get install mysql-client
注1:按需购买ubuntu弹性服务器后,系统设置完成后即为root权限用户;由于系统的配置,MySQL数据库安装过程中,并没有让用户设置密码,故root密码为空。
> use mysql;
> select user,authentication_string from user;
> update user set authentication_string=PASSWORD("root") where user="root";
> update user set plugin="mysql_native_password";
> flush privileges;
> quit;
$ /etc/init.d/mysql restart
注2:购买的ubuntu弹性服务器上无法用命令在线安装nginx
解决方式:寻找可以下载nginx的软件源替换或追加到相关文件中,这里,笔者使用的是已经安装好nginx的开发机上的更新源,作为替换(做好备份)
vi /etc/apt/sources.list
deb http://cn.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://cn.archive.ubuntu.com/ubuntu/ bionic universe
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://cn.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
注3:解决不能被外网访问的问题
点击弹性云服务器名称->安全组->下拉服务器名称->更改安全组规则->入方向规则->添加规则->自定义TCP80端口->确定
注4:需要修改代码带有http协议的地址【127.0.0.1更换为公网IP】
注5:服务器上更改代码后,重启uwsgi即可完成重新部署项目