999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python2.7的Django項目在CentOS7系統(tǒng)下的部署

2019-12-10 09:48:22邢光斌王琴竹
電腦知識與技術(shù) 2019年28期

邢光斌 王琴竹

摘要:Python語言是目前最熱門的程序設(shè)計語言之一,提供了類似Django、Flask等流行的網(wǎng)站框架,讓學(xué)生可以輕松搭建網(wǎng)站。本地測試成功后,在服務(wù)器端的部署成為一個難題。文章介紹了Django項目在CentOS7系統(tǒng)下的部署,并對部署過程中可能會遇到的問題進行了解決。

關(guān)鍵詞:Python;Django;CentOS7環(huán)境部署

中圖分類號:TP303? ? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2019)28-0248-03

Abstract:Python is one of the most popular programming languages at present. It provides a popular website framework like Django and Flask, which makes it easy for students to build websites. After successful local testing, deployment on the server side becomes a challenge. This paper introduces the deployment of Django project under CentOS7 system, and solves the problems that may be encountered in the deployment process.

Key words:Python;Django;CentOS7 Environmental Deployment

隨著人工智能、大數(shù)據(jù)時代的到來,Python語言已成為最熱門的程序設(shè)計語言之一,對于初學(xué)程序設(shè)計的學(xué)生來說,能夠用所學(xué)知識開發(fā)一個項目不但可以激發(fā)其學(xué)習(xí)興趣,而且可以提高自信心。Python提供了Django、Flask等流行的網(wǎng)站框架[1],讓學(xué)生可以輕松搭建網(wǎng)站。但在本地測試成功后,在服務(wù)器端的部署往往是學(xué)生們較難解決的問題。Django項目在本地測試無誤后,還需要將項目上傳至購買的服務(wù)器進行部署,這是開發(fā)項目至關(guān)重要的一步。文章從購買基于Linux的CentOS7系統(tǒng)開始[2],介紹了各類軟件的安裝、防火墻的配置、數(shù)據(jù)庫的創(chuàng)建、代碼上傳前的修改、代碼的服務(wù)器端環(huán)境部署、域名的解析等步驟,并對可能出現(xiàn)的問題提出了解決方案。

1 軟件運行環(huán)境的安裝

1.1 安裝工具類軟件

與Windows系統(tǒng)一樣,為了方便操作,我們需要安裝一些工具類軟件。

在CentOS7中,使用“yum install 軟件名”來安裝軟件。在本項目部署中,需要用到的軟件有三個:

(1)文本編輯器軟件Vim

(2)文件上傳下載軟件lrzsz

(3)文件解壓軟件unzip

1.2 安裝Nginx

在服務(wù)器端,常用的代理服務(wù)器有“Apache”和“Nginx”兩種。“Nginx”是一個很強大的高性能Web和反向代理服務(wù),且能夠支持高達(dá)50000個并發(fā)連接數(shù)的響應(yīng),被更多的用于企業(yè)級項目中。因此,選用Nginx作為項目部署的服務(wù)器。

Nginx與其他服務(wù)器端軟件不同,在安裝時,需要下載對應(yīng)當(dāng)前系統(tǒng)版本的Nginx包。然后進入“tmp”目錄,通過“wget”工具獲取安裝包。具體如下:

(1)在http://nginx.org/packages/centos/7/noarch/RPMS/nginx- release-centos

-7-0.el7.ngx.noarch.rpm處下載安裝包。

(2)建立Nginx的yum倉庫:rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm。

(3)安裝Nginx:yum install nginx

至此,Nginx就安裝完成了,下一步通過“service nginx start” 命令啟動Nginx。

1.3 安裝Mysql

Mysql是一款常用的免費數(shù)據(jù)庫軟件,被廣泛應(yīng)用。因為Linux系統(tǒng)默認(rèn)安裝了Mariadb數(shù)據(jù)庫,需要使用“yum remove mariadb-libs.x86_64”將Mariadb數(shù)據(jù)庫卸載。然后通過“yum install mysql-devel”安裝Mysql開發(fā)用到的庫以及包含文件。

Mysql客戶端的安裝與Nginx 大致相同,需要去Mysql官網(wǎng)下載相對應(yīng)的Mysql版本安裝包進行本地安裝。具體如下(以Mysql5.7為例,需要進入“/tmp”目錄下):

(1)在wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm處下載安裝包。

(2)安裝源:yum localinstall mysql57-community-release-el7-8.noarch.rpm

(3)安裝Mysql:yum install mysql-community-server

(4)啟動Mysql:service mysqld start

至此,Mysql已經(jīng)安裝成功。一般還需要獲取Mysql的默認(rèn)密碼進入數(shù)據(jù)庫,并修改數(shù)據(jù)庫的密碼,具體如下:

(1)獲取密碼:cat /var/log/mysqld.log | grep password。默認(rèn)的登錄密碼如圖1中畫線部分所示。

