阿里雲ubuntu16.4伺服器部署python3.6.2+django1.11.3網站的全過程,精細講解,本人親測!

VcrTing發表於2018-09-17

首先,部署用到的技術:

        ubuntu命令列語句

        anaconda3 語句

        python 命令列語句

        mysql 命令列語句

        pycharm 操作經驗 

        navicate 操作經驗

阿里雲

購買阿里雲:雲伺服器 ECS。儘量便宜弄到手,學生價/免費搶/折扣購買

買完後開啟阿里雲管理控制檯,如下圖,畫圈的是叫你多留心一下~

接下來就是連線了,你可以下載Xshell or PuTTY,用來連線,或者使用上圖的遠端連線

注意:修改了雲伺服器root的密碼了,記得要重啟一次雲伺服器。

 

阿里雲購買完成並且連線成功後,是下圖的效果

我用的PuTTY,上圖是連線成功的介面

 

接下來安裝Python環境

你需要使用conda嗎?如果需要的話,跳過這一步,下面有安裝conda的教程哦~

在連線的終端輸入:

sudo apt-get upgrade

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

(儲存至當前目錄, 推薦下載儲存與安裝的目錄為/root)

下載完畢後,解壓安裝:

tar -zxvf Python-3.6.2.tgz

cd Python-3.6.2

sudo ./configure

sudo make

sudo make install

輸入python3進入pyhton互動介面,說明安裝成功了。

 

使用Pycharm上傳專案

你也可以使用 linux與windows之間連線的軟體傳遞你的專案到伺服器,軟體如: Xftp, WinSCP

你也可以先上傳到github再在伺服器上下載專案。

這裡使用pycharm,首先是一個叫VcrTStore的專案,如下圖:

然後點選pycharm上面的的Tools > Deployment > Configuration,

然後新增連線,讓pycharm連線到你的伺服器,連線的配置如下圖:

然後選擇專案存放的資料夾,建議在伺服器端的 使用者的資料夾內 mkdir(建立)一個資料夾,我是在root資料夾下建立了一個VcrTStore資料夾

選擇的步驟如下圖:

點選ok後,再次點選Tools > Deployment 你就會發現,有 Upload to VcrTStore 這個選項,

這個選項就是用來上傳專案的,點選即上傳專案,

上傳過程中,pycharm會在底部有有一個上傳進度條,我們只需要等待上傳完成即可,

Deployment中還有一些好用的選項,如同步程式碼,下載程式碼等,可以實現邊開發邊提交的開發模式。

提示:

        Upload to VcrTStore completed: *** files transferred 則表示上傳成功。

小知識:

        使用 Upload to VcrTStore 的時候,是右側project管理器 點選了哪個檔案/資料夾就上傳哪個喲~

        要上傳整個專案,需點選專案最外層資料夾。

 

安裝mysql

請看部落格:ubuntu 安裝 mysql

配置mysql

請看部落格:ubuntu 配置 mysql

親測有效,還有,關於mysql8的配置,變化不是很大。

 

開啟阿里雲訪問埠

首先,在阿里雲的雲伺服器控制檯,就是圖一那個介面,點選 更多 > 網路和安全組 > 安全組配置

然後點選配置規則,就會開啟如下圖一樣的介面

上圖三個是預設的,我們需要建立一些規則,點選 快速建立規則
如下圖,是我建立的規則,0.0.0.0/0 是允許所有哦~注意下

有些埠,快速配置無法滿足?比如像 django 的 8000,memcached 的 11211,

如何再新增一些埠呢,就是 點選 新增安全組規則 按鈕。

8000/8003的意思是,允許 8000, 8001, 8002, 8003 埠,其實是表示範圍,

說的是我的配置:

這些工作做好了,就完成了,emmmmm,1/3了吧。

 

遠端連線mysql

我們即將在windows上遠端連線我們在阿里雲伺服器裡安裝的mysql資料庫,

