1. 程式人生 > >Django個人部落格開發之網站釋出

Django個人部落格開發之網站釋出

Python環境部署
我們今天學習如何將Django部落格專案部署到Linux伺服器上,我們此次選擇Linux的系統是centos7,如何安裝centos7我就不在這裡進行演示了,如果不會的請自行百度如何安裝centos7。映象下載地址:https://www.centos.org/download/
接下來是在Linux上搭建我們的python3環境,但是在安裝之前,我們不要刪除centos7自帶的python2,刪除之後會發生很多奇妙的事情,我不推薦大家這樣做,我也不會告訴你怎麼做。

  1. 首先安裝Python3的依賴包
[[email protected] Desktop]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
readline-devel tk-devel gcc make -y

在這裡插入圖片描述
安裝過程如圖
在這裡插入圖片描述
安裝完成如圖
在這裡插入圖片描述
2. 然後下載Python3的安裝包,下載之前我們需要把目錄切換到我們的桌面,因為這樣比較好找。
命令:wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
在這裡插入圖片描述
然後對安裝包進行解壓
命令 tar -xvJf Python-3.5.2.tar.xztar -vxf Python-3.5.2.tar.xz
在這裡插入圖片描述
切入目錄,進行編譯安裝

[[email protected] Desktop]# cd Python-3.5.2/
[[email protected] Python-3.5.2]# ./configure prefix=/usr/local/python3

在這裡插入圖片描述
緊接著執行 make && make install
在這裡插入圖片描述
在這裡插入圖片描述
3. 配置環境變數
命令: ln -s /usr/local/python3/bin/python3 /usr/bin/python3
在這裡插入圖片描述
命令:ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
在這裡插入圖片描述
效果如下:
在這裡插入圖片描述
在這裡插入圖片描述
以上我們完成了python的安裝,接下來還需要安裝python的依賴包和專案的依賴包
1、 python-devel
命令:yum -y install python-devel(這裡要保證自己的虛擬機器能夠ping通外網,設定網絡卡的時候設定橋接網路)
在這裡插入圖片描述
安裝Django1.8.2 pillow django-ckeditor5.4.0

pip3 install django==1.8.2 (這裡可能會有人覺得1.8.2不是最新版本,我們為了和前面的版本不衝突,以及版本穩定性考慮)

在這裡插入圖片描述

pip3 install pillow

在這裡插入圖片描述

pip3 install django-ckeditor==5.4.0

在這裡插入圖片描述
python uwsgi
至此我們完成了Python+Django環境的部署,接下來我們需要了解python 的uwsgi框架。接下來我們需要了解python 的uwsgi模組。

Python manager.py runserver, 這是一款適合開發階段使用的伺服器,只支援最高200的併發,顯然不適合在生產中使用。我們在生產環境當中,通常會用到apache或者nginx伺服器作為Django的生產伺服器。今天我們以nginx為例子。但是在學習部署之前,我們首先要掌握在Django和nginx之間的一個程式,就是wsgi,web伺服器閘道器介面,英文叫, Web Server Gateway Interface 縮寫叫WSGI,是Python應用程式、框架和web伺服器之間的一種介面。
首先安裝我們今天部署用的是uwsgi模組

pip3 install uwsgi

在這裡插入圖片描述
然後配置環境變數
命令:ln /usr/local/python3/bin/uwsgi /usr/bin/uwsgi--s
在這裡插入圖片描述
Django和WSGI的結合
我們把我們準備好的Django專案存放到/opt/下

 [[email protected] bin]# cp -r /root/Desktop/OurBlog/ /opt/

在這裡插入圖片描述
然後嘗試使用uwsgi啟動Django專案
在這裡我們要關注到之前我們一直忽視的一個檔案了
在這裡插入圖片描述

這個就是我們專案的uwsgi檔案,接下來通過它來讓我們的網站得以訪問

uwsgi --http 192.168.1.53:8000 --file OurBlog/wsgi.py --static-map=/static=static

