1. 程式人生 > >部署Django到雲伺服器(centos+nginx+mysql+uwsgi+python3)【操作篇(2)】

部署Django到雲伺服器(centos+nginx+mysql+uwsgi+python3)【操作篇(2)】

(七)建立Django專案

  • (1)建立資料夾,存放網站
mkdir -p /data/wwwroot
  • (2)給uwsgi建立軟連結,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
  • (3)切換到網站目錄/data/wwwroot,建立django
cd /data/wwwroot
django-admin.py startproject mysite

建立成功之後,/data/wwwroot下面就會多出一個mysite資料夾,我們的專案就在這個資料夾裡。

@資料分析-jacky

  • (4)然後新建立一個名叫bbs的APP
cd mysite
python3 manage.py startapp bbs

有些朋友到這步可能會報錯
ImportError: No module named ‘_sqlite3’ ;

  • 報錯的解決辦法如下:

    • 首先嚐試:
pip3 install sqlite 
pip3 install sqlite3

這裡有些朋友可能還會遇到錯誤提示:

@資料分析-jacky

yum install sqlite-devel 
然後提示安裝成功

之後需要將Python基於程式碼的安裝包重新編譯一下,並重新安裝之後,方可生效:
cd /usr/local/python3
./configure –prefix=python-install-folder 
make & make install 
重新執行程式就會發現原有的錯誤資訊已經解決了。
  • 這裡jacky做一個總結:

    • 在Python中呼叫sqlite的驅動或者類庫不是通過pip來進行安裝的,需要yum來進行安裝器開發包,這個是需要注意的。
  • (5)新增static和templates資料夾

    • 進入專案資料夾/data/wwwroot/mysite,新增static和templates,分別用於存放靜態檔案和模板檔案

@資料分析-jacky

  • (6) 編輯專案裡mysite/settings.py檔案
vim /data/wwwroot/mysite/mysite/settings.py

@資料分析-jacky

1、關閉DEBUG模式。
DEBUG = False
2、ALLOWED_HOSTS設定為* 表示任何IP都可以訪問網站。
ALLOWED_HOSTS = [’*’]
3、在INSTALLED_APPS 列表裡新增’bbs’APP

  • TEMPLATES裡新增模板路徑os.path.join(BASE_DIR, ‘templates’)
    @資料分析 - jacky

  • 尾部新增
    STATICFILES_DIRS = (
    os.path.join(BASE_DIR,‘static’),
    )

@資料分析-jacky

  • (7)在templates下新增index.html檔案,輸入下面內容
vim /data/wwwroot/mystie/templates/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>資料分析部落</title>
</head>
<body>
<h1>hello,world!</h1>
</body>
</html>
  • (8)配置URL
vim /data/wwwroot/mysite/mysite/urls.py

@資料分析-jacky

  • (9)編輯bbs APP 下的 views

@資料分析-jacky

  • (10)啟動專案
python3 manage.py runserver
  • (11)Django正常執行之後我們就開始配置一下uwsgi
    • 我們網站專案路徑是 /data/wwwroot/mysite/,在專案根目錄下建立
      mysite.xml檔案,輸入如下內容:
<uwsgi>    
   <socket>127.0.0.1:8997</socket><!-- 內部埠,自定義 --> 
   <chdir>/data/wwwroot/mysite/</chdir><!-- 專案路徑 -->            
   <module>mysite.wsgi</module> 
   <processes>4</processes> <!-- 程序數 -->     
   <daemonize>uwsgi.log</daemonize><!-- 日誌檔案 -->
</uwsgi>
  • (12)配置nginx.conf檔案
cd /usr/local/nginx/conf
  • 在/usr/local/nginx/conf/中先備份一下nginx.conf檔案,以防意外
cp nginx.conf nginx.conf.bak
  • 然後開啟nginx.conf,把原來的內容刪除,直接加入以下內容:
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen       80;
        server_name  www.lezhidata.com;
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8997;  #埠要和uwsgi裡配置的一樣
           uwsgi_param UWSGI_SCRIPT mysite.wsgi;  #wsgi.py所在的目錄名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; #專案路徑
           
        }
        location /static/ {
        alias data/wwwroot/mysite/static/; #靜態資源路徑
        }
    }
}

要留意備註的地方,要和UWSGI配置檔案mysite.xml,還有專案路徑對應上。

  • (13)進入/usr/local/nginx/sbin/目錄
  • 執行./nginx -t命令先檢查配置檔案是否有錯,沒有錯就執行以下命令:
./nginx

終端沒有任何提示就證明nginx啟動成功。可以使用你的伺服器地址檢視,成功之後就會看到一個nginx歡迎頁面。

  • (14)進入網站專案目錄
cd /data/wwwroot/mysite/
  • 執行下面命令:
uwsgi -x mysite.xml
  • 以上步驟都沒有出錯的話,進入/usr/local/nginx/sbin/目錄,執行:
./nginx -s reload
  • (15)顯示
  • 重啟nginx ,然後在瀏覽器裡訪問你的專案地址!

@資料分析-jacky