(2)輸入“mysql -uroot -p”按回車鍵后,在Password中輸入密碼進入數(shù)據(jù)庫。

(3)通過“SET PASSWORD = PASSWORD('新密碼');”修改密碼。

1.4 安裝Python所需的環(huán)境

Linux系統(tǒng)默認(rèn)安裝了Python,還需要安裝Python的運行環(huán)境。以Python2.7為例,依次安裝以下所有的安裝包:

(1)yum install python2-pip

(2)yum install gcc-c++ -y

(3)yum install ncurses-devel –y

(4)yum install zlib-devel

(5)yum install bzip2-devel

(6)yum install openssl-devel

(7)yum install ncurses-devel

(8)yum install sqlite-devel

(9)yum install -y gcc

(10)yum install python-devel

1.5 安裝項目所需的依賴包

運行環(huán)境安裝完成后就可以安裝項目所需要的依賴包了。“MySQL-python”在安裝過程中最容易,單獨的通過Pip命令進行安裝即可:pip install MySQL-python。

如果安裝中遇到問題,需要檢查環(huán)境安裝包是否全部安裝。

由于Django項目所需要的依賴包較多[3],如果挨個安裝會很浪費時間,因此,可以在本地運行Django項目,并在命令行中輸入“ pip freeze > Requirements.txt”導(dǎo)出所有的依賴包文件,并將文件上傳到“/Tmp”目錄下。

然后通過命令: pip install -r Requirements.txt 批量安裝所需要的依賴包即可。如果中途不報錯,表示安裝成功。

如果中途遇到安裝錯誤的問題,要將前面安裝過的依賴包進行刪除,從報錯的安裝包重新開始安裝,且一定要將所有依賴包都安裝成功。

2 創(chuàng)建數(shù)據(jù)庫

Django項目的運行離不開數(shù)據(jù)庫,需要新建一個數(shù)據(jù)庫。如果使用“CREATE DATABASE 數(shù)據(jù)庫名”創(chuàng)建數(shù)據(jù)庫,在運行Django項目時會出現(xiàn)一些錯誤。因此,本文專門提出創(chuàng)建方法,防止后期因為數(shù)據(jù)庫引起的問題。具體如下:

進入數(shù)據(jù)庫后,輸入“CREATE DATABASE 數(shù)據(jù)庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_General_Ci;”創(chuàng)建數(shù)據(jù)庫。這里添加了數(shù)據(jù)庫的編碼格式為Utf-8。如果使用的編碼為“GBK”則只需要“CREATE DATABASE 數(shù)據(jù)庫名”即可。

3 Django項目的配置修改

在項目上傳前,需要對項目中的“settings.py”配置文件進行修改。具體步驟如下:

第一步:將數(shù)據(jù)庫信息修改為服務(wù)器端的數(shù)據(jù)庫,HOST依舊為localhost。如圖2所示。

第二步:在本地項目中,往往需要添加靜態(tài)文件地址,如圖3所示。

第三步:在上傳服務(wù)器之前,還需要將圖中陰影部分的三行替換為“STATIC_ROOT = os.path.join(BASE_DIR, "static/")”。

為了不出現(xiàn)Utf-8編碼的錯誤,在文件頭部添加“DEFAULT_CHARSET = 'utf-8'”。

第四步:修改訪問權(quán)限。項目上傳前,需將“DEBUG”模式調(diào)成False,并將下方的HOSTS進行如圖4所示的設(shè)置,其中最后一項為自己的域名地址。

4 Django項目的上傳與測試

項目上傳前要將修改好的Django項目壓縮為.Zip格式,并在服務(wù)器端新建項目的根目錄(將“/Data/Www”作為項目的根目錄)。

1)通過“mkdir -p /data/www”創(chuàng)建根目錄,并通過“cd /data/www”進入根目錄下。

2)通過 “rz” 功能,將本地文件上傳至服務(wù)器端。

3)通過“Unzip 壓縮包名”,將文件解壓。

4)進入文件目錄中,通過“python manage.py createsuperuser ”和“python manage.py migrate ”創(chuàng)建數(shù)據(jù)庫。

5)與本地運行項目一樣,通過“python manage.py createsuperuser ”創(chuàng)建超級用戶。

6)通過“python manage.py collectstatic” 將所有的靜態(tài)文件收集到 “Static” 文件下。該步驟必須有,否則網(wǎng)站可以運行但缺少樣式文件。

7)通過“python manage.py runserver 8000” 在服務(wù)器本地運行項目,如果正常運行,則表明部署成功,如果報錯,則將提示問題進行修改,直至運行成功。

5 項目的最終部署

項目測試成功后,需要將服務(wù)器與域名進行綁定,這樣才可以通過域名訪問網(wǎng)站[4]。首先,需要登錄購買域名的后臺,找到域名解析,并按照提示進行設(shè)置。需要注意的是,解析時,主機的IP地址一定要填寫外網(wǎng)IP。

