建立並運行 Laravel 專案
什麼是 Laravel?
Laravel 是一個由 PHP 開發者 Taylor Otwell 創建的開源 PHP Web 框架。它致力於為開發人員提供一個簡潔而優雅的工具集,以便構建現代 Web 應用程式。Laravel 提供了豐富的功能,如路由、會話、快取、認證等,簡化了常見的 Web 開發任務。
Laravel 的主要特性和優勢
- 簡潔與優雅:Laravel 的語法簡潔且優雅,使代碼更具可讀性和可維護性。
- 豐富的功能集:包括路由、認證、會話管理和快取等,極大地簡化了開發工作。
- 強大的 ORM:Eloquent ORM 提供了簡潔的 ActiveRecord 實現,便於資料庫操作。
- 模組化設計:通過 Composer 套件管理器,輕鬆整合第三方庫和擴展。
- 強大的社群支持:擁有龐大的開發者社群和豐富的生態系統。
Laravel 可以幫助開發者快速構建高質量的 Web 應用和 API,適用於各種規模的專案,從小型應用到大型企業級系統。
使用 ServBay 建立並運行 Laravel 專案
在這篇文章中,我們將使用 ServBay 提供的 PHP 環境來建立並運行一個 Laravel 專案。我們將利用 ServBay 的「主機」功能來設置 Web 伺服器,並通過簡單的配置實現專案的訪問。
注意:如果你曾經是 NGINX 或 Apache 的使用者
ServBay 預設使用 Caddy 作為 Web 伺服器。對於從 NGINX 和 Apache 遷移到 ServBay 的使用者,有一些關鍵變動點需要注意:
Caddy 配置
ServBay 已經內建了 Caddy,並且預設配置已經優化和調試好。開發者只需通過 ServBay 的「主機」功能來管理站點,無需手動修改 Caddy 配置檔。
Rewrite 規則和 .htaccess
在 NGINX 和 Apache 中,開發者通常需要自己編寫 Rewrite 規則和 .htaccess 檔案來處理 URL 重寫和其他配置。然而,ServBay 出廠時已經配置好了 Caddy 的規則,因此,除非有特殊需求,否則開發者無需自己編寫這些規則。
了解更多
更多相關信息,請參閱Rewrite與htaccess、Apache網站如何遷移到ServBay、NGINX網站如何遷移到ServBay。
建立 Laravel 專案
TIP
ServBay 建議開發者把網站放置在/Applications/ServBay/www
目錄下,以方便管理。
安裝 Composer
ServBay 出廠時已經自帶 Composer,無需單獨安裝。
建立 Laravel 專案
使用 Composer 建立一個新的 Laravel 專案:
bashcd /Applications/ServBay/www mkdir servbay-laravel-app cd servbay-laravel-app composer create-project --prefer-dist laravel/laravel .
1
2
3
4進入專案目錄
進入新建立的 Laravel 專案目錄:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
初始化配置
生成應用密鑰
Laravel 需要一個應用密鑰來確保用戶會話和其他加密資料的安全。可以使用 Artisan 命令生成應用密鑰:
bashphp artisan key:generate
1配置環境變數
在
.env
檔案中配置資料庫連接信息和其他環境變數。確保以下配置已正確設置:APP_NAME=Laravel APP_ENV=local APP_KEY=base64:... APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6
7
8
9
10
11
12
13
14
配置 Web 伺服器
使用 ServBay 的「主機」功能,通過 Web 伺服器來訪問 Laravel 專案。在 ServBay 的「主機」設置中,添加一個新的主機:
- 名字:
My First Laravel Dev Site
- 域名:
servbay-laravel-test.local
- 網站類型:
PHP
- PHP 版本:選擇
8.3
- 網站根目錄:
/Applications/ServBay/www/servbay-laravel-app/public
詳細設置步驟請參考 添加第一個網站。
添加範例代碼
在 routes/web.php
檔案中添加以下代碼,以輸出 "Hello ServBay!":
Route::get('/', function () {
return 'Hello ServBay!';
});
2
3
訪問網站
打開瀏覽器,訪問 https://servbay-laravel-test.local
,你會看到網頁輸出 Hello ServBay!
。
NoSQL資料庫範例
Memcached 範例
安裝 Memcached 擴展
在 ServBay 中,Memcached 擴展已經預裝好,無需額外安裝。
配置 Memcached
在
.env
檔案中配置 Memcached 連接信息:CACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1
1
2使用 Memcached
在控制器中使用快取:
phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached', function () { Cache::put('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Redis 範例
安裝 Redis 擴展
在 ServBay 中,Redis 擴展已經預裝好,無需額外安裝。
配置 Redis
在
.env
檔案中配置 Redis 連接信息:CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
1
2
3
4使用 Redis
在控制器中使用快取:
phpuse Illuminate\Support\Facades\Redis; Route::get('/redis', function () { Redis::set('key', 'value'); return Redis::get('key'); });
1
2
3
4
5
6
關係型資料庫範例
建立資料庫結構和遷移檔
建立遷移檔
使用 Artisan 命令建立遷移檔:
bashphp artisan make:migration create_accounts_table
1編輯遷移檔
在
database/migrations
目錄下找到新建立的遷移檔,並編輯它以定義資料庫表結構:phppublic function up() { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9運行遷移
使用 Artisan 命令運行遷移,建立資料庫表:
bashphp artisan migrate
1
MySQL 範例
配置 MySQL
在
.env
檔案中配置 MySQL 連接信息:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6寫入用戶資料
在控制器中寫入用戶資料:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9使用 MySQL
在控制器中調用資料庫:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
PostgreSQL 範例
配置 PostgreSQL
在
.env
檔案中配置 PostgreSQL 連接信息:DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6寫入用戶資料
在控制器中寫入用戶資料:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9使用 PostgreSQL
在控制器中調用資料庫:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
通過以上步驟,您成功建立並運行了一個 Laravel 專案,並使用 ServBay 提供的功能來管理和訪問您的專案,同時連接了多種資料庫並調用資料。