不要着急,慢慢的看,一步一步的來,步子大容易扯到蛋。
將寫好的項目上傳到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 回車確定
如果安裝報錯,查看這篇文章https://blog.csdn.net/weixin_43870646/article/details/103362463
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
請查看這篇文章https://blog.csdn.net/weixin_43870646/article/details/103366484
成功之後進入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