返回部落格

在 Ubuntu 20.04 上安裝和設定 Laravel 與 Nginx

在 Ubuntu 20.04 上安裝和設定 Laravel 與 Nginx

簡介

Laravel 是一個 Web 應用程式框架,它配備了 一組內建的工具和資源 來開發現代化的 PHP 應用程式。它以其可靠性、效能、效率、模組化和安全性而聞名。由於其各種內建功能,Laravel 的受歡迎程度經歷了驚人的增長。許多開發人員正在採用 Laravel 來簡化 Web 開發流程。

這份 指南將示範如何在 Ubuntu 20.04 上安裝和設定新的 Laravel 應用程式.

Ubuntu 上的 Laravel

我們將使用 Composer,一個 PHP 依賴管理器,用於下載和管理 Laravel。若要 安裝 Composer,請按照本教學的說明進行。 The Nginx 伺服器 將用於託管該應用程式。它將建立一個 Laravel 範例應用程式,並使用 MySQL 資料庫。

本指南需要一些前提條件。我們假設您已經有一個配置妥當且正在運行的 Ubuntu 20.04 伺服器。作為參考,這裡有一份關於 設定 Ubuntu 伺服器 的快速指南。另外還需要安裝並設定 LEMP (Linux、Nginx、MySQL 和 PHP) 軟體堆疊。我們有一份詳細的指南關於 安裝與設定 LEMP 堆疊.

因為我們將安裝各種套件,所以需要 root 權限。在 Ubuntu 中,預設是停用 root 使用者的。因此,我們需要存取具有 sudo 權限的非 root 使用者。以下是 如何授予其他使用者 sudo 權限.

步驟 1 – 安裝 PHP 模組

在安裝 Laravel 之前,我們需要一些適用於該框架的重要 PHP 模組。這些模組可以直接從 Ubuntu 預設套件庫中取得。這些模組支援字元編碼、XML 和高精度數學等功能。

首先,更新 APT 快取並安裝套件:

步驟 2 – 為應用程式建立資料庫

為了展示 Laravel 的功能,我們將製作一個旅遊清單應用程式,顯示使用者想要造訪的地點清單,以及已經 已造訪 的地點。我們可以將這些資料儲存在 place 資料表中,欄位為 name(位置名稱)與 visited(標記為 已造訪未造訪)。另一個欄位將為每個條目提供唯一的識別身分。為了將資料與我們的 Laravel 應用程式連結,我們將建立一個專用的 MySQL 使用者,並授予該使用者對資料庫的完整權限 travellist.

原生 MySQL PHP 函式庫 mysqlnd 不再支援 caching_sha2_authentication。因此,我們需要將資料庫的驗證方法設定為 mysql_native_password。存取 MySQL shell,身分為 root:

接下來,建立一個名為 travellist:

之後,建立一個專用使用者 travellist_user 搭配合適的密碼:

賦予使用者 travellist_user 對資料庫 travellist 的完整權限。這也將防止該使用者在伺服器上建立和修改任何其他資料庫:

退出 MySQL shell:

exit

讓我們來測試一下新使用者。以下指令將以該使用者身份登入 MySQL shell,使用者為 travellist_user。旗標 -p 將會提示輸入使用者密碼:

列出所有可用的資料庫。如先前所設定,它應該只顯示 travellist 以及 information_schema

接下來,我們需要建立資料表 places。執行以下 MySQL 語句:

讓我們在表格中填入一些範例資料:

讓我們看看資料是否已成功儲存到資料庫中:

如我們所見,測試資料表已填入有效資料。我們現在可以退出 MySQL shell:

MySQL shell

步驟 3 – 建立新的 Laravel 應用程式

我們現在準備好使用 Composer 建立新的 Laravel 應用程式。我們將使用 travellist 作為示範應用程式。此應用程式將顯示來自 MySQL 資料庫的地點列表,以展示 Laravel 的基本設定。前往使用者的家目錄:

下一步是使用 Composer 建立一個新的 Laravel 應用程式。它將會建立一個專屬的目錄 travellist ,其中包含具有預設設定的基本 Laravel 應用程式。請執行以下命令:

composer create-project

應用程式建立完成後,我們可以驗證所有元件是否已成功安裝:

php artisan

