成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Django + Apache 部署

cikenerd / 1266人閱讀

摘要:站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁(yè)在此主頁(yè)有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項(xiàng)目主要用了提供后臺(tái),所以靜態(tài)文件僅有部分的。接下來(lái)是部署和激活階段了。

吐吐槽

此篇blog將詳細(xì)記錄部署Django的每一個(gè)步驟,網(wǎng)上現(xiàn)有的教程實(shí)在太少太老了!好多坑!第一次嘗試后臺(tái)很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的B站主頁(yè)在此(主頁(yè)有一系列的django學(xué)習(xí)視頻,推薦干貨

用于部署的項(xiàng)目demo主要用了Django REST framework 提供后臺(tái)api,所以靜態(tài)文件僅有Django REST framework部分的。但是部署過(guò)程基本是一樣的

以下是項(xiàng)目demo的GitHub地址,由于是第一次使用python和后臺(tái)相關(guān)的東西,代碼寫得可能比較差,此blog主要用于記錄部署步驟。
https://github.com/Joeoeoe/my...

考慮一個(gè)服務(wù)器有多個(gè)Django項(xiàng)目,這里使用了virtualenv和mod_wsgi daemon mode(守護(hù)進(jìn)程模式)

過(guò)程中的坑點(diǎn)盡量指出

環(huán)境

騰訊云Ubuntu 16.04.1
tips:根據(jù)不同機(jī)器或者用戶有時(shí)會(huì)出現(xiàn)權(quán)限問(wèn)題

思路

以下是部署思路

服務(wù)器安裝基本軟件

software-properties-common安裝
python版本更新
pip安裝及更新
MySQL8.0安裝
git(傳項(xiàng)目,用filezilla等也可以,這里我們用GitHub,另外settings.py不建議放上GitHub,這里僅是做個(gè)演示,所以沒(méi)有分離上傳)
virtualenv 安裝

tips:這里為了演示django的本地虛擬服務(wù)器,暫時(shí)先不安裝apache2

項(xiàng)目準(zhǔn)備

從GitHub上clone項(xiàng)目
創(chuàng)建virtualenv虛擬環(huán)境,并安裝相關(guān)依賴

項(xiàng)目部署

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 //管理軟件庫(kù)
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 python3
2.pip安裝及更新
sudo apt-get install python3-pip //安裝完后是8.1.1,指向python 3.6,pip需要升級(jí)

pip3 list  //可查看已安裝依賴

pip3 install --upgrade pip  //升級(jí),升級(jí)之后有個(gè)很神奇的地方,只能使用pip而不能使用pip3了
                            //例如輸入pip -V或pip3.6 -V會(huì)顯示18.1版本,而輸入pip3 -V會(huì)報(bào)錯(cuò)。
                           //但是斷開(kāi)鏈接重新登錄就三個(gè)命令都能用了。
3.MySQL安裝

這里不使用sudo apt-get install mysql-server安裝,因?yàn)樗J(rèn)裝5.7的版本,這里裝MySQL8.0
這是官網(wǎng)apt鏈接https://dev.mysql.com/downloa...,點(diǎn)擊download后進(jìn)去新的頁(yè)面右鍵復(fù)制鏈接地址

把軟件包放到/home/ubuntu目錄里吧

cd /home/ubuntu
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb //獲得軟件包,這個(gè)鏈接正是
                                                                 //復(fù)制來(lái)的鏈接                                                  

這是下載好的軟件包,接下來(lái)dpkg,然后選擇配置吧

sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

配置都選8.0,確定完兩個(gè)配置后最后選ok

更新軟件列表并安裝MySQL

sudo apt-get update
sudo apt-get install mysql-server

接著輸入密碼,選擇加密方式就ok了,這里加密方式我選擇第一個(gè)

4.git和virtualenv安裝
sudo apt-get install git
pip3 install --user virtualenv
二、項(xiàng)目準(zhǔn)備

這里步驟都很簡(jiǎn)單

1.從GitHub上clone項(xiàng)目

我們把項(xiàng)目放到/home/ubuntu下

cd /home/ubuntu
git clone https://github.com/Joeoeoe/mysite.git
2.創(chuàng)建虛擬環(huán)境,安裝依賴

