django2+uwsgi+nginx上線部署到服務(wù)器Ubuntu16.04
1.前期準(zhǔn)備
1.打開(kāi)Terminal終端,執(zhí)行以下命令,將項(xiàng)目所需要的依賴包,都記錄到一個(gè)文件內(nèi)備用。
pip freeze >requirements.txt
2.將項(xiàng)目文件夾→右鍵→添加壓縮文件,壓縮為zip包
3.準(zhǔn)備軟件
1.xshell(用于遠(yuǎn)程操作服務(wù)器)2.FileZilla(用于從客戶端將項(xiàng)目包上傳到服務(wù)器)3.Navicat 12 (用于同步數(shù)據(jù)庫(kù))
4.環(huán)境云
服務(wù)器/云主機(jī):京東云
(云服務(wù)還是要選大廠的,我也試過(guò)一些比較小的廠的云服務(wù),不說(shuō)是哪家了,哇,簡(jiǎn)直是坑啊,各種報(bào)錯(cuò)各種什么都安不上。友情提醒,云服務(wù)還是要在騰訊云、阿里云、百度云、金山云、京東云、網(wǎng)易云這些里面選用吧。國(guó)外的像亞馬遜啊,雖然云計(jì)算的技術(shù)上可能領(lǐng)先于國(guó)內(nèi)云,價(jià)格也更加公道,但是,有些事,大家應(yīng)該懂得,所以,貴是貴了點(diǎn),還是選國(guó)內(nèi)的吧。)
系統(tǒng):Ubuntu16.04 64位
2.基本配置
1.使用xshell鏈接云服務(wù)器/云主機(jī)系統(tǒng)(云服務(wù)器和云主機(jī)在這里概念差不多可以等同,后面都叫云服務(wù)器)1.打開(kāi)xshell→【文件】→【新建】,輸入你云服務(wù)器的公網(wǎng)ip
2.選擇剛剛建立的會(huì)話,然后點(diǎn)【連接】
3.輸入登錄用戶名:root
4.輸入登錄密碼
5.連接成功
2.新建用戶ubuntu
1.執(zhí)行命令
adduser ubuntu #設(shè)置密碼 #確認(rèn)密碼 #設(shè)置姓 #設(shè)置名 #設(shè)置電話 #設(shè)置家庭電話 #除了密碼以為,其他的這些信息用處不大 y+回車 cd /home #切換到家目錄下 ls #查看家目錄下的目錄,可以看到ubuntu的目錄已經(jīng)建立
2.切換用戶ubuntu
3.給普通用戶ubuntu添加權(quán)限
#切換回root用戶 su root #輸入root登錄密碼 chmod u+w /etc/sudoers #給sudoers增加寫(xiě)權(quán)利 vim /etc/sudoers#編輯sudoers,在找到這行 root ALL=(ALL) ALL,在他下面添加ubuntu ALL=(ALL) NOPASSWD: ALL chmod u-w /etc/sudoers#取消sudoers的寫(xiě)權(quán)利 su ubuntu #切換會(huì)ubuntu用戶
3.同步數(shù)據(jù)庫(kù)
1.安裝mysql數(shù)據(jù)庫(kù)
sudo apt-get install mysql-server -y #設(shè)置密碼:(不顯示,請(qǐng)將密碼設(shè)置的與客戶端上數(shù)據(jù)庫(kù)密碼一致,方便使用) sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev -y
2.配置遠(yuǎn)程連接權(quán)限
su root #切換root用戶 #root 登錄密碼 vim /etc/mysql/mysql.conf.d/mysqld.cnf # 英文輸入環(huán)境下,敲 i 鍵,進(jìn)入插入模式 #上下左右鍵移動(dòng)光標(biāo),注釋掉 bind-address = 127.0.0.1 #英文輸入環(huán)境下,敲Esc鍵,輸入:wq 保存退出
mysql -u root -p #輸入密碼(不顯示),登錄mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges; quit
#用Navicat鏈接服務(wù)器數(shù)據(jù)庫(kù),如果報(bào)錯(cuò): fuser -k 3306/tcp #將客戶端數(shù)據(jù)庫(kù)通過(guò)數(shù)據(jù)傳輸,傳輸?shù)椒?wù)器
3.使用Navicat 12 同步數(shù)據(jù)庫(kù)
1.創(chuàng)立連接
2.建立本地連接
3.建立服務(wù)器鏈接
4.傳輸數(shù)據(jù)庫(kù)
然后點(diǎn)擊【開(kāi)始】等待傳完100%
5.查看一下數(shù)據(jù)庫(kù)是否上傳成功
mysql -u root -p show databases;#查看所有數(shù)據(jù)庫(kù) quit #退出數(shù)據(jù)庫(kù)
4.取消遠(yuǎn)程連接數(shù)據(jù)庫(kù)權(quán)限
vim /etc/mysql/mysql.conf.d/mysqld.cnf # 英文輸入環(huán)境下,敲 i 鍵,進(jìn)入插入模式 #上下左右鍵移動(dòng)光標(biāo),去掉 bind-address = 127.0.0.1這行的注釋 #英文輸入環(huán)境下,敲Esc鍵,輸入:wq 保存退出
4.上傳項(xiàng)目
su ubuntu #切換回ubuntu用戶
1.使用FileZilla上傳項(xiàng)目zip包
2.解壓項(xiàng)目zip包
sudo apt install unzip unzip xueyiwang.zip
5.安裝Python3.6
sudo add-apt-repository ppa:fkrull/deadsnakes #然后會(huì)提示你敲擊回車鍵 #回車 sudo apt-get install python-software-properties -y sudo apt-get update sudo apt-get install python3.6-dev python3.6-venv -y sudo apt install python-pip -y
6.配置虛擬環(huán)境
1.安裝依賴包
python3.6 -m venv env36 #在當(dāng)前目錄下,創(chuàng)建一個(gè)python3.6的虛擬環(huán)境,取名為env36,目前自帶虛擬環(huán)境只支持到3.6.2 . env36/bin/activate #進(jìn)入虛擬環(huán)境 #退出虛擬環(huán)境 deactivate cd xueyiwang pip3 install -r requirments.txt #安裝相關(guān)依賴包,其中requirments.txt,是在客戶端時(shí),通過(guò)pip freeze > requirments.txt獲得 #這個(gè)過(guò)程也許需要多等一會(huì),比較low一點(diǎn)的云服務(wù)就慢一些,親身體驗(yàn),bat里,百度的最慢 #有可能pip要升級(jí),如果版本過(guò)時(shí),會(huì)提示用戶更新命令的
2.修改settings.py
cd xueyiwang vim settings.py
#進(jìn)入settings.py文件中,點(diǎn)擊i鍵,變?yōu)榫庉嬆J? #通過(guò)上下左右鍵移動(dòng)光標(biāo) ALLOWED_HOSTS = ['公網(wǎng)ip'] #在最底追加 STATIC_ROOT=os.path.join(BASE_DIR,"static/") #然后敲Esc鍵,輸入:wq 保存退出
3.測(cè)試運(yùn)行項(xiàng)目
cd .. python manage.py runserver 0.0.0.0:8000 #瀏覽器訪問(wèn):公網(wǎng)ip+8000 #發(fā)現(xiàn)啥都有啦! #ctrl+c退出項(xiàng)目運(yùn)行狀態(tài)
7.虛擬環(huán)境中安裝uwsgi
1.安裝
cd ~ pip3 install uwsgi
2.檢測(cè)是否安裝成功
cd xueyiwang uwsgi --http :8000 --module xueyiwang.wsgi #通過(guò)uwsgi啟動(dòng)項(xiàng)目,這一步必須在項(xiàng)目目錄下操作執(zhí)行 #ctrl+C鍵關(guān)閉項(xiàng)目服務(wù)狀態(tài) #fuser -k 8000/tcp #關(guān)閉8000端口占用 #瀏覽器訪問(wèn)公網(wǎng)ip+8000 仍然可以正常訪問(wèn),證明uwsgi安裝成功
8.安裝配置nginx
1.安裝nginx
cd .. sudo apt install nginx -y
2.配置uwsgi與nginx連接
cd xueyiwang cp /etc/nginx/uwsgi_params . #在項(xiàng)目目錄下執(zhí)行,注意后面這個(gè)點(diǎn)兒別落下 #回到~目錄下 cd ..
3.配置uwsgi.ini
vim uwsgi.ini #進(jìn)入uwsgi.ini,然后在英文輸入下敲i鍵,進(jìn)入插入模式,將以下內(nèi)容填充進(jìn)去(通過(guò)敲i鍵進(jìn)入插入模式這一步不能省略,不然粘貼進(jìn)去的內(nèi)容會(huì)部分丟失) #然后在英文輸入下,Esc鍵,然后輸入冒號(hào)wq+回車,保存退出。
[uwsgi] chdir=/home/ubuntu/xueyiwang module=xueyiwang.wsgi:application home=/home/ubuntu/env36 master=true processes=10 socket=:8001 chmod-socket = 666 vacuum=true
4.配置nginx
#cd 到項(xiàng)目目錄下 vim xueyiwang_nginx.conf #新建進(jìn)入了nginx.conf文件 #在英文輸入法下,敲i鍵,進(jìn)入可插入模式 #粘貼以下內(nèi)容
upstream django { # server unix:/root/xueyiwang/xueyiwang.sock; # for a file socket server 127.0.0.1:8001; # for a web port socket (we'll use this first) } # configuration of the server server { # the port your site will be served on listen 8000; # the domain name it will serve for server_name .example.com; # substitute your machine's IP address or FQDN charset utf-8; # max upload size client_max_body_size 75M; # adjust to taste # Django media location /media { alias /home/ubuntu/xueyiwang/media; # your Django project's media files - amend as required } location /static { alias /home/ubuntu/xueyiwang/static; # your Django project's static files - amend as required } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass django; include /home/ubuntu/xueyiwang/uwsgi_params; # the uwsgi_params file you installed } }
5.建立軟鏈接
6.手機(jī)靜態(tài)文件
#cd 到項(xiàng)目目錄下執(zhí)行 python manage.py collectstatic #yes
7.最后測(cè)試
#修改settings.py中 DEBUG = False cd ~ sudo service nginx restart #重啟nginx #啟動(dòng)uwsgi uwsgi --ini uwsgi.ini #瀏覽器訪問(wèn)http://公網(wǎng)ip:8000
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 解決nginx+uwsgi部署Django的所有問(wèn)題(小結(jié))
- Centos8下django項(xiàng)目部署 nginx+uwsgi的教程
- Centos部署django服務(wù)nginx+uwsgi的方法
- 詳解Django+Uwsgi+Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署
- Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解
- Django+Uwsgi+Nginx如何實(shí)現(xiàn)生產(chǎn)環(huán)境部署
- Django項(xiàng)目uwsgi+Nginx保姆級(jí)部署教程實(shí)現(xiàn)
- Django+Nginx+uwsgi服務(wù)器部署
- 聊聊Django+uwsgi+nginx服務(wù)器部署問(wèn)題
- centos+nginx+uwsgi部署django項(xiàng)目上線
相關(guān)文章
for循環(huán)在Python中的工作原理詳細(xì)
for...in 是Python程序員使用最多的語(yǔ)句,for 循環(huán)用于迭代容器對(duì)象中的元素,這些對(duì)象可以是列表、元組、字典、集合、文件,甚至可以是自定義類或者函數(shù),下面小編將舉例說(shuō)明,需要的朋友可以參考下2021-10-10Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過(guò)程
之前零散的用過(guò)一點(diǎn)python做數(shù)據(jù)處理,這次又遇到一個(gè)數(shù)據(jù)處理的小功能,下面這篇文章主要給大家介紹了關(guān)于Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11python+opencv 讀取文件夾下的所有圖像并批量保存ROI的方法
今天小編就為大家分享一篇python+opencv 讀取文件夾下的所有圖像并批量保存ROI的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python for循環(huán)remove同一個(gè)list過(guò)程解析
這篇文章主要介紹了python for循環(huán)remove同一個(gè)list過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python匿名函數(shù)lambda原理及實(shí)例解析
這篇文章主要介紹了python匿名函數(shù)lambda原理及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10使用Python讀取二進(jìn)制文件的實(shí)例講解
今天小編就為大家分享一篇使用Python讀取二進(jìn)制文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python數(shù)據(jù)庫(kù)格式化輸出文檔的思路與方法
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫(kù)格式化輸出文檔的思路與方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03