国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

邢光斌 王琴竹

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

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

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

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

1.1 安裝工具類軟件

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

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

(1)文本編輯器軟件Vim

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

(3)文件解壓軟件unzip

1.2 安裝Nginx

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

Nginx與其他服務器端軟件不同,在安裝時,需要下載對應當前系統(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ù)庫軟件,被廣泛應用。因為Linux系統(tǒng)默認安裝了Mariadb數(shù)據(jù)庫,需要使用“yum remove mariadb-libs.x86_64”將Mariadb數(shù)據(jù)庫卸載。然后通過“yum install mysql-devel”安裝Mysql開發(fā)用到的庫以及包含文件。

Mysql客戶端的安裝與Nginx 大致相同,需要去Mysql官網(wǎ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已經安裝成功。一般還需要獲取Mysql的默認密碼進入數(shù)據(jù)庫,并修改數(shù)據(jù)庫的密碼,具體如下:

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

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

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

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

Linux系統(tǒng)默認安裝了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)境安裝完成后就可以安裝項目所需要的依賴包了?!癕ySQL-python”在安裝過程中最容易,單獨的通過Pip命令進行安裝即可:pip install MySQL-python。

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

由于Django項目所需要的依賴包較多[3],如果挨個安裝會很浪費時間,因此,可以在本地運行Django項目,并在命令行中輸入“ pip freeze > Requirements.txt”導出所有的依賴包文件,并將文件上傳到“/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ù)庫信息修改為服務器端的數(shù)據(jù)庫,HOST依舊為localhost。如圖2所示。

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

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

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

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

4 Django項目的上傳與測試

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

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

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

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” 在服務器本地運行項目,如果正常運行,則表明部署成功,如果報錯,則將提示問題進行修改,直至運行成功。

5 項目的最終部署

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

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

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

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

3)編輯文件內容并保存:

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服務。

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

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

6 結語

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

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

參考文獻:

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

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

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

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

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

天台县| 辽阳县| 辉南县| 建始县| 宣武区| 黄平县| 徐州市| 永川市| 鹿泉市| 六安市| 昌邑市| 芦溪县| 镇康县| 兴隆县| 滕州市| 舒兰市| 东至县| 佛冈县| 那曲县| 青海省| 台北县| 阳朔县| 当涂县| 平谷区| 云龙县| 襄城县| 许昌县| 兰坪| 双牌县| 门源| 公安县| 隆德县| 苍南县| 长顺县| 平定县| 茶陵县| 竹北市| 静海县| 太谷县| 堆龙德庆县| 乌海市|