摘要:站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態(tài)文件僅有部分的。接下來是部署和激活階段了。
吐吐槽
此篇blog將詳細記錄部署Django的每一個步驟,網(wǎng)上現(xiàn)有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的B站主頁在此(主頁有一系列的django學(xué)習(xí)視頻,推薦干貨)
用于部署的項目demo主要用了Django REST framework 提供后臺api,所以靜態(tài)文件僅有Django REST framework部分的。但是部署過程基本是一樣的
以下是項目demo的GitHub地址,由于是第一次使用python和后臺相關(guān)的東西,代碼寫得可能比較差,此blog主要用于記錄部署步驟。
https://github.com/Joeoeoe/my...
考慮一個服務(wù)器有多個Django項目,這里使用了virtualenv和mod_wsgi daemon mode(守護進程模式)
過程中的坑點盡量指出
環(huán)境騰訊云Ubuntu 16.04.1
tips:根據(jù)不同機器或者用戶有時會出現(xiàn)權(quán)限問題
以下是部署思路
服務(wù)器安裝基本軟件software-properties-common安裝
python版本更新
pip安裝及更新
MySQL8.0安裝
git(傳項目,用filezilla等也可以,這里我們用GitHub,另外settings.py不建議放上GitHub,這里僅是做個演示,所以沒有分離上傳)
virtualenv 安裝
tips:這里為了演示django的本地虛擬服務(wù)器,暫時先不安裝apache2
項目準備從GitHub上clone項目
創(chuàng)建virtualenv虛擬環(huán)境,并安裝相關(guān)依賴
apache2安裝
wsgi安裝及更新
編寫配置文件.conf
激活網(wǎng)站
收集靜態(tài)文件(這一步當(dāng)然也可以放在前面)
主要思路以上
一、服務(wù)器安裝基本軟件 1.安裝software-properties-common及python更新Ubuntu初始的python版本是2.7和3.5,這里我們要更新成3.6,并更換軟鏈接
先更新
sudo apt-get install software-properties-common //管理軟件庫 sudo apt-add-repository ppa:jonathonf/python-3.6 //加入python3.6 sudo apt-get update //更新列表 sudo apt-get install python3.6
更改軟連接
cd /usr/bin sudo rm python sudo ln -s python3.6 python sudo rm python3 sudo ln -s python3.6 python32.pip安裝及更新
sudo apt-get install python3-pip //安裝完后是8.1.1,指向python 3.6,pip需要升級 pip3 list //可查看已安裝依賴 pip3 install --upgrade pip //升級,升級之后有個很神奇的地方,只能使用pip而不能使用pip3了 //例如輸入pip -V或pip3.6 -V會顯示18.1版本,而輸入pip3 -V會報錯。 //但是斷開鏈接重新登錄就三個命令都能用了。3.MySQL安裝
這里不使用sudo apt-get install mysql-server安裝,因為它默認裝5.7的版本,這里裝MySQL8.0
這是官網(wǎng)apt鏈接https://dev.mysql.com/downloa...,點擊download后進去新的頁面右鍵復(fù)制鏈接地址
把軟件包放到/home/ubuntu目錄里吧
cd /home/ubuntu wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb //獲得軟件包,這個鏈接正是 //復(fù)制來的鏈接
這是下載好的軟件包,接下來dpkg,然后選擇配置吧
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
配置都選8.0,確定完兩個配置后最后選ok
更新軟件列表并安裝MySQL
sudo apt-get update sudo apt-get install mysql-server
接著輸入密碼,選擇加密方式就ok了,這里加密方式我選擇第一個
4.git和virtualenv安裝sudo apt-get install git pip3 install --user virtualenv二、項目準備
這里步驟都很簡單
1.從GitHub上clone項目我們把項目放到/home/ubuntu下
cd /home/ubuntu git clone https://github.com/Joeoeoe/mysite.git2.創(chuàng)建虛擬環(huán)境,安裝依賴
虛擬環(huán)境創(chuàng)建到/home/ubuntu下,取名為mysite_env,并且激活進入虛擬環(huán)境
virtualenv mysite_env source mysite_env/bin/activate
顯示如下表示我們已進入虛擬環(huán)境
通過pip list命令可以看見我們此環(huán)境下只有基本依賴
接著安裝依賴,這里有一個非常方便的方法,就是使用項目中的**`requirements.txt中
cd /home/ubuntu/mysite pip install -r requirments.txt
pip list之后就可以查看我們已安裝的依賴了
ok,接下來進入MySQL創(chuàng)建我們的數(shù)據(jù)庫blog_db
CREATE DATABASE `blog_db` CHARACTER SET utf8 COLLATE utf8_general_ci;
然后到項目目錄下完成遷移,并啟動虛擬服務(wù)器
$python manage.py makemigrations $python manage.py migrate $python manage.py runserver 0.0.0.0:8000
輸入你的ip地址加端口號
正常情況下會看到這個頁面
這時我們得在settings.py中添加允許的http_host
ALLOWED_HOSTS = ["*"]
要限定host的話自己更改吧
再次啟動虛擬環(huán)境,訪問ip地址加端口號,按我的項目,因為沒有首頁,所以會顯示如下
我有寫一個test_view接口進行測試,加上/test_view/,接著會顯示Django REST framework的接口界面
ok,到這里沒問題的話,多數(shù)環(huán)境和依賴已經(jīng)都安裝完成了。接下來是部署和激活階段了。
三、部署激活 1.安裝apache2和mod_wsgi安裝apache是沒什么問題的,這里比較麻煩的是mod_wsgi
sudo apt-get install apache2 sudo apt-get install libapache2-mod-wsgi-py3
安裝完這兩個后,我們看看坑點在哪里
cd /usr/lib/apache2/modules
到此目錄下查看內(nèi)容,會發(fā)現(xiàn)
mod_wsgi.so模塊是軟鏈接,并且指向mod_wsgi.so-3.5,這里說實話不清楚是什么原因,如果沒有對這個模塊進行更新的話,部署時會出錯,這時要從mod_wsgi官網(wǎng)下載源代碼進行安裝,官網(wǎng)下載鏈接放在文末
//需要安裝apache和python對應(yīng)dev包 sudo apt-get install apache2-dev sudo apt-get install python3.6-dev
尋著mod_wsgi官網(wǎng)到GitHub上找到下載鏈接
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.5.tar.gz //放到/home/ubuntu目錄下后進行解壓 tar xvfs 4.6.5.tar.gz cd mod_wsgi-4.6.5/ //這是解壓出來的文件
可以看到里面有個.configure腳本,它可以用來進行安裝配置,運行此腳本會在系統(tǒng)中尋找apxs或apx和python并提供合適的安裝配置,但是由于版本或系統(tǒng)的原因,這里最好手動指定路徑
whereis apxs whereis python
這里我apxs的路徑為/usr/bin/apxs
python使用的是3.6,所以選擇/usr/bin/python3.6
運行.configure腳本,不同地址對應(yīng)換一下就好了
./configure --with-apxs=/usr/bin/apxs --with-python=/usr/bin/python3.6 make //編譯,若安裝失敗,記得先執(zhí)行make clean sudo make install
看看mod_wsgi.so有沒有更新
ls /usr/lib/apache2/modules/
嗯,現(xiàn)在不是軟鏈接了,接下來編寫網(wǎng)站配置文件
cd /etc/apache2/sites-available sudo vim mysite.conf
因為使用了virtualenv和mod_wsgi daemon mode(守護進程模式),所以配置多了一點點
#訪問網(wǎng)站以哪個目錄開始,第二個參數(shù)填寫路徑 WSGIScriptAlias / /home/ubuntu/mysite/mysite/wsgi.py #開放靜態(tài)目錄 Alias /static/ /home/ubuntu/mysite/static/ Require all granted Require all granted #開放上傳文件夾 Alias /media/ /home/ubuntu/mysite/media/Require all granted #以下開始是因為使用了virtualenv部署 #第一個路徑是虛擬環(huán)境路徑,第二個是項目所在路徑 WSGIDaemonProcess mysite python-home=/home/ubuntu/mysite_env python-path=/home/ubuntu/mysite #分組 WSGIProcessGroup mysite
保存退出
sudo a2ensite mysite.conf //激活 sudo a2dissite 000-default.conf //關(guān)閉自身站點 apache2ctl configtest //檢查配置有無問題,有的話自行解決 sudo apache2ctl restart
雖然還沒有收集靜態(tài)文件,但這時已經(jīng)可以通過公網(wǎng)訪問了
接下來做一下收集靜態(tài)文件的操作就好了
3.靜態(tài)文件收集settings.py中添加此代碼,讓靜態(tài)文件都收集到此目錄下
STATIC_ROOT = "/home/ubuntu/mysite/static/"
虛擬環(huán)境裝了django,虛擬環(huán)境下運行命令
python manage.py collectstatic
刷新網(wǎng)頁,現(xiàn)在就ok了!完,附參考學(xué)習(xí)資料
參考資料:楊老師b站Django教程主頁:
https://space.bilibili.com/25...
Django靜態(tài)文件部署
https://docs.djangoproject.co...
apache部署Django
https://docs.djangoproject.co...
mod_wsgi官網(wǎng)快速安裝指南
https://modwsgi.readthedocs.i...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/45033.html
摘要:系統(tǒng)安裝部署環(huán)境教程第一安裝依賴環(huán)境在準備安裝框架部署之前,我們需要先安裝依賴環(huán)境,因為可能默認的環(huán)境沒有完善的最新部署包。檢查最新版本的數(shù)據(jù)庫,然后部署安裝。到目前為止,我們已經(jīng)成功的在環(huán)境中部署了應(yīng)用程序,以及。 Django,是一款針對Python環(huán)境的WEB開發(fā)框架,能夠幫助我們構(gòu)架快捷、簡單的WEB框架設(shè)置,Django框架非常適合開發(fā)內(nèi)容應(yīng)用環(huán)境,所以在本文中,麥子將整理基...
摘要:站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態(tài)文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網(wǎng)上現(xiàn)有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...
摘要:站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態(tài)文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網(wǎng)上現(xiàn)有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...
摘要:站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態(tài)文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網(wǎng)上現(xiàn)有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...
閱讀 3118·2021-11-15 18:14
閱讀 1773·2021-09-22 10:51
閱讀 3282·2021-09-09 09:34
閱讀 3504·2021-09-06 15:02
閱讀 1013·2021-09-01 11:40
閱讀 3186·2019-08-30 13:58
閱讀 2523·2019-08-30 11:04
閱讀 1081·2019-08-28 18:31