iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
自我挑戰組

技術隨筆系列 第 25

極簡風格的 Laravel 10 開發配置 - 無 docker、無 mysql、無 nginx

  • 分享至 

  • xImage
  •  

接近零配置的 Laravel 開發環境,把 docker, mysql, nginx 都省略掉,另外採用 Laravel 10 作為起始版本,作為前進到 Laravel 11 之前的過渡版本

  1. 安裝 Composer

首先,確保系統上已經安裝了 Composer,它是 PHP 的套件管理工具。可以使用以下命令確認 Composer 是否安裝:composer --version

如果還沒有安裝 Composer,可以前往官方網站下載並安裝

  1. 建立 Laravel 專案

使用 Composer 創建 Laravel 專案。執行以下命令來安裝 Laravel 10: composer create-project --prefer-dist laravel/laravel:^10.0 {my-laravel-app}
這會下載並安裝最新的 Laravel 10 版本,並在 my-laravel-app 資料夾中建立專案。你可以將 my-laravel-app 替換為你希望的專案名稱。

  1. 進入專案目錄

進入剛剛建立的專案資料夾:cd my-laravel-app

  1. 設置 .env 檔案

Laravel 專案會自動生成一個 .env 檔案,你可以在此檔案中配置專案的各種環境變數(如資料庫連線、應用程式設定等)。在使用之前,請確保根據你的需求修改相關配置。

  1. 產生應用密鑰

Laravel 需要一個應用密鑰來加密一些重要資料。你可以使用 Artisan 命令來產生一個新的密鑰: php artisan key:generate
這會自動在 .env 檔案中更新 APP_KEY。

  1. 啟動開發伺服器

Laravel 提供了內建的開發伺服器,執行以下命令來啟動: php artisan serve

伺服器會在 http://localhost:8000 運行,你可以在瀏覽器中訪問這個網址來查看 Laravel 專案是否正確運行。

  1. 設置 sqlite 資料庫

打開 .env 檔案並修改資料庫設定部分:

DB_CONNECTION=sqlite
DB_DATABASE=./database/database.sqlite

然後使用 Artisan 命令來遷移資料表結構: php artisan migrate

這會根據 database/migrations 目錄中的遷移檔案創建資料表。

sqlite vs mysql

SQLite 與 MySQL 的主要差異

  1. 輕量化:

SQLite 是一個內嵌式資料庫,資料庫就是一個單一檔案,無需額外安裝資料庫伺服器,適合小型專案或開發環境。
MySQL 是一個獨立的伺服器應用程式,適合多用戶、規模較大的專案。

  1. 佔用資源:

SQLite 佔用非常少的資源,無需後台伺服器運行。
MySQL 需要較多系統資源來運行伺服器程式。

  1. 多用戶支援:

SQLite 不適合多用戶併發寫入,因為它在單個寫入操作期間會鎖定整個資料庫。
MySQL 支援多用戶、並行操作,適合大型應用的併發寫入需求。

  1. 資料庫特性:

SQLite 不支援如 MySQL 那樣的進階功能(如複寫、資料分片、複雜的權限管理)。
MySQL 提供了這些功能,並且適合生產環境下的複雜應用程式。

  1. 資料型別:

SQLite 的資料型別系統相對寬鬆,允許將不同型別的數據存入同一欄位。
MySQL 嚴格依據定義的資料型別來存儲數據,確保資料一致性。

  1. 效能:

SQLite 對於小型單一用戶應用非常高效,因為它是內嵌在應用程式中的。
MySQL 在大型應用中表現更佳,尤其是在處理大量並發請求時。

  1. 備份:

SQLite 的資料庫就是一個檔案,因此備份非常簡單,只需複製檔案即可。
MySQL 則需要執行資料庫備份工具或使用 SQL 匯出。


上一篇
在 2024 透過套件生成 pdf 文件的選擇 (基於套件 API)
下一篇
Laravel 11 升級指南 & 版本管理策略
系列文
技術隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言