vue+django前后端項目部署


一.python3的安裝

1.安裝python前的庫環境:
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

2.下載,解壓安裝源碼包
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz
xz -d Python-3.6.9.tar.xz
tar -xf Python-3.6.9.tar

3.編譯且安裝,進入python源碼包目錄
./configure --prefix=/opt/python3/
make && make install

4.配置python3環境變量
在/etc/profile最后一行添加
export PATH=/opt/python3/bin:$PATH
然后
source /etc/profile

 

二:虛擬環境管理virtualenvwrapper的安裝及創建

1.指定豆瓣加速器安裝virtualenvwrapper,當然直接安裝也可以
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper 

2.修改~/.bashrc,每次開機加載virtualevnwrapper,當然配置在/etc/profile也沒問題
寫入變量
export WORKON_HOME=~/Envs #設置virtualenv的統一管理目錄
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的參數,生成干凈隔絕的環境
export VIRTUALENVWRAPPER_PYTHON=/opt/python3/bin/python3.6 #指定python解釋器
source /opt/python3/bin/virtualenvwrapper.sh #執行virtualenvwrapper安裝腳本

3.新建一個虛擬環境 my_django_first_project (這會在 ~/Envs 中創建 my_django_first_project 文件夾)
mkvirtualenv my_django_first_project

備注下virtualenv相關命令(下面的不需要執行):
刪除虛擬環境
rmvirtualenv my_django_first_project
激活虛擬環境
workon my_django_first_project
也可以手動停止虛擬環境
deactivate my_django_first_project
列舉所有的環境
lsvirtualenv


三:Vue部署(在my_django_first_project虛擬環境上部署)

1.xftp上傳前后端代碼到服務器

2.准備node打包環境,下載node二進制包,此包已經包含node,不需要再編譯
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz

3.解壓縮node包
tar -zxvf node-v8.6.0-linux-x64.tar.gz

4.配置環境變量,修改/etc/profile,可以直接使用npm和node命令
PATH=$PATH:/opt/node-v8.6.0-linux-x64/bin

5.檢測node和npm
node -v 
npm -v

6.安裝vue項目所需的包
cd /opt/software/vue_project
輸入npm install,完成之后再接着輸入

7.准備編譯打包vue項目,替換配置文件所有地址,改為服務器地址
sed -i 's/127.0.0.1/xxx.xxx.xxx.xxx/g' /opt/software/vue_project/src/restful/api.js

8.確保vue的route模式是history
/opt/software/vue_project/src/router/index.js下mode: 'history',//改成history模式

9.npm run build 打包生成一個 dist 靜態文件目錄,整個項目的前端內容和index.html都在這里了


5.等待nginx加載這個 dist文件夾

 

四:部署后端代碼所需的環境

1.激活虛擬環境
workon my_django_first_project

2.通過一條命令,導出本地的所有軟件包依賴 
pip3 freeze >  requirements.txt 
	
3.將這個requirements.txt 傳至到服務器,在服務器的新虛擬環境中,安裝這個文件,就能安裝所有的軟件包了
pip3 install -r  requirements.txt   	
		
4.准備uwsgi 支持高並發的啟動python項目(注意uwsgi不支持靜態文件的解析,必須用nginx去處理靜態文件)
	1.安裝uwsgi 
	pip3 install -i https://pypi.douban.com/simple uwsgi

	2.學習uwsgi的使用方法(注:簡單啟動可以用下面的,項目啟動一般用配置文件啟動)
		通過uwsgi啟動一個python web文件
		uwsgi --http :8000 --wsgi-file   testuwsgi.py
				--http 指定http協議 
				--wsgi-file  指定一個python文件
			
		通過uwsgi啟動django項目,並且支持熱加載項目,不重啟項目,自動生效新的后端代碼
			
		uwsgi --http  :8000 --module django_project.wsgi    --py-autoreload=1
		
				--module 指定找到django項目的wsgi.py文件
				--py-autoreload=1 熱加載
					
					
	3.使用uwsgi的配置文件,啟動項目
		1.創建一個uwsgi.ini配置文件,寫入參數信息
			touch uwsgi.ini 
									
			[uwsgi]
			# Django-related settings
			# the base directory (full path)
			# 指定項目的絕對路徑的第一層路徑(很重要)
			chdir = /opt/python_project/qkyAdmin

			# Django's wsgi file
			# 指定項目的 wsgi.py文件
			# 寫入相對路徑即可,這個參數是以chdir參數為相對路徑
			module = qkyAdmin.wsgi

			# the virtualenv (full path)
			# 寫入虛擬環境解釋器的絕對路徑(cdvirtualenv可以直接跳轉進入,然后pwd可以查看絕對路徑)
			home = /root/Envs/my_django_first_project

			# process-related settings
			# master
			master = true

			# maximum number of worker processes
			# 指定uwsgi啟動的進程個數(機器配置好的話可以寫多點)			
			processes = 5

			# the socket (use the full path to be safe
			#socket指的是:uwsgi啟動一個socket連接,當你使用nginx+uwsgi的時候,使用socket參數
			socket = 0.0.0.0:9000

			# 這個參數是uwsgi啟動一個http連接,當你不用nginx只用uwsgi的時候,使用這個參數
			#http = 0.0.0.0:9000

			# ... with appropriate permissions - may be needed
			# chmod-socket    = 664
			# clear environment on exit
			vacuum = true
			
			# 后台啟動
			daemonize = yes
					
		2.使用uwsgi配置文件啟動項目
		uwsgi --ini  uwsgi.ini 


