• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    邢光斌 王琴竹

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

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

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

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

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

    1.1 安裝工具類軟件

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

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

    (1)文本編輯器軟件Vim

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

    (3)文件解壓軟件unzip

    1.2 安裝Nginx

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

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

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

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

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

    (3)安裝Nginx:yum install nginx

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

    1.3 安裝Mysql

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

    Mysql客戶端的安裝與Nginx 大致相同,需要去Mysql官網(wǎng)下載相對(duì)應(yīng)的Mysql版本安裝包進(jìn)行本地安裝。具體如下(以Mysql5.7為例,需要進(jìn)入“/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)啟動(dòng)Mysql:service mysqld start

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

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

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

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

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

    Linux系統(tǒng)默認(rèn)安裝了Python,還需要安裝Python的運(yùn)行環(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 安裝項(xiàng)目所需的依賴包

    運(yùn)行環(huán)境安裝完成后就可以安裝項(xiàng)目所需要的依賴包了?!癕ySQL-python”在安裝過程中最容易,單獨(dú)的通過Pip命令進(jìn)行安裝即可:pip install MySQL-python。

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

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

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

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

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

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

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

    3 Django項(xiàng)目的配置修改

    在項(xiàng)目上傳前,需要對(duì)項(xiàng)目中的“settings.py”配置文件進(jìn)行修改。具體步驟如下:

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

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

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

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

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

    4 Django項(xiàng)目的上傳與測(cè)試

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

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

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

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

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

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

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

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

    5 項(xiàng)目的最終部署

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

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

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

    2)通過“vim django.conf”新建一個(gè)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&” 將項(xiàng)目在后臺(tái)運(yùn)行

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

    6 結(jié)語(yǔ)

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

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

    參考文獻(xiàn):

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

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

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

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

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

    右玉县| 周宁县| 正安县| 武功县| 临猗县| 汉源县| 格尔木市| 连城县| 公安县| 永嘉县| 扶沟县| 合江县| 萨迦县| 石泉县| 合阳县| 开阳县| 贞丰县| 铜梁县| 武冈市| 舞钢市| 凤台县| 垣曲县| 秭归县| 手游| 自贡市| 嘉荫县| 正镶白旗| 称多县| 麦盖提县| 孟连| 沙雅县| 乌鲁木齐县| 铅山县| 鹤岗市| 广南县| 施甸县| 桐庐县| 罗江县| 南康市| 威远县| 保定市|