在這裡插入圖片描述
當然,這裡我們要配置seLinux,防火牆和Django的settings
關閉selinux
命令: setenforce 0
關閉防火牆
命令:systemctl stop firewalld.service
Settings配置
ED_HOSTS = ["*"] 允許所有訪問
然後發起訪問
在這裡插入圖片描述
django+nginx+uwsgi
上面我們用命令啟動了uwsgi,但是體驗不太好,所以我們在這裡使用ini檔案啟動uwsgi伺服器
在專案同等級目錄下建立script目錄
在這裡插入圖片描述
然後在當中編寫uwsgi.ini檔案,內容如下

[uwsgi]
chdir=/opt/OurBlog   #專案目錄
module=OurBlog.wsgi:application  #指定專案的application
socket=/opt/script/uwsgi.sock  #指定sock的檔案路徑
workers=5  #程序個數
pidfile=/opt/script/uwsgi.pid
http=192.168.1.53:8000  #指定IP埠
static-map=/static=/opt/OurBlog/static  #指定靜態檔案
uid=root  #使用者
gid=root  #組
master=true  #啟用主程序
vacuum=true  #自動移除unix Socket和pid檔案當服務停止的時候
enable-threads=true #啟用執行緒
thunder-lock=true #序列化接受的內容,如果可能的話
harakiri=30 #設定自中斷時間
post-buffering=4096 #設定緩衝
daemonize=/opt/script/uwsgi.log #設定日誌目錄

然後啟動uwsgi服務

uwsgi --ini uwsgi.ini(指令碼名稱)

在這裡插入圖片描述
然後可以正常訪問
在這裡插入圖片描述
安裝nginx伺服器
我們直接安裝nginx是沒有的,所以,需要我們wget
命令:wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
在這裡插入圖片描述
然後對其進行解壓
命令:tar -zxvf nginx-1.12.2.tar.gz && cd nginx-1.12.2
在這裡插入圖片描述
自定義配置
命令:./configure \ 輸入命令後出現如圖一個輸入符>,按回車直接開始配置
在這裡插入圖片描述
編譯安裝
命令:make && make install
在這裡插入圖片描述
在這裡插入圖片描述
然後配置環境變數
命令:ln sbin/nginx /usr/bin/nginx
在這裡插入圖片描述
啟動nginx檢視效果
在這裡插入圖片描述
在瀏覽器中輸入我們的Nginx伺服器IP地址:192.168.1.53
在這裡插入圖片描述
進行nginx配置(配置nginx.conf,配置之前進行備份)
備份

 cp nginx.conf nginx.conf.bak

在這裡插入圖片描述
然後開始配置
配置節選1

http {
    include       mime.types;
    default_type  application/octet-stream;
    #這裡規定了日誌的格式,預設是註釋的,我們需要解開註釋
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {

在這裡插入圖片描述
配置節選2

 server {
        listen       80;  #監聽埠
        server_name  OurBlog; #服務名稱

        charset utf-8; #伺服器編碼

        access_log  /var/log/nginx/access.log  main; #訪問日誌路徑,注意:這個目錄可能沒有,需要建立

        gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; #壓縮格式

        error_log /var/log/nginx/error.log error; #錯誤日誌注意:這個目錄可能沒有,需要建立
        location / {
            include uwsgi_params; #nginx載入uwsgi模組
            uwsgi_connect_timeout 30; #連鍵超時時間
            uwsgi_pass unix:/opt/script/uwsgi.sock; #nginx對應的uwsgi socket檔案
        } 

        location = /static/ {
            alias /opt/OurBlog/static;  #靜態檔案路徑
            index index.html index.htm;  #首頁
        }
    }

在這裡插入圖片描述
效果如下:
在這裡插入圖片描述
至此個人部落格的整個開發流程就是如此,當然還得你自己完善一些功能和細節。
好啦,我們下個專案再見!