【網站搭建】雲服務器上運行django

       上次已經用阿里雲服務器和寶塔面板一鍵部署了一個網站,可以上傳網站源碼直接使用了,後端用的PHP。這次記錄是在雲服務器上運行django的過程。包括python3安裝,環境配置和項目創建等,不涉及ngix和uwsgi的配置,後續會有記錄。


搭建過程如下:

1 準備工作:

網站搭建前期工作(即上次搭建記錄,已有搭建經歷可忽略):【網站搭建】用阿里雲服務器搭建個人網站

(1) 啓動阿里雲 “輕量應用服務器”
(2) 打開阿里雲控制檯開啓遠程連接
(3) 打開寶塔面板


2 詳細過程

(1)安裝python3.7.5

CentOS7.3服務器中自帶python2,但目前django的資料大多基於python3,因此爲了後續使用更加方便,本次搭建建議先安裝python3。
打開命令行窗口,輸入以下命令,可以先輸入sudo -i進入管理員模式

  • 安裝C編譯器

yum install gcc

  • 下載python3.7.5壓縮包,如果下載較慢,可以先在瀏覽器進入下面的網址下載安裝包,然後將安裝包上傳到寶塔面板的root文件夾下面

wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

  • 解壓

tar -zxvf Python-3.7.5.tgz

  • 打開安裝目錄

cd Python-3.7.5

  • 啓動配置並選擇安裝路徑(/usr/local/python3爲安裝路徑,建議不改)

./configure --prefix=/usr/local/python3

  • 編譯和安裝(中途可能卡住,請勿輸入命令,耐心等待)

make && make install

  • 創建軟鏈接,之後可以直接使用’python3’命令ln -s (原路徑) (鏈接路徑),沒有提示即創建成功。

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

  • 創建pip3軟鏈接

ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

  • (可跳過,直接進入(2))安裝虛擬環境,可以在獨立的虛擬環境中運行項目

pip3 install virtualenv
#注意:pip用於安裝python2的庫,pip3用於安裝python3的庫

若出現如下提示,可忽略,也可以輸入pip3 install --upgrade pip

pip3 install --upgrade pip
List item

  • 創建虛擬環境的軟鏈接,沒有提示或出現**“File exists”**即表示成功

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

  • 創建虛擬環境

virtualenv --python=/usr/bin/python3 myvenv
#後面的myvenv爲環境名稱,建議不修改

  • 進入或退出虛擬環境

source myvenv/bin/activate #進入虛擬環境
deactivate #退出虛擬環境

#提示:以上命令是在python-3.6.5文件夾下執行的,如果沒有打開此文件夾,可以輸入以下命令:
cd /root/Python-3.6.5 #進入python-3.6.5文件夾
source myvenv/bin/activate #進入myvenv
或直接輸入:
source /root/Python-3.6.5/myvenv/bin/activate


(2)安裝django
  • 先輸入deactivate退出虛擬環境,然後安裝

pip3 install django

  • 然後再進入myvenv虛擬環境,再次安裝(用pip)

pip install django
#不是pip3,而是pip,進入虛擬環境後去掉python和pip命令後的“3” 。可能因爲這本來就是python3的環境,沒必要再區分。


(3)創建項目
  • 創建django項目需要用到django-admin命令,先創建其軟鏈接

ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
#類似先前的命令,找到原路徑,創立軟鏈接路徑(兩路徑間空格)

  • 先進入存放項目的文件夾(自由選擇),我選擇**/www/myproject/,先在寶塔面板中的文件夾/www/下創建一個名爲myproject**的目錄,然後再命令行輸入

cd /www/myproject #進入文件夾

  • 之後可直接輸入命令創建項目

django-admin startproject HelloWorld
#HelloWorld爲項目名稱(建議先了解整個流程後再更改)

創建完成,/www/myproject/文件夾下面將會出現一個名爲HelloWorld的工程,進入文件夾,又會看到一個HelloWorld文件夾,難道是俄羅斯套娃?(狗頭),除此之外,還有一個名爲manage.py的文件,以後會經常用到,要習慣它的相關命令。

  • 運行項目

cd HelloWorld
python3 manage.py runserver 0:8000

第一次運行出錯,提示爲沒有配置數據庫。如果沒有出錯請忽略下面步驟,直接在瀏覽器中輸入 “IP地址:8000” ,如果打不開網頁,需要在阿里雲安全組設置防火牆
配置方式如下:
首先,確保已經建立了一個MySQL數據庫,且知道數據庫名稱和密碼,可以在寶塔面板數據庫選項查看。
然後打開HelloWorld(第二個)工程文件夾,編輯settings.py文件
76行DATABASES改成如下

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }#以前的配置
    'default': {
    'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
    'NAME': 'name', #數據庫名
    'USER': 'name', #用戶名,寶塔面板數據庫選項可查看
    'PASSWORD': 'password', #數據庫密碼
    'HOST':'Localhost', #默認,若改了這個,數據庫的也要改
    'PORT':'3306', #端口,默認
    }
}

settings.py文件第28行ALLOWED_HOSTS=[]加入服務器IP

ALLOWED_HOSTS = ['180.25.91.166'] #[]內填服務器IP(公)

然後保存並返回命令行窗口,安裝mysqlclient

pip3 install mysqlclient #虛擬環境中使用pip

然後啓動服務

python3 manage.py runserver 0:9090
#虛擬環境中可以去掉“3”,如果嫌麻煩也可以先不使用虛擬環境,直接在原環境搭建,知道如何進入和退出虛擬環境即可。

結果就一直在這個畫面
在這裏插入圖片描述
可能是因爲端口沒開,先進入阿里雲控制檯打開9090和3306的tcp端口,然後輸入如下命令打開端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #最後一定要重啓

再次啓動服務

python3 manage.py runserver 0:9090 #啓動服務器,且端口爲9090

瀏覽器打開101.24.97.334:9090,即 “你的IP:9090"。

(4)成功,小火箭起飛!

在這裏插入圖片描述

4 記錄一些常見錯誤以及解決方法

(1)錯誤一: DisallowedHost at/

在這裏插入圖片描述
解決方法
settings.py文件第28行ALLOWED_HOSTS=[]加入服務器IP,然後保存。

ALLOWED_HOSTS = ['180.25.91.166'] #[]內填服務器IP(公)
(2)錯誤二: Performing system checks…

在這裏插入圖片描述
解決方法
可能是因爲端口沒開,先進入阿里雲控制檯打開9090和3306的tcp端口,然後輸入如下命令打開端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #最後一定要重啓

(3)錯誤三: 已經安裝了django,但虛擬環境中提示未安裝

解決方法
pip3 命令安裝的django只能在外部使用,在虛擬環境中要用pip命令來安裝。

5 常用命令

cd /www/myproject/HelloWorld #進入文件夾,進入後才能用manage.py命令
django-admin startproject HelloWorld #創建django項目
python3 manage.py runserver 0:9090 #啓動django服務
ctrl+C #退出服務
firewall-cmd --zone=public --add-port=8899/tcp --permanent #打開端口
firewall-cmd --reload #重啓防火牆

使用templates:要設置路徑:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

以上就是配置Django的全部記錄了。喜歡搞事情、DIY、學技術的同學可以關注下面這個的公衆號,瞭解更多有更趣的項目:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章