虛擬環(huán)境創(chuàng)建到/home/ubuntu下,取名為mysite_env,并且激活進(jìn)入虛擬環(huán)境

virtualenv mysite_env
source mysite_env/bin/activate

顯示如下表示我們已進(jìn)入虛擬環(huán)境

通過(guò)pip list命令可以看見(jiàn)我們此環(huán)境下只有基本依賴

接著安裝依賴,這里有一個(gè)非常方便的方法,就是使用項(xiàng)目中的**`requirements.txt中

cd /home/ubuntu/mysite
pip install -r requirments.txt

pip list之后就可以查看我們已安裝的依賴了

ok,接下來(lái)進(jìn)入MySQL創(chuàng)建我們的數(shù)據(jù)庫(kù)blog_db

CREATE DATABASE `blog_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

然后到項(xiàng)目目錄下完成遷移,并啟動(dòng)虛擬服務(wù)器

$python manage.py makemigrations
$python manage.py migrate
$python manage.py runserver 0.0.0.0:8000

輸入你的ip地址加端口號(hào)


正常情況下會(huì)看到這個(gè)頁(yè)面


這時(shí)我們得在settings.py中添加允許的http_host

ALLOWED_HOSTS = ["*"]

要限定host的話自己更改吧

再次啟動(dòng)虛擬環(huán)境,訪問(wèn)ip地址加端口號(hào),按我的項(xiàng)目,因?yàn)?strong>沒(méi)有首頁(yè),所以會(huì)顯示如下

我有寫一個(gè)test_view接口進(jìn)行測(cè)試,加上/test_view/,接著會(huì)顯示Django REST framework的接口界面

ok,到這里沒(méi)問(wèn)題的話,多數(shù)環(huán)境和依賴已經(jīng)都安裝完成了。接下來(lái)是部署激活階段了。

三、部署激活 1.安裝apache2和mod_wsgi

安裝apache是沒(méi)什么問(wèn)題的,這里比較麻煩的是mod_wsgi

sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi-py3

安裝完這兩個(gè)后,我們看看坑點(diǎn)在哪里

cd /usr/lib/apache2/modules

到此目錄下查看內(nèi)容,會(huì)發(fā)現(xiàn)


mod_wsgi.so模塊是軟鏈接,并且指向mod_wsgi.so-3.5,這里說(shuō)實(shí)話不清楚是什么原因,如果沒(méi)有對(duì)這個(gè)模塊進(jìn)行更新的話,部署時(shí)會(huì)出錯(cuò),這時(shí)要從mod_wsgi官網(wǎng)下載源代碼進(jìn)行安裝,官網(wǎng)下載鏈接放在文末

//需要安裝apache和python對(duì)應(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目錄下后進(jìn)行解壓
tar xvfs 4.6.5.tar.gz
cd mod_wsgi-4.6.5/  //這是解壓出來(lái)的文件

可以看到里面有個(gè).configure腳本,它可以用來(lái)進(jìn)行安裝配置,運(yùn)行此腳本會(huì)在系統(tǒng)中尋找apxs或apx和python并提供合適的安裝配置,但是由于版本或系統(tǒng)的原因,這里最好手動(dòng)指定路徑

whereis apxs
whereis python

這里我apxs的路徑為/usr/bin/apxs
python使用的是3.6,所以選擇/usr/bin/python3.6
運(yùn)行.configure腳本,不同地址對(duì)應(yīng)換一下就好了

./configure --with-apxs=/usr/bin/apxs --with-python=/usr/bin/python3.6
make //編譯,若安裝失敗,記得先執(zhí)行make clean
sudo make install

看看mod_wsgi.so有沒(méi)有更新

ls /usr/lib/apache2/modules/


嗯,現(xiàn)在不是軟鏈接了,接下來(lái)編寫網(wǎng)站配置文件

2.編寫網(wǎng)站配置文件
cd /etc/apache2/sites-available
sudo vim mysite.conf

