20分鐘學會如何將專案部署到A2Hosting

20分鐘學會如何將專案部署到A2Hosting

多數人不曉得該如何將自己的作品上傳到雲端上,也不曉得該如何能擁有自己的雲端空間。

為此我錄製這支影片,教你如何將專案上傳到 A2Hosting 這個優質且便宜的共享空間

你為什麼需要 A2Hosting

市面上有非常多的 Web Hosting 供應商提供你部署 Laravel 專案的空間,我自己也用過非常多,比如有不少台灣朋友都用過的 SugarHost ,那為什麼我會選擇 A2Hosting 並想要教你如何部署 Laravel 專案到 A2Hosting 勒?

對想學習程式並有效運用它來賺錢的你來說,我覺得有兩個原因

  1. A2Hosting 提供免費的專屬子網域,免除你自己申請網址的費用
  2. A2Hosting 最入門的版本就有提供 SSH 連接,方便你透過 Git 部署

或許有些朋友不曉得為什麼能透過 Git 部署很重要。這是因為如果你的網站真的打算好好經營,程式碼就不可能不更新。若沒有 Git 來部署就只能透過 FTP 上傳檔案的方式,如果有修改的檔案一多,Laravel 檔案夾跟著也多,更新就非常的痛苦。如果選擇整個專案上傳,不旦費時也可能造成蓋錯檔案的問題。而透過 Git 部署,只需要輸入一個指令就能夠立刻更新版本而且正確無誤

目前 A2Hosting 最便宜的方案是 Shared Hosting 的 Startup 方案,一個月不到 60 元台幣,就能夠讓你開始學著如何部署專案然後接案賺錢了。那我們就開始吧!

實作流程

步驟1.準備好你的專案

不管你是哪種類型的專案都差不多,下面就以 Laravel 框架的專案來進行示範

步驟2.為專案加上 Git 版本控管,並上傳到遠端版本庫

我個人喜歡使用 SourceTree 軟體,然後將專案上傳到 Bitbucket,因為它支援免費的封閉專案,如果你喜歡用 Github 也是沒有問題的

步驟3.在 A2Hosting 建立新的子網域

如果你自己有網域的話,可以用它來申請無數個子網域,也能夠放置無數個網站。但假如你沒有也沒關係,只要你購買了 A2Hosting 的服務,它就會送你一個子網域,而你就能夠用它來申請無數個孫網域。比如你申請的帳號是 pandalab,它就會提供你一個網址為pandalab.a2hosted.com,你可以用它來申請比如 demo.pandalab.a2hosted.com 的網址

位置在 CPanel > Domains > Subdomains

https://pandalab.org/storage/articles/segments/149-1.png

需要填入的設定如下

https://pandalab.org/storage/articles/segments/149-2.png

(根據經驗,步驟3完成後需要等個幾小時的時間才能讓網址生效,但你仍可先進行後面的步驟)

步驟4.在 A2Hosting 建立資料庫

我們需要建立一個新的 MySQL 資料庫並且建立新的資料庫用戶,接著授權該帳戶能存取這個資料庫,等會步驟6會用到

https://pandalab.org/storage/articles/segments/149-3.png

輸入資料庫名稱,你的用戶名稱會作為前綴

https://pandalab.org/storage/articles/segments/149-4.png

輸入資料庫用戶名稱,你的用戶名稱同樣會作為前綴。如果不曉得該怎麼取密碼的話,可以使用密碼生成器來幫你生成高強度密碼

這一步驟的最後,我們要把用戶給加入專案資料庫,也就是授權它足夠的權限

https://pandalab.org/storage/articles/segments/149-5.png

按下上圖的 Add 之後,就會跳到這個頁面讓你決定要授權哪些權限,我一般是全部都會給它,勾完後按 Make Changes 按鈕

https://pandalab.org/storage/articles/segments/149-7.png

步驟5.設定環境的PHP版本(非必須)

如果過程中有需要設定環境所使用的 PHP 版本以及函式庫,可使用以下功能。但要注意的是整個帳號的所有專案都會使用同一個版本,無法單獨設定,請特別注意

https://pandalab.org/storage/articles/segments/149-8.png

可以從 Current PHP Version 下拉選單來設定新版本,目前所支援的最新版本為 8.0,最舊版本為 4.4。函式庫則於下面提供勾選

https://pandalab.org/storage/articles/segments/149-9.png

步驟6.從版本庫下載專案

接下來,我們使用 Terminal 功能來開啟 SSH 介面,切換到所要部署網址的資料夾,來準備從你的版本庫來下載專案

https://pandalab.org/storage/articles/segments/149-10.png

利用 Git Clone 來下載專案到 A2Hosting

git clone 你的版本控管網址

這時專案會被下載到該目錄的子資料夾,我們需要利用 FileManager 再把所有的檔案與資料夾給搬出來,請見步驟7

步驟7.搬移專案檔並上傳未版本控管的檔案

我們可以利用 File Manager 功能來上傳檔案,或者是直接編輯檔案,這是非常好用的一個功能

在這一步,我們就需要用它來搬移剛才下載的專案資料夾,將它從子資料夾移出來,也就是把所下載的檔案與資料夾都移到上一層資料夾,完成後,可以把原先的資料夾刪掉。完成後像這樣:

https://pandalab.org/storage/articles/segments/149-11.png

另一方面,通常專案裡頭不是每個檔案都會被控管,以 Laravel 專案來說,最主要的就是 .env 檔案。另外也可能是一些 圖檔 . JS/CSS 生成檔案等等

https://pandalab.org/storage/articles/segments/149-12.png

在這個功能裡頭,我們可以把 .env.example,改成 .env ,並把裡頭的設定加以修改。別忘了之前所新增的資料庫與用戶設定,這裡也都會用到

https://pandalab.org/storage/articles/segments/149-13.png

步驟8.下載套件

專案所依賴的套件並無法透過 Clone 來下載,需要利用 Composer 工具來下載。同樣在專案根資料夾輸入以下指令

composer install

完成之後,這個 SSH 介面先不要關,等會還會用到

步驟9.生成 APP_KEY與 storage 捷徑

回到 SSH 介面去為專案生成獨一無二的 APP_KEY,建議不要使用 開發環境的 APP_KEY 以確保安全,另外如果專案有需要從 storage/app/public 資料夾去抓取檔案的話,也有必要生成 storage 捷徑,指令如下

php artisan key:generate
php artisan storage:link

步驟10.生成表格與資料

同樣是在 SSH 介面,我們需要透過指令來建立專案所需要的表格與資料,指令如下

php artisan migrate
php artisan db:seed

步驟11.效能優化

到了這一步,網站應該能夠運作了,不過為了提升效能,你需要進行一些快取來減少編譯的作業以提升網站訪問的速度

同樣在 SSH 介面,輸入以下指令

php artisan route:cache
php artisan view:cache
php artisan config:cache

至此,你已經完成了所有的專案部署作業


問題排除

問題1.網站訪問時出現 403 錯誤

https://pandalab.org/storage/articles/segments/149-14.png

請注意設定子網域的資料夾路徑,是否指向到專案的 public 資料夾,這才是正確的,而不應該指向到專案根資料夾


後續的維護

後續當你的專案有了異動,只需要提交之後重新再上傳到遠端版本庫。接著回到 A2Hosting 的 CPanel ,同樣開啟 Terminal 的 SSH 介面,輸入以下指令後就可以更新專案的版本了

git pull

分享這篇文章:
 

關聯文章: