本篇內(nèi)容介紹了“ubuntu如何部署網(wǎng)站上線”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括梁河網(wǎng)站建設(shè)、梁河網(wǎng)站制作、梁河網(wǎng)頁制作以及梁河網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,梁河網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到梁河省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
環(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)頁服務(wù)器一般會(huì)把網(wǎng)頁放在 /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ù)包
接下來我們可以使用下列命令來啟動(dòng) Django 來訪問看看網(wǎng)站內(nèi)容是否完整呈現(xiàn)。
python manage.py runserver 0:8000
3.修改settings.py,增加靜態(tài)文件等設(shè)置
正式上線的網(wǎng)站我們不能通過使用 python manage.py runserver 這樣的方式啟用。應(yīng)該通過網(wǎng)頁服務(wù)器(如 Apache)把遠(yuǎn)程瀏覽器的請(qǐng)求轉(zhuǎn)送到 Django 程序中執(zhí)行,再把執(zhí)行后的結(jié)果通過 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í)際需求自行更改
#添加 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/ Require all granted #獲取 wsgi.py 中內(nèi)容Require all granted
切換到目錄:/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ù)可以通過將域名解析到服務(wù)器等方式來訪問。
PS:自己將域名解析到服務(wù)器后網(wǎng)站一直報(bào)500錯(cuò)誤,但是自己通過 IP 地址訪問卻一切正常,查找下原因,發(fā)現(xiàn)是解析域名到服務(wù)器,服務(wù)器如果在國(guó)內(nèi)的,需要備案,不然是無法訪問的。
“ubuntu如何部署網(wǎng)站上線”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!