因?yàn)槭褂昧藇irtualenv和mod_wsgi daemon mode(守護(hù)進(jìn)程模式),所以配置多了一點(diǎn)點(diǎn)


  #訪問(wèn)網(wǎng)站以哪個(gè)目錄開(kāi)始,第二個(gè)參數(shù)填寫路徑
  WSGIScriptAlias / /home/ubuntu/mysite/mysite/wsgi.py  
  
    
      Require all granted
    
  
  #開(kāi)放靜態(tài)目錄
  Alias /static/ /home/ubuntu/mysite/static/
  
    Require all granted
  

  #開(kāi)放上傳文件夾
  Alias /media/ /home/ubuntu/mysite/media/
  
    Require all granted
  

  #以下開(kāi)始是因?yàn)槭褂昧藇irtualenv部署
  #第一個(gè)路徑是虛擬環(huán)境路徑,第二個(gè)是項(xiàng)目所在路徑
  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)閉自身站點(diǎn)
apache2ctl configtest //檢查配置有無(wú)問(wèn)題,有的話自行解決
sudo apache2ctl restart

雖然還沒(méi)有收集靜態(tài)文件,但這時(shí)已經(jīng)可以通過(guò)公網(wǎng)訪問(wèn)了

接下來(lái)做一下收集靜態(tài)文件的操作就好了

3.靜態(tài)文件收集

settings.py中添加此代碼,讓靜態(tài)文件都收集到此目錄下

STATIC_ROOT = "/home/ubuntu/mysite/static/"

虛擬環(huán)境裝了django,虛擬環(huán)境下運(yùn)行命令

python manage.py collectstatic

刷新網(wǎng)頁(yè),現(xiàn)在就ok了!完,附參考學(xué)習(xí)資料

參考資料:

楊老師b站Django教程主頁(yè):
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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/35984.html

相關(guān)文章

  • CentOS 5系統(tǒng)安裝DjangoApache 、mod_wsgi部署Python環(huán)境教程

    摘要:系統(tǒng)安裝部署環(huán)境教程第一安裝依賴環(huán)境在準(zhǔn)備安裝框架部署之前,我們需要先安裝依賴環(huán)境,因?yàn)榭赡苣J(rèn)的環(huán)境沒(méi)有完善的最新部署包。檢查最新版本的數(shù)據(jù)庫(kù),然后部署安裝。到目前為止,我們已經(jīng)成功的在環(huán)境中部署了應(yīng)用程序,以及。 Django,是一款針對(duì)Python環(huán)境的WEB開(kāi)發(fā)框架,能夠幫助我們構(gòu)架快捷、簡(jiǎn)單的WEB框架設(shè)置,Django框架非常適合開(kāi)發(fā)內(nèi)容應(yīng)用環(huán)境,所以在本文中,麥子將整理基...

    褰辯話 評(píng)論0 收藏0
  • Django + Apache 部署

    摘要:站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁(yè)在此主頁(yè)有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項(xiàng)目主要用了提供后臺(tái),所以靜態(tài)文件僅有部分的。接下來(lái)是部署和激活階段了。 吐吐槽 此篇blog將詳細(xì)記錄部署Django的每一個(gè)步驟,網(wǎng)上現(xiàn)有的教程實(shí)在太少太老了!好多坑!第一次嘗試后臺(tái)很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...

    keke 評(píng)論0 收藏0
  • Django + Apache 部署

    摘要:站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁(yè)在此主頁(yè)有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項(xiàng)目主要用了提供后臺(tái),所以靜態(tài)文件僅有部分的。接下來(lái)是部署和激活階段了。 吐吐槽 此篇blog將詳細(xì)記錄部署Django的每一個(gè)步驟,網(wǎng)上現(xiàn)有的教程實(shí)在太少太老了!好多坑!第一次嘗試后臺(tái)很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...

    asoren 評(píng)論0 收藏0
  • Django + Apache 部署

    摘要:站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻,楊老師的站主頁(yè)在此主頁(yè)有一系列的學(xué)習(xí)視頻,推薦干貨用于部署的項(xiàng)目主要用了提供后臺(tái),所以靜態(tài)文件僅有部分的。接下來(lái)是部署和激活階段了。 吐吐槽 此篇blog將詳細(xì)記錄部署Django的每一個(gè)步驟,網(wǎng)上現(xiàn)有的教程實(shí)在太少太老了!好多坑!第一次嘗試后臺(tái)很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個(gè)學(xué)習(xí)的地方,竟發(fā)現(xiàn)了楊老師的部署視頻...

    wslongchen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<