為了能通過外網(wǎng)訪問項目,需要對Nginx進行相關(guān)的配置。

1)通過“cd /etc/nginx/conf.d”進入Nginx的配置文件夾中。

2)通過“vim django.conf”新建一個Nginx的配置文件。

3)編輯文件內(nèi)容并保存:

4)一切就緒后,需要修改防火墻的配置,開通80端口,讓外部能夠訪問:

通過“vim /etc/sysconfig/iptables” 打開防火墻的配置文件,在文件中,加入

“-A INPUT –p tcp –m state –state NEW –m tcp –dport 80 –j ACCEPT”后保存。

5)修改完成后,通過“service nginx restart ”重啟Nginx服務(wù)。

6)通過 “nohup python manage.py runserver 8000&” 將項目在后臺運行

此時,通過域名訪問即可訪問到網(wǎng)站。

6 結(jié)語

本文對搭建網(wǎng)站在本地測試成功后,在服務(wù)器端的部署問題進行了詳細(xì)的介紹。通過對各類軟件的安裝防火墻的配置、數(shù)據(jù)庫的創(chuàng)建、代碼上傳前的修改、代碼的服務(wù)器端環(huán)境部署、域名的解析等步驟的介紹,解決了搭建網(wǎng)站過程中的關(guān)鍵問題。

本文中與Python項目有關(guān)的搭建流程,僅適用于Python2版本編輯的Django項目,其余的服務(wù)器部署、數(shù)據(jù)庫搭建等在所有項目搭建中都適用。本文介紹的部署過程并沒有太多的考慮除防火墻之外的其他保護網(wǎng)站安全的措施,因此,搭建步驟僅適用于學(xué)習(xí)與研究,并不適用于企業(yè)級項目的部署。

參考文獻(xiàn):

[1] 陳勇.基于Django框架的實時課堂投票系統(tǒng)設(shè)計與實現(xiàn)[D].大連理工大學(xué),2014.

[2] 楊明.基于CentOS操作系統(tǒng)部署NTP服務(wù)[J].電子世界,2018(23).

[3] 曹駿.基于Django的數(shù)據(jù)收集系統(tǒng)的設(shè)計與實現(xiàn)[D].南京大學(xué),2013.

[4] 于濤.基于CentOS平臺Tomcat的部署與配置[J].科技咨詢,2014(08).

【通聯(lián)編輯:代影】

主站蜘蛛池模板: 小说区 亚洲 自拍 另类| 国产精品亚洲五月天高清| 国产99精品视频| 欧美成在线视频| 制服丝袜 91视频| 五月婷婷伊人网| 国产呦精品一区二区三区网站| 国产91在线|中文| 欧日韩在线不卡视频| 亚洲精品视频在线观看视频| 亚洲一区二区无码视频| 青青草一区| 经典三级久久| 久久精品一品道久久精品| 中文字幕在线播放不卡| 日韩久草视频| 国产激情第一页| 日韩在线永久免费播放| 亚洲伊人电影| 一级毛片免费观看久| 精品福利视频网| 中文字幕不卡免费高清视频| 亚洲天堂精品在线| 亚洲区欧美区| 中文字幕 欧美日韩| 青青草a国产免费观看| 91精品综合| 91无码人妻精品一区二区蜜桃| 一本无码在线观看| 亚洲a级毛片| 四虎精品黑人视频| 日韩精品久久无码中文字幕色欲| 精品国产中文一级毛片在线看| 欧美在线视频不卡第一页| 精品国产电影久久九九| 四虎免费视频网站| 国产精品免费久久久久影院无码| 国产成人艳妇AA视频在线| 99r在线精品视频在线播放| 亚洲视频色图| 亚洲综合在线最大成人| 99热这里只有精品2| 日韩资源站| 高潮爽到爆的喷水女主播视频 | 欧洲成人在线观看| 国精品91人妻无码一区二区三区| 一级毛片免费观看不卡视频| 亚洲第一成网站| 日韩无码精品人妻| 中文字幕波多野不卡一区| 欧美另类第一页| 国产高清在线丝袜精品一区| 午夜久久影院| 久久亚洲精少妇毛片午夜无码 | 456亚洲人成高清在线| 国产成人一区| a级毛片毛片免费观看久潮| 国产农村妇女精品一二区| 999国内精品久久免费视频| 国产精品网曝门免费视频| 一级一级一片免费| 新SSS无码手机在线观看| 国产91av在线| 永久免费无码成人网站| 福利视频一区| 亚洲性色永久网址| 免费国产黄线在线观看| 91在线国内在线播放老师| 国产午夜一级毛片| 久久国产香蕉| 精品小视频在线观看| 2019年国产精品自拍不卡| 久久毛片网| www.日韩三级| 欧美一级在线| 特级毛片免费视频| www.youjizz.com久久| 国产在线高清一级毛片| 国产精品尹人在线观看| 午夜限制老子影院888| 国产黄色爱视频| 激情视频综合网|