我使用的是navicate,連線配置如下圖:

連線成功後,就是建立一個資料庫了,與你專案用的資料庫同名,我的是vcrtstore。

 

同步資料到遠端資料庫

右鍵點選本地的vcrtstore資料庫,然後選擇 轉儲sql檔案>結構和資料,

選擇一個資料夾儲存,儲存為vcrtstore.sql,這樣原資料和表就備份好了,

然後右鍵伺服器的vcrtstore資料庫,選擇 執行sql檔案, 執行 vcrtstore.sql檔案

效果如下圖:

這樣,阿里雲那邊的mysql也就有了我們本地的資料了,是不是感覺本教程講得很詳細呢?mua~

 

新建虛擬環境 or 不需要虛擬環境

你可以選擇建一個Pyhton的虛擬環境,也不可以不建,

如果你要建的 話  呢,自己去找教程吧!

不過我使用的是Anaconda,小conda 還是很好用的,可以使用多個python版本,比如python2.7啊,python3.7啊, python3.6.2啊!

下載Anaconda :

sudo wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh

這裡有個anaconda的安裝教程 (ubuntu) >>

這裡有一個知乎的關於Anaconda安裝與使用的教程 (在圖形介面上安裝conda的教程,以命令列形式使用conda的教程)>>

小知識:

        修改bashrc:sudo vim ~/.bashrc

 

遷移Python包到伺服器上

在本地命令列中,執行一個命令:pip freeze > package.txt

這樣django專案要用到的包的資訊就打包好了,然後將這個package.txt 檔案傳到 伺服器中,可以使用pycharm,也可以使用第三方軟體~

然後,在伺服器中,並且在Python虛擬環境下,執行命令:pip install -r package.txt

下載完成後,包就遷移成功了~

 

在本地訪問一下伺服器上的專案

首先,更改一下django中mysql的連線引數  'HOST': '39.107.96.126'  (阿里雲伺服器的ip)

其次,更改  ALLOWED_HOSTS = ['*']  (允許任何ip訪問專案)

我是在本地pycharm裡改的,改完upload到了伺服器裡面。

然後,在伺服器的命令列中使用  python manage.py runserver 0.0.0.0:8000  啟動專案

最後,在本地瀏覽器裡輸入  http://39.107.96.126:8000 

噹噹噹當,本地瀏覽器就可以訪問伺服器上的專案啦~

如下圖:

其實,到這裡,稍微懂點的同仁已經知道如何去部署專案了

但是,如果不懂也沒關係,因為我們還有教程吶~

 

Pycharm遠端除錯程式碼

這個,其實還是蠻重要的~

點選pycharm上方的 file > settings > Project:VcrTStore > project interpreter

效果如下圖:

點選第5步的 Add ,

然後 Add remove,點選ssh credentials,

有的pycharm版本呢,沒有Add remove,這些版本使用的是 ssh interpreter

add remove 與 ssh interpreter 的配置差別不是很大!

我嘛,使用的是ssh interpreter 的這種,如下圖:

配置連線後,配置一些目錄

interperter表示配置python的目錄,我使用的是anaconda的虛擬環境

sync folders(也是Path Mapping)表示你要尋找到django專案的根目錄

效果如下圖:

配置好後,點選 apply, 點選 ok,然後等待除錯環境載入完成。

然後,點選pycharm上方欄的 run > debug > edit configrations

配置一下 debug 的啟動,如下圖:

這樣你的專案就 debug 啟動啦~

你可以在本地pycharm打斷點除錯專案了啦~

啦啦啦~

 

前端是Vue專案,配置使用django作為代理啟動

這裡的是一個前後端分離的專案,前後端除錯好了的,

如果不使用django作為代理啟動or不是前後端分離的專案,這一步可以跳過!!!

首先,打包一下vue的靜態檔案,在vue專案的根目錄開啟一個命令列,

           輸入命令: npm run build

           完成後會在根目錄下生成 dist 資料夾,裡面有 static、index.entry.js、index.html

其次,將index.html 拷貝,放入django的 template 資料夾中,

           將index.entry.js 拷貝到django的 static 資料夾中,

           將vue專案下的 static 資料夾內部的東西,拷貝到 django的 static 資料夾中

接著,將 STATIC_URL 、STATICFILES_DIRS 配置到settings.py中,

           拷貝後的結果,如下圖:

找不到django的 template or static 資料夾???說明你是一個新手,啦啦啦~

然後,記得將 index.html 裡面引用script的src屬性改一下哦

           改成:

           src="/static/index.entry.js"

           切記切記,

最後,配一下 django 的 urls.py,

           這是 urls.py 中的部分程式碼:


from django.views.generic import TemplateView


urlpatterns = [

    url(r'^index/', TemplateView.as_view(template_name='index.html')),
]

如果你使用了pycharm遠端程式碼除錯,記得 Upload 一下更改哦~

emmmmmm,我們來訪問一下,http://xx.xxx.xx.xxx:8000/index 

報Template錯誤???報static錯誤???自行百度解決,over~

 

Niginx + Uwsgi 部署 Django專案

部署步驟的話,emmm,百度一下。

這裡會有坑,如果用anaconda 建立的虛擬環境,安裝 uwsgi 時,

會報錯:uwsgi: error while loading shared libraries: libpcre.so.1: ..........

這裡有個anaconda 安裝 uwsgi 的教程: uwsgi + django(anaconda)伺服器配置 lto 版本錯誤解決

 

部署django的話百度一下,帖子一大把!!!我這邊的話呢!就省略了~

 

阿里雲購買域名

接下來就是域名解析環節了,django部署了呢,應該監聽埠 80,

然後去阿里買個域名

如下圖:

我已經買了一個,9元的,

這裡說一下哈,千萬別註冊掉我的域名vcrting.com/vcrting.cn/vcrting.site/vcrting.online等等,

各位大哥哥小哥哥大姐姐小妹妹們,千萬千萬千萬別註冊掉我的域名

域名也需實名認證,是學生或者個人的話千萬別買.com/.cn結尾的域名,要去備案的!!!不嫌麻煩的話就隨意嘍。

點選 解析 按鈕,進入這個頁面:

這裡沒有域名的解析記錄對吧,我們點選 右邊 的 新增記錄 按鈕

如下圖:

記錄值是 你的雲伺服器的 ip ,不包括埠,所以我們django專案的監聽埠應該設定為 80

設定完就是這樣的:

所以呢,接下來就可以使用 www.vcrting.fun 來訪問我的網站了 哈哈哈哈哈哈哈哈哈~

 

訪問一下試試

md 怎麼這樣!???????!!!!

 

還是要備案,我們進入阿里的備案介面:

點選進入備案系統,

然後填寫一下備案資料嘍~

然後還要一個備案服務號:

點選 紅的 文字框下面的獲得備案號,去獲得一個備案號

這裡的話呢!其實我嘛,踩了一個坑,

為什麼是坑,因為例項要買滿3個月後,才能申請備案號!!!!!!!!!!!!

如圖:

額,沒關係,沒關係,沒關係啦,不就3個月嘛,掏個錢包的事兒,有什麼關係呀。。。。。

提醒:

         個人域名備案需要用到的東西:

                   身份證-正面圖、

                   身份證-反面圖、

                   戶口本/臨時居住證-正面圖、

                   戶口本/臨時居住證-反面圖、

                   網站真實性驗核單。

 

我們還是可以通過 http://xxx.xxx.xxx.xxx/index 來訪問的嘛!

如圖:

寫到這裡呢,就差不多該結束了,哎,想想這一路收穫也蠻多的,收穫最大的應該就是“ 阿里雲伺服器要滿3個月才能備案 ”這個知識點了,祝願讀這篇帖子的學者同仁們都能成功部署好自己的專案~

相關文章