輸出結果驗證了所有應用程式檔案皆已就位。它也確保了所有 Laravel 命令列工具都能正常運作。然而,它仍然需要進行應用程式設定以建立資料庫和進行一些額外的微調。

步驟 4 – Laravel 設定

所有 Laravel 設定檔都儲存在名為 config 位於根應用程式目錄中。此外,使用 Composer 安裝 Laravel 時,它還會建立一個環境檔案。它包含特定於目前環境的各種設定。其中宣告的值將優先於常規設定檔中設定的值,這些設定檔位於 config.

每個獨立的安裝都需要有自己的環境檔案,用來定義資料庫連線設定、應用程式 URL、偵錯選項等數值。請注意,環境檔案包含敏感資訊,例如資料庫憑證、安全性金鑰等。因此,強烈建議切勿公開分享此檔案。

使用文字編輯器開啟環境檔案:

以下是環境程式碼範例:

DB_PASSWORD=password123

讓我們來分解這些值:

  • APP_NAME: 此欄位描述應用程式的名稱。此名稱將用於通知和訊息。
  • APP_ENV: 應用程式目前的環境。
  • APP_KEY: 此金鑰是在透過 Composer 安裝 Laravel 時自動產生的。它用於產生鹽值與雜湊值。無需變更。
  • APP_DEBUG: 偵錯模式切換。開啟時,它將在用戶端顯示偵錯資訊。
  • APP_URL: 應用程式基礎 URL。它也用於產生應用程式連結。
  • DB_DATABASE: 資料庫的名稱。在此情況下,它將是我們建立的專用資料庫。
  • DB_USERNAME: 用於連接資料庫的使用者名稱。
  • DB_PASSWORD: 用於連接資料庫的密碼。

修改完成後,儲存檔案並關閉編輯器。

步驟 5 – 設定 Nginx

我們已成功將 Laravel 安裝在使用者家目錄的本機資料夾中。此設定適用於本機開發環境。然而,不建議將其應用於對網際網路開放的網頁伺服器。

我們的下一步是將應用程式移至 /var/www ,因為這是運行於 Nginx 的網頁應用程式的常用位置。請使用 mv 指令來將 travellist 移動至 /var/www/travellist:

接下來,為使用者分配寫入權限至 storagecache 資料夾。這些是 Laravel 應用程式產生的檔案位置:

應用程式檔案現在已就位。然而,我們需要告訴 Nginx 來提供內容。建立一個新的虛擬主機設定檔:

以下是運行於 Nginx 的 Laravel 應用程式推薦設定範例:

是時候啟用新的虛擬主機設定檔了。建立一個符號連結到 sites-enabled 目錄:

以下 Nginx 指令將測試設定檔的語法錯誤:

然後,重新載入 Nginx:

現在應該可以使用網域名稱或 IP 位址(由 server_name 指令所定義):

Installing Laravel image 3

步驟 6 – 自訂主頁面

設定好 Laravel 應用程式後,我們現在可以開始開發。為了進行演示,是時候建立一個範例頁面,用來展示來自資料庫資料表 places 的範例資料。首先,在文字編輯器中開啟主路由檔案:

該檔案預設會包含一些內容。在這裡,路由是使用靜態方法 (Route::get) 定義的。它接收一個 路徑 與一個 回呼 函式 作為參數。

將程式碼替換為以下內容:

Installing Laravel image 2

儲存檔案並關閉編輯器。接下來,我們將建立版面配置,以向使用者呈現資料庫查詢結果。在以下路徑中建立一個新檔案:resource/views:

在以下程式碼中,我們建立了兩個地點清單,取決於 visitedtogo:

Installing Laravel image 1

儲存檔案並關閉編輯器。現在,再次存取網頁應用程式頁面:

Travel list

瞧!我們現在有了一個使用 MySQL 資料庫來儲存內容且功能完整的 Laravel 應用程式。

結語

在本教學中,我們示範了如何在運行於 Ubuntu 20.04 伺服器上的 LEMP 堆疊上設定 Laravel 應用程式。我們還展示了如何自訂預設路由以查詢資料庫內容並在自訂視圖中顯示結果。如需更多關於 Laravel 的資訊,請參閱官方文件中的 視圖, 路由,以及 資料庫支援.

本教學的安裝是在獨立的虛擬機器上進行的。然而,您也可以 在 Docker 上的 LEMP 堆疊上部署 Laravel.

祝您運算愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。