五.supervisor進程管理工具安裝及使用

前言: 將linux進程運行在后台的方法有哪些(擴展知識)
			第一個,命令后面加上 & 符號
			python  manage.py  runserver & 
			
			第二個 使用nohup命令
			nohup python test.py

			第三個使用進程管理工具
	
	注意:由於supervisor在python3下無法使用,因此只能用python2去下載
	2.安裝supervisor,使用python2的包管理工具 easy_install (注意,此時要退出虛擬環境)

	如果沒有命令,使用以下命令,安裝
	yum install python-setuptools
	easy_install supervisor

	3.通過命令,生成一個配置文件,這個文件就是寫入你要管理的進程任務
	echo_supervisord_conf > /etc/supervisor.conf

	4.編輯這個配置文件,寫入操作  django項目的 命令 
	vim /etc/supervisor.conf  
	直接到最底行,寫入以下配置
	[program:django_project]	# 是被管理的進程配置參數,django_project是進程的名稱
	command=/root/Envs/my_django_first_project/bin/uwsgi  --ini  /opt/python_project/qkyAdmin/qkyAdmin/uwsgi.ini

	5.啟動supervisord服務端,指定配置文件啟動
	supervisord -c  /etc/supervisor.conf

	6.通過supervisorctl管理任務
	supervisorctl -c /etc/supervisor.conf 

	7.supervisor管理django進程的命令如下
	supervisorctl直接輸入命令會進入交互式的操作界面
	>  stop django_project 
	>  start django_project 
	>  status django_projecty 
	>  status all # 停止全部 
	

	8.啟動luffy的后端代碼(這里需要修改settings下面的ALLOWED_HOSTS = ['*'],允許所有人訪問)
	start django_project 

 

六.配置nginx步驟如下

1.編譯安裝nginx
	2.nginx.conf配置如下

	#第一個server虛擬主機是為了找到vue的dist文件, 找到dist下的index.html
	server {
			listen       80;
			server_name  192.168.0.104;
			
			#當請求來自於 192.168.0.104/的時候,直接進入以下location,然后找到vue的dist/index.html 
			location / {
				root   /opt/python_project/lf_project/dist;
				index  index.html;
				#這一條參數確保vue頁面刷新時候,不會出現404頁面
	      	try_files $uri $uri/ /index.html;
			}
			
		}
		
	#由於vue發送的接口數據地址是 192.168.0.104:8000  我們還得再准備一個入口server
	server {
		listen 8000;
		server_name  192.168.0.104;
		
		#當接收到接口數據時,請求url是 192.168.0.104:8000 就進入如下location
		location /  {
			#這里是nginx將請求轉發給  uwsgi啟動的 9000端口
			uwsgi_pass  192.168.0.104:9000;
			# include  就是一個“引入的作用”,就是將外部一個文件的參數,導入到當前的nginx.conf中生效
			include /opt/nginx1-12/conf/uwsgi_params;
		}
	}




	3.啟動nginx 
	./sbin/nginx  直接啟動 
	此時可以訪問 192.168.0.104  查看頁面結果




注明: mysql和redis根據自己的配置修改settings里面的地址即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM