django項(xiàng)目、vue項(xiàng)目部署云服務(wù)器的詳細(xì)過(guò)程
上線架構(gòu)圖
服務(wù)器購(gòu)買與遠(yuǎn)程連接
服務(wù)器可以在阿里云控制臺(tái)首頁(yè) (aliyun.com)、登錄 - 騰訊云 (tencent.com)購(gòu)買。
這里我選擇購(gòu)買阿里云的云服務(wù)器ECS,購(gòu)買時(shí)按自己需求,鏡像這里選擇CentOS 7.9
購(gòu)買完成后,會(huì)拿到一個(gè)公網(wǎng)ip
選擇遠(yuǎn)程連接工具,有很多種,Xshell、FinalShell等。
這里選擇FinalShell,下載:FinalShell (hostbuf.com)
打開(kāi),連接。
連接的密碼如果不知道或忘記了
安裝git
安裝git可以方便我們從直接從遠(yuǎn)程倉(cāng)庫(kù)拉取項(xiàng)目,當(dāng)然,也可以不安裝。
安裝git
yum install git -y
創(chuàng)建文件夾放項(xiàng)目
mkdir /home/projectcd /home/project
克隆
git clone https://gitee.com/....
安裝mysql
包含了很多開(kāi)發(fā)的工具
yum -y groupinstall "Development tools"
各種依賴
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
1.前往用戶根目錄
cd ~
2.下載mysql57
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
3.安裝mysql57
yum -y install mysql57-community-release-el7-10.noarch.rpm yum install mysql-community-server --nogpgcheck
4.啟動(dòng)mysql57并查看啟動(dòng)狀態(tài)
systemctl start mysqld.service systemctl status mysqld.service
5.查看默認(rèn)密碼并登錄
grep "password" /var/log/mysqld.log
mysql -uroot -p
6.修改密碼(密碼強(qiáng)度有要求,需要大小寫(xiě)字母、數(shù)字、符號(hào))
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qq332525..';
安裝redis(源碼安裝)
1.前往用戶根目錄
cd ~
2.下載redis-5.0.5(源碼包)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
3.解壓安裝包
tar -xf redis-5.0.5.tar.gz
4.進(jìn)入目標(biāo)文件
cd redis-5.0.5
5.編譯環(huán)境
make
6.復(fù)制環(huán)境到指定路徑完成安裝
cp -r /root/redis-5.0.5 /usr/local/redis
7.配置redis可以后臺(tái)啟動(dòng):修改下方內(nèi)容
vim /usr/local/redis/redis.conf
添加:
daemonize yes
8.建立軟連接(環(huán)境變量)
ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli
9.后臺(tái)運(yùn)行redis
cd /usr/local/redisredis-server ./redis.conf &
10.測(cè)試redis環(huán)境
redis-cli
# 退出exit
11.如果想要關(guān)閉redis服務(wù)
# 方式一 客戶端連進(jìn)去,敲 shutdown # 方式二 pkill -f redis -9
安裝python3.8(源碼安裝)
阿里云的centos默認(rèn)裝了python3.6和2.7,如果沒(méi)有硬性要求,可以直接跳過(guò)安裝python3.8。
各種依賴
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y
1.前往用戶根目錄
cd ~
2.下載Python3.8.6
wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz
3.解壓安裝包
tar -xf Python-3.8.6.tgz
4.進(jìn)入目標(biāo)文件
cd Python-3.8.6
5.把python3.8.6 編譯安裝到/usr/local/python38路徑下
./configure --prefix=/usr/local/python38
6.編譯并安裝,如果報(bào)錯(cuò),說(shuō)明缺開(kāi)頭的哪些依賴
make && make install
7.建立軟連接(環(huán)境變量)
ln -s /usr/local/python38/bin/python3 /usr/bin/python3.8
ln -s /usr/local/python38/bin/pip3 /usr/bin/pip3.8
目前云服務(wù)器各版本python環(huán)境
python pip 2.7版本的命令 python3 pip3 3.6版本的命令 python3.8 pip3.8 3.8版本的命令
安裝uwsgi
uwsgi是符合wsgi協(xié)議的web服務(wù)器,使用c寫(xiě)的性能高,上線要使用uwsgi。
安裝uwsgi,注意用你后面要用的python版本安裝
pip3.8 install uwsgi
建立軟連接
ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi
安裝虛擬環(huán)境
1.安裝虛擬環(huán)境
pip3.8 install virtualenv
更新pip
python3.8 -m pip install --upgrade pip python3.8 -m pip install --upgrade setuptools pip3.8 install pbr
pip3.8 install virtualenvwrapper
2.建立虛擬環(huán)境軟連接(環(huán)境變量)
ln -s /usr/local/python38/bin/virtualenv /usr/bin/virtualenv
3.配置虛擬環(huán)境:
vim ~/.bash_profile
填入下方內(nèi)容,注意python版本用的是哪個(gè)
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8 source /usr/local/python38/bin/virtualenvwrapper.sh
4.更新配置文件內(nèi)容
source ~/.bash_profile
5.創(chuàng)建虛擬環(huán)境
mkvirtualenv -p python3.8 xx
退出
deactivate
安裝nginx(源碼安裝)
1.前往用戶根目錄
cd ~
2.下載nginx1.13.7
wget http://nginx.org/download/nginx-1.13.7.tar.gz
3.解壓安裝包
tar -xf nginx-1.13.7.tar.gz
4.進(jìn)入目標(biāo)文件
cd nginx-1.13.7
5.配置安裝路徑:/usr/local/nginx
./configure --prefix=/usr/local/nginx
6.編譯并安裝
make && make install
7.建立軟連接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
8.刪除安裝包與文件
cd ~ rm -rf nginx-1.13.7 rm -rf nginx-1.13.7.tar.xz
9.測(cè)試Nginx環(huán)境,服務(wù)器運(yùn)行nginx,本地訪問(wèn)服務(wù)器ip
# 啟動(dòng) nginx # 停止 nginx -s stop
這個(gè)命令查看nginx是否在運(yùn)行著
netstat -nlp | grep 80
然后訪問(wèn)
服務(wù)器公網(wǎng)ip:80
如果無(wú)法訪問(wèn),說(shuō)明云服務(wù)器安全組中沒(méi)有添加80端口
vue項(xiàng)目部署
1.修改前端向后端發(fā)ajax請(qǐng)求的地址,以前都是向127.0.0.1發(fā)送請(qǐng)求,現(xiàn)在可以改成服務(wù)器地址了
2.編譯vue項(xiàng)目成html,css,js
npm run build
3.項(xiàng)目根路徑下會(huì)生成dist文件夾(編譯過(guò)后的文件),本地壓縮成zip(不要壓成rar)
4.在服務(wù)器安裝軟件
yum install lrzsz
5.云服務(wù)器敲 rz,選擇dist.zip上傳
6.安裝解壓軟件,解壓文件
yum install unzip unzip dist.zip
7.移動(dòng)解壓后的dist.zip,并重命名
mv ~/dist /home/html
8.去到Nginx配置目錄
cd /usr/local/nginx/conf
9.備份Nginx配置文件
mv nginx.conf nginx.conf.bak
10.打開(kāi)配置文件,添加內(nèi)容
vim nginx.conf
內(nèi)容
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name 127.0.0.1; # 可以改為自己的域名 charset utf-8; location / { root /home/html; # html訪問(wèn)路徑 index index.html; # html文件名稱 try_files $uri $uri/ /index.html; # 解決單頁(yè)面應(yīng)用刷新404問(wèn)題 } } }
11.重新加載配置文件(重啟nginx)
nginx -s reload
12.訪問(wèn)服務(wù)器ip地址(不寫(xiě)端口默認(rèn)訪問(wèn)80端口)
xx.xx.xx.xx
django項(xiàng)目部署
項(xiàng)目依賴安裝
1.修改django的某些關(guān)于ip地址的配置(數(shù)據(jù)庫(kù)等ip地址不用改,因?yàn)榫褪潜镜氐膇p地址,當(dāng)在服務(wù)器上運(yùn)行時(shí),連接的就是服務(wù)器的數(shù)據(jù)庫(kù))
2.django項(xiàng)目生成所需依賴
pip freeze > requirements.txt
3.把django項(xiàng)目上傳到服務(wù)器上,通過(guò)rz命令,或者git命令
# 這里我把項(xiàng)目放到這個(gè)目錄下 /home/project/
4.創(chuàng)建線上項(xiàng)目虛擬環(huán)境
mkvirtualenv project
5.虛擬環(huán)境下也要裝uwsgi
pip install uwsgi
6.cd到項(xiàng)目根路徑下
/home/project/
7.安裝依賴
pip install -r ./requirements.txt
8.如果出現(xiàn)報(bào)錯(cuò),比如安裝mysqlclient模塊容易報(bào)錯(cuò),那么我可以打開(kāi)requirements.txt,將mysqlclient模塊那一行注釋掉(#)
9.最后單獨(dú)安裝mysqlclient
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum install mysql-devel yum install python-devel pip install mysqlclient
數(shù)據(jù)庫(kù)配置
1.進(jìn)入數(shù)據(jù)庫(kù)
2.創(chuàng)建項(xiàng)目需要的數(shù)據(jù)庫(kù)
create database project default charset=utf8;
3.設(shè)置權(quán)限賬號(hào)密碼:賬號(hào)密碼要與項(xiàng)目中配置的一致
grant all privileges on project.* to 'username'@'%' identified by 'password'; grant all privileges on project.* to 'username'@'localhost' identified by 'password'; flush privileges;
4.退出數(shù)據(jù)庫(kù)
quit;
5.回到虛擬環(huán)境,到項(xiàng)目目錄中
數(shù)據(jù)庫(kù)遷移命令
python manage_pro.py makemigrations python manage_pro.py migrate
6.錄入數(shù)據(jù)
使用uwsgi啟動(dòng)django
1.項(xiàng)目目錄下,新建uwsgi的配置文件
vim ./project.xml
添加
<uwsgi> <socket>127.0.0.1:8000</socket> <!-- 內(nèi)部端口,自定義 --> <chdir>/home/project/</chdir> <!-- 項(xiàng)目路徑 --> <module>project.wsgi</module> <!-- project為wsgi.py所在目錄名--> <processes>4</processes> <!-- 進(jìn)程數(shù) --> <daemonize>uwsgi.log</daemonize> <!-- 日志文件 --> </uwsgi>
2.啟動(dòng)uwsgi
uwsgi -x ./luffyapi.xml
3.查看uwsgi進(jìn)程
ps aux |grep uwsgi
4.配置nginx,把8080端口的動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)給uwsgi里配置的8000端口
vim /usr/local/nginx/conf/nginx.conf
內(nèi)容:
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name 127.0.0.1; # 可以改為自己的域名 charset utf-8; location / { root /home/html; # html訪問(wèn)路徑 index index.html; # html文件名稱 try_files $uri $uri/ /index.html; # 解決單頁(yè)面應(yīng)用刷新404問(wèn)題 } } # 新增的server server { listen 8080; server_name 127.0.0.1; # 可以改為自己的域名 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 端口要和uwsgi里配置的一樣 uwsgi_param UWSGI_SCRIPT project.wsgi; #wsgi.py所在的目錄名+.wsgi uwsgi_param UWSGI_CHDIR /home/project/; # 項(xiàng)目路徑 } } }
5.重啟nginx
nginx -s reload
6.這時(shí)候前端向服務(wù)器id:8080就等于向后端項(xiàng)目發(fā)送了請(qǐng)求。
后端樣式處理
這時(shí)候訪問(wèn)后端的admin接口是沒(méi)有樣式的,還需要下列設(shè)置
1.編輯線上項(xiàng)目的配置文件
vim /home/project/../settings/pro.py
2.修改static配置,新增STATIC_ROOT、STATICFILES_DIRS
STATIC_URL = '/static/' STATIC_ROOT = '/home/project/static' STATICFILES_DIRS = (os.path.join(BASE_DIR, "../static"),)
3.項(xiàng)目目錄下沒(méi)有 static 文件夾需要新建
mkdir /home/project/static
4.完成靜態(tài)文件遷移
python /home/project/manage_pro.py collectstatic
5.修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
內(nèi)容
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name 127.0.0.1; # 可以改為自己的域名 charset utf-8; location / { root /home/html; # html訪問(wèn)路徑 index index.html; # html文件名稱 try_files $uri $uri/ /index.html; } } server { listen 8080; server_name 127.0.0.1; # 可以改為自己的域名 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 端口要和uwsgi里配置的一樣 uwsgi_param UWSGI_SCRIPT project.wsgi; uwsgi_param UWSGI_CHDIR /home/project/; } } location /static { alias /home/project/static; } }
6.重啟nginx
nginx -s reload
到此這篇關(guān)于django項(xiàng)目、vue項(xiàng)目部署云服務(wù)器的文章就介紹到這了,更多相關(guān)django vue項(xiàng)目部署云服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決JMail無(wú)法安裝的方法(帳戶名與安全標(biāo)識(shí)間無(wú)任何映射完成)
今日在遠(yuǎn)程服務(wù)器上安裝Jmail,結(jié)果提示錯(cuò)誤“帳戶名與安全標(biāo)識(shí)間無(wú)任何映射完成”2010-04-04cwrsync server 服務(wù)啟動(dòng)失敗的解決方法小結(jié)
因?yàn)榉?wù)器用cwrsync用來(lái)同步數(shù)據(jù),有時(shí)候連接不上的時(shí)候,到服務(wù)器上查看cwrsync server停止了,啟動(dòng)時(shí)就提示啟動(dòng)失敗2012-06-06自設(shè)代理服務(wù)器緩存圖片節(jié)省上網(wǎng)流量
用移動(dòng)公司的手機(jī)上網(wǎng)套餐,用電腦通過(guò)手機(jī)上網(wǎng),這個(gè)相信已經(jīng)有一部分人在進(jìn)行了。怎樣節(jié)省流量,是一個(gè)大問(wèn)題。2011-01-01jenkins插件pipeline集成持續(xù)交付管道全面介紹
這篇文章主要就jenkins插件pipeline集成持續(xù)交付管道相關(guān)內(nèi)容做一個(gè)全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03DELL R710服務(wù)器做RAID5磁盤(pán)陣列圖文教程
這篇文章主要介紹了DELL R710服務(wù)器做RAID5磁盤(pán)陣列圖文教程,需要的朋友可以參考下2014-08-08