您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“django2+uwsgi+nginx如何部署到服務器Ubuntu16.04”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“django2+uwsgi+nginx如何部署到服務器Ubuntu16.04”這篇文章吧。
1.前期準備
1.打開Terminal終端,執行以下命令,將項目所需要的依賴包,都記錄到一個文件內備用。
pip freeze >requirements.txt
2.將項目文件夾→右鍵→添加壓縮文件,壓縮為zip包
3.準備軟件
1.xshell(用于遠程操作服務器)2.FileZilla(用于從客戶端將項目包上傳到服務器)3.Navicat 12 (用于同步數據庫)
4.環境云
服務器/云主機:京東云
(云服務還是要選大廠的,我也試過一些比較小的廠的云服務,不說是哪家了,哇,簡直是坑啊,各種報錯各種什么都安不上。友情提醒,云服務還是要在騰訊云、阿里云、百度云、金山云、京東云、網易云這些里面選用吧。國外的像亞馬遜啊,雖然云計算的技術上可能領先于國內云,價格也更加公道,但是,有些事,大家應該懂得,所以,貴是貴了點,還是選國內的吧。)
系統:Ubuntu16.04 64位
2.基本配置
1.使用xshell鏈接云服務器/云主機系統(云服務器和云主機在這里概念差不多可以等同,后面都叫云服務器)1.打開xshell→【文件】→【新建】,輸入你云服務器的公網ip
2.選擇剛剛建立的會話,然后點【連接】
3.輸入登錄用戶名:root
4.輸入登錄密碼
5.連接成功
2.新建用戶ubuntu
1.執行命令
adduser ubuntu #設置密碼 #確認密碼 #設置姓 #設置名 #設置電話 #設置家庭電話 #除了密碼以為,其他的這些信息用處不大 y+回車 cd /home #切換到家目錄下 ls #查看家目錄下的目錄,可以看到ubuntu的目錄已經建立
2.切換用戶ubuntu
3.給普通用戶ubuntu添加權限
#切換回root用戶 su root #輸入root登錄密碼 chmod u+w /etc/sudoers #給sudoers增加寫權利 vim /etc/sudoers#編輯sudoers,在找到這行 root ALL=(ALL) ALL,在他下面添加ubuntu ALL=(ALL) NOPASSWD: ALL chmod u-w /etc/sudoers#取消sudoers的寫權利 su ubuntu #切換會ubuntu用戶
3.同步數據庫
1.安裝mysql數據庫
sudo apt-get install mysql-server -y #設置密碼:(不顯示,請將密碼設置的與客戶端上數據庫密碼一致,方便使用) sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev -y
2.配置遠程連接權限
su root #切換root用戶 #root 登錄密碼 vim /etc/mysql/mysql.conf.d/mysqld.cnf # 英文輸入環境下,敲 i 鍵,進入插入模式 #上下左右鍵移動光標,注釋掉 bind-address = 127.0.0.1 #英文輸入環境下,敲Esc鍵,輸入:wq 保存退出
mysql -u root -p #輸入密碼(不顯示),登錄mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges; quit
#用Navicat鏈接服務器數據庫,如果報錯: fuser -k 3306/tcp #將客戶端數據庫通過數據傳輸,傳輸到服務器
3.使用Navicat 12 同步數據庫
1.創立連接
2.建立本地連接
3.建立服務器鏈接
4.傳輸數據庫
然后點擊【開始】等待傳完100%
5.查看一下數據庫是否上傳成功
mysql -u root -p show databases;#查看所有數據庫 quit #退出數據庫
4.取消遠程連接數據庫權限
vim /etc/mysql/mysql.conf.d/mysqld.cnf # 英文輸入環境下,敲 i 鍵,進入插入模式 #上下左右鍵移動光標,去掉 bind-address = 127.0.0.1這行的注釋 #英文輸入環境下,敲Esc鍵,輸入:wq 保存退出
4.上傳項目
su ubuntu #切換回ubuntu用戶
1.使用FileZilla上傳項目zip包
2.解壓項目zip包
sudo apt install unzip unzip xueyiwang.zip
5.安裝Python3.6
sudo add-apt-repository ppa:fkrull/deadsnakes #然后會提示你敲擊回車鍵 #回車 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.配置虛擬環境
1.安裝依賴包
python3.6 -m venv env36 #在當前目錄下,創建一個python3.6的虛擬環境,取名為env36,目前自帶虛擬環境只支持到3.6.2 . env36/bin/activate #進入虛擬環境 #退出虛擬環境 deactivate cd xueyiwang pip3 install -r requirments.txt #安裝相關依賴包,其中requirments.txt,是在客戶端時,通過pip freeze > requirments.txt獲得 #這個過程也許需要多等一會,比較low一點的云服務就慢一些,親身體驗,bat里,百度的最慢 #有可能pip要升級,如果版本過時,會提示用戶更新命令的
2.修改settings.py
cd xueyiwang vim settings.py
#進入settings.py文件中,點擊i鍵,變為編輯模式 #通過上下左右鍵移動光標 ALLOWED_HOSTS = ['公網ip'] #在最底追加 STATIC_ROOT=os.path.join(BASE_DIR,"static/") #然后敲Esc鍵,輸入:wq 保存退出
3.測試運行項目
cd .. python manage.py runserver 0.0.0.0:8000 #瀏覽器訪問:公網ip+8000 #發現啥都有啦! #ctrl+c退出項目運行狀態
7.虛擬環境中安裝uwsgi
1.安裝
cd ~ pip3 install uwsgi
2.檢測是否安裝成功
cd xueyiwang uwsgi --http :8000 --module xueyiwang.wsgi #通過uwsgi啟動項目,這一步必須在項目目錄下操作執行 #ctrl+C鍵關閉項目服務狀態 #fuser -k 8000/tcp #關閉8000端口占用 #瀏覽器訪問公網ip+8000 仍然可以正常訪問,證明uwsgi安裝成功
8.安裝配置nginx
1.安裝nginx
cd .. sudo apt install nginx -y
2.配置uwsgi與nginx連接
cd xueyiwang cp /etc/nginx/uwsgi_params . #在項目目錄下執行,注意后面這個點兒別落下 #回到~目錄下 cd ..
3.配置uwsgi.ini
vim uwsgi.ini #進入uwsgi.ini,然后在英文輸入下敲i鍵,進入插入模式,將以下內容填充進去(通過敲i鍵進入插入模式這一步不能省略,不然粘貼進去的內容會部分丟失) #然后在英文輸入下,Esc鍵,然后輸入冒號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 到項目目錄下 vim xueyiwang_nginx.conf #新建進入了nginx.conf文件 #在英文輸入法下,敲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.建立軟鏈接
復制代碼 代碼如下:
sudo ln -s /home/ubuntu/xueyiwang/xueyiwang_nginx.conf /etc/nginx/sites-enabled/
6.手機靜態文件
#cd 到項目目錄下執行 python manage.py collectstatic #yes
7.最后測試
#修改settings.py中 DEBUG = False cd ~ sudo service nginx restart #重啟nginx #啟動uwsgi uwsgi --ini uwsgi.ini #瀏覽器訪問http://公網ip:8000
代碼如下:
#瀏覽器訪問公網ip+:8000 可以看到,能夠正常訪問,靜態文件和媒體文件都在,說明nginx代理正常。
以上是“django2+uwsgi+nginx如何部署到服務器Ubuntu16.04”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。