不要着急,慢慢的看,一步一步的来,步子大容易扯到蛋。
将写好的项目上传到github或者码云上,github和码云可以互通,可以将github上的库直接导入码云。
你要是不会传项目到github或者码云,弄完再来。
一、windows上部署,需要使用虚拟机,VMware Workstation。
创建虚拟机,作为服务器
1、安装好项目用到的“Python”
sudo apt install python
sudo apt install python-pip
安装中遇到Do you want to continue? [Y/n] 填y 回车确定
如果安装报错,查看这篇文章
2、安装虚拟环境“virtualenv”以及“virtualenvwrapper”
安装了python-pip后就能使用pip安装包
pip install virtualenv
pip install virtualenvwrapper
查看virtualenvwrapper的位置
3、设置环境变量
sudo apt install vim
vim ~/.bashrc
进入后,光标移动到最底层,点击 i 编辑
输入
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh
输入完毕后点击Esc,输入 “ :wq ”保存退出如果报错virtualenvwrapper.sh: There was a problem running the initialization hooks.
是因为只安装了python3,virtualenvwrapper.sh中修改一下配置就ok
如果报错bash: /usr/locaL/bin/virtualenvwrapper.sh: No such file or directory
正常的流程是这样的
创建虚拟环境
mkvirtualenv (虚拟环境名称)flask-env-py
如果创建失败,就重新安装virtualenv
sudo apt install virtualenv
二、服务器安装ssh、git以及数据库
需要使用xshell5工具
为了连接xshell工具,需要在虚拟机中安装openssh-server openssh-client
sudo apt install openssh-server openssh-client
service ssh restart
启动完成之后,就可以使用xshell连接虚拟机了
查看自己虚拟机的ip地址(ifconfig)
然后打开xshell,创建连接
点击确认后,连接虚拟机
现在我们在xshell上面操作就能控制虚拟机了
接下来在xshell中切换至root用户,
如果出现su:Authentication failure
请查看这篇文章
成功之后进入root就是这样的
接下来,安装git
因为是root权限,所以可以直接 apt install git
apt install git
安装数据库,我的项目用的mysql
想使用python操作数据库的话还需要安装一个库libmysqlbd-dev
apt install libmysqld-dev
以上准备工作完成之后,我们就可以从git服务器上将项目拉下来了
三、生产环境下项目的配置
我们进入srv目录,所有的服务器文件全部放在这里 cd /srv
然后新建一个文件夹(名字严谨一点)
mkdir KFonline(这是我的项目名称)
将文件夹init为git文件夹 git init
再将自己的项目拉服务器上
git remote add origin https://gitee.com/…/…git
git pull origin master
进入虚拟环境,安装requirement.txt
workon flask-env-py
pip install -r requirement.txt
如果无法进入虚拟环境,就在root用户下再创建一个虚拟环境
mkvirtualenv flask-env-py
进入数据库
mysl -u root -p
创建数据库(与项目的数据库名称一致)
create database kefu charset utf8;
给root用户远程访问的授权
GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY “root”;
flush privileges;
初始化数据库迁移脚本
python3 manage.py db init
因为我的项目db是在manage.py中完成,所以是manage.py,
然后同步数据库 python3 manage.py db migate