最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3+django2.0+apache2+ubuntu14部署網(wǎng)站上線的方法

 更新時(shí)間:2018年07月07日 15:38:11   作者:希希里之海  
這篇文章主要介紹了Python3+django2.0+apache2+ubuntu14部署網(wǎng)站上線的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

自己嘗試在本地搭建了 Django 項(xiàng)目后,想部署到自己云服務(wù)器上,經(jīng)常多次嘗試和多次踩坑(捂臉),總結(jié)如下:

環(huán)境:ubuntu14, django2.0, apache2。

1.首先安裝需要的庫(kù)包,在 ubuntu 下執(zhí)行如下指令,為了能順利安裝建議使用 root 用戶登錄 Ubuntu 或在 apt-get 前加上 sudo :

安裝 Apache2

apt-get update  #獲取更新列表
apt-get install apache2  #安裝 Apache2apt-get install libapache2-mod-wsgi-py3  #讓 Apache2識(shí)別 Python 程序的請(qǐng)求,安裝 mod-wsgi模塊

確認(rèn)安裝的 Apache2 版本號(hào)

apachectl -v

安裝和配置 Git(這是為了從遠(yuǎn)程文檔庫(kù)中推送遠(yuǎn)程倉(cāng)庫(kù)到本地,如需上線的 Django 項(xiàng)目)

apt-get install git
git config --global user.name 'yourname'
git config --global user.email 'youremail'

安裝 Python 的 pip 組件管理程序和虛擬機(jī)環(huán)境程序 virtualenv

apt-get install python3-pip
pip3 install virtualenv

2.配置遠(yuǎn)程的 Django 項(xiàng)目

Linux 操作系統(tǒng)中的 Apache 網(wǎng)頁(yè)服務(wù)器一般會(huì)把網(wǎng)頁(yè)放在 /var/www/html 中,(安裝 Apache2后便生成 /var/www 目錄),所以我們也將 Django 項(xiàng)目放在 /var/www 下。首先在 /var/www 下使用 virtualenv 創(chuàng)建虛擬環(huán)境并啟用,然后再使用 git clone 命令推送遠(yuǎn)程 Django 項(xiàng)目分支到本地(這里以我自己的倉(cāng)庫(kù)為例https://github.com/weixuqin/myDjango.git),操作如下:

cd /var/www                          #移動(dòng)到 /var/www 目錄下
virtualenv VENV                       #創(chuàng)建虛擬環(huán)境 VENV
source VENV/bin/activate                  #激活虛擬環(huán)境 VENV
git clone https://github.com/weixuqin/myDjango.git  #克隆遠(yuǎn)程倉(cāng)庫(kù)到本地
cd myDjango/mblog                      #移動(dòng)到項(xiàng)目目錄
pip install -r requirements.txt              #安裝 requirements.txt文件中的庫(kù)包

接下來(lái)我們可以使用下列命令來(lái)啟動(dòng) Django 來(lái)訪問(wèn)看看網(wǎng)站內(nèi)容是否完整呈現(xiàn)。

python manage.py runserver 0:8000

3.修改settings.py,增加靜態(tài)文件等設(shè)置

正式上線的網(wǎng)站我們不能通過(guò)使用 python manage.py runserver 這樣的方式啟用。應(yīng)該通過(guò)網(wǎng)頁(yè)服務(wù)器(如 Apache)把遠(yuǎn)程瀏覽器的請(qǐng)求轉(zhuǎn)送到 Django 程序中執(zhí)行,再把執(zhí)行后的結(jié)果通過(guò) Apache 傳回給瀏覽器。

主要涉及到兩個(gè)文件,setting.py 和 wsgi.py。setting.py 負(fù)責(zé)做 Django 網(wǎng)站的相關(guān)設(shè)置,而 wsgi.py 負(fù)責(zé)創(chuàng)建一個(gè)可以讓 Apache 順利轉(zhuǎn)交程序代碼以及返回執(zhí)行結(jié)果的設(shè)置文件。

setting.py 中修改如下:

# SECURITY WARNING: keep the secret key used in production secret!
#基于安全考慮,把原有 SECRET_KEYS的內(nèi)容創(chuàng)建為/etc/secret_key.txt 文件,并使用讀取的方式獲取 SECRET_KEYS 的內(nèi)容
with open('/etc/secret_key.txt') as f:
  SECRET_KEY = f.read().strip()

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False        #關(guān)閉 debug 模式,關(guān)閉后靜態(tài)文件不會(huì)自動(dòng)加載,需指定路徑

ALLOWED_HOSTS = ['*']    #指定允許存取此網(wǎng)站的 IP 地址為'*',表示不做任何限制

然后我們修改 setting.py,讓靜態(tài)文件正常加載:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static')    
]
STATC_ROOT = '/var/www/staticfiles'

然后運(yùn)行

python manage.py collectstatic

將所有STATICFILES_DIRS中所有文件夾中的文件,以及各app中static中的文件都復(fù)制到 STATIC_ROOT 指定的文件夾中,把這些文件放到一起是為了用apache等部署的時(shí)候更方便。

Linux 對(duì)文件權(quán)限很敏感,我們還需要修改文件權(quán)限讓 Apache2 能夠正確讀取到。

一般目錄權(quán)限設(shè)置為 755,文件權(quán)限設(shè)置為 644 。

cd /var/www/myDjango/mblog
sudo chmod -R 644 zqxt
sudo find mblog -type d | xargs chmod 755

4.修改 Apache 中的文件,讓網(wǎng)站上線

創(chuàng)建一個(gè)網(wǎng)站的配置文件

sudo vim /etc/apache2/sites-available/sitename.conf

這里以我的配置文件為例,可根據(jù)實(shí)際需求自行更改

<VirtualHost *:80>
  #添加 wsgi.py 文件路徑和虛擬環(huán)境路徑

  WSGIScriptAlias / /var/www/myDjango/mblog/mblog/wsgi.py
  WSGIDaemonProcess mblog python-path=/var/www/myDjango/mblog:/var/www/VENV/lib/python3.4/site-packages
  WSGIProcessGroup mblog
  
  #添加靜態(tài)文件路徑

  Alias /static/ /var/www/staticfiles/
  <Directory /var/www/staticfiles>
    Require all granted
  </Directory>
  
  #獲取 wsgi.py 中內(nèi)容

  <Directory /var/www/myDjango/mblog/mblog>
  <Files wsgi.py>
    Require all granted
  </Files>
  </Directory>
</VirtualHost>

切換到目錄:/etc/apache2/sites-available/ 運(yùn)行:

sudo service apache2 reload 
sudo a2dissite 000-default && sudo a2ensite sitename.conf
sudo service apache2 restart

接著輸入 服務(wù)器 IP 地址,如果成功,你將看到網(wǎng)站顯示正常的內(nèi)容,后續(xù)可以通過(guò)將域名解析到服務(wù)器等方式來(lái)訪問(wèn)。

我自己的如下:

**PS:自己將域名解析到服務(wù)器后網(wǎng)站一直報(bào)500錯(cuò)誤,但是自己通過(guò) IP 地址訪問(wèn)卻一切正常,查找下原因,發(fā)現(xiàn)是解析域名到服務(wù)器,服務(wù)器如果在國(guó)內(nèi)的,需要備案,不然是無(wú)法訪問(wèn)的,而自己恰巧是騰訊云的國(guó)內(nèi)服務(wù)器,查找了好久,才發(fā)現(xiàn)一直報(bào)錯(cuò)是什么原因(捂臉)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?Matplotlib通過(guò)plt.subplots創(chuàng)建子繪圖

    Python?Matplotlib通過(guò)plt.subplots創(chuàng)建子繪圖

    這篇文章主要介紹了Python?Matplotlib通過(guò)plt.subplots創(chuàng)建子繪圖,plt.subplots調(diào)用后將會(huì)產(chǎn)生一個(gè)圖表和默認(rèn)網(wǎng)格,與此同時(shí)提供一個(gè)合理的控制策略布局子繪圖,更多相關(guān)需要的朋友可以參考下面文章內(nèi)容
    2022-07-07
  • Python 裝飾器實(shí)現(xiàn)DRY(不重復(fù)代碼)原則

    Python 裝飾器實(shí)現(xiàn)DRY(不重復(fù)代碼)原則

    python的裝飾器就是一種代碼簡(jiǎn)潔的手段,在函數(shù)和方法有改動(dòng)時(shí),使得改動(dòng)量最小。這篇文章給大家介紹了Python 裝飾器實(shí)現(xiàn)DRY(不重復(fù)代碼)原則,感興趣的朋友一起看看吧
    2018-03-03
  • Python Beautiful Soup 使用示例詳解

    Python Beautiful Soup 使用示例詳解

    Beautiful Soup 是一個(gè) Python 庫(kù),用于解析 HTML 和 XML 文檔,并提供簡(jiǎn)單而直觀的 API 來(lái)遍歷文檔樹(shù)、搜索元素、提取內(nèi)容等,這篇文章主要介紹了Python Beautiful Soup 使用示例詳解,需要的朋友可以參考下
    2024-05-05
  • 一文教你如何創(chuàng)建Python虛擬環(huán)境venv

    一文教你如何創(chuàng)建Python虛擬環(huán)境venv

    創(chuàng)建?Python?虛擬環(huán)境是一個(gè)很好的實(shí)踐,可以幫助我們管理項(xiàng)目的依賴項(xiàng),避免不同項(xiàng)目之間的沖突,下面就跟隨小編一起學(xué)習(xí)一下如何創(chuàng)建Python虛擬環(huán)境venv吧
    2024-12-12
  • Python中struct模塊對(duì)字節(jié)流/二進(jìn)制流的操作教程

    Python中struct模塊對(duì)字節(jié)流/二進(jìn)制流的操作教程

    最近在學(xué)習(xí)python網(wǎng)絡(luò)編程這一塊,在寫(xiě)簡(jiǎn)單的socket通信代碼時(shí),遇到了struct這個(gè)模塊的使用,當(dāng)時(shí)不太清楚這到底有和作用,后來(lái)查閱了相關(guān)資料大概了解了,這篇文章就主要介紹了Python中struct模塊對(duì)字節(jié)流/二進(jìn)制流的操作,需要的朋友可以參考借鑒。
    2017-01-01
  • PyTorch環(huán)境配置及安裝過(guò)程

    PyTorch環(huán)境配置及安裝過(guò)程

    這篇文章主要介紹了PyTorch環(huán)境配置及安裝,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • pymysql的簡(jiǎn)單封裝代碼實(shí)例

    pymysql的簡(jiǎn)單封裝代碼實(shí)例

    這篇文章主要介紹了pymysql的簡(jiǎn)單封裝代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python中map()函數(shù)的使用方法示例

    python中map()函數(shù)的使用方法示例

    map()是 Python 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過(guò)把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的 list 并返回。下面這篇文章主要給大家介紹了關(guān)于python中map()函數(shù)的使用方法,需要的朋友可以參考下
    2017-09-09
  • Python2.7環(huán)境Flask框架安裝簡(jiǎn)明教程【已測(cè)試】

    Python2.7環(huán)境Flask框架安裝簡(jiǎn)明教程【已測(cè)試】

    這篇文章主要介紹了Python2.7環(huán)境Flask框架安裝方法,結(jié)合實(shí)例形式詳細(xì)分析了Python2.7環(huán)境下安裝Flask框架遇到的問(wèn)題與相關(guān)解決方法、注意事項(xiàng),并給出了一個(gè)基本的測(cè)試示例,需要的朋友可以參考下
    2018-07-07
  • Python3 偽裝瀏覽器的方法示例

    Python3 偽裝瀏覽器的方法示例

    本篇文章主要介紹了Python3 偽裝瀏覽器的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論

丘北县| 慈溪市| 成武县| 湘阴县| 镇安县| 侯马市| 错那县| 随州市| 故城县| 阳西县| 和顺县| 宜兰县| 平塘县| 乌海市| 江门市| 崇义县| 长顺县| 崇仁县| 承德县| 长沙县| 宝兴县| 安龙县| 阆中市| 湄潭县| 绿春县| 佛学| 太谷县| 南康市| 繁昌县| 醴陵市| 北辰区| 加查县| 武义县| 岗巴县| 剑河县| 宝丰县| 兴仁县| 寻乌县| 大渡口区| 阳信县| 天柱县|