創建並運行 Laravel 項目
什麼是 Laravel?
Laravel 是由 PHP 開發者 Taylor Otwell 創建的開源 PHP 網頁框架。它旨在為開發者提供一套乾淨且優雅的工具用於構建現代網頁應用程序。Laravel 提供了豐富的特性,如路由、會話、緩存、認證等,使得常見的網絡開發任務變得更加簡單。
Laravel 的主要特性和優勢
- 簡潔與優雅:Laravel 的語法簡單且優雅,使代碼更加可讀和易於維護。
- 豐富的特性集:包括路由、認證、會話管理和緩存,顯著簡化了開發過程。
- 強大的 ORM:Eloquent ORM 提供了一個簡單的 ActiveRecord 實現,用於數據庫操作。
- 模塊化設計:通過 Composer 包管理器輕鬆集成第三方庫和擴展。
- 強大的社區支持:擁有大量的開發者社區以及豐富的生態系統。
Laravel 幫助開發者快速構建高質量的網頁應用程序和 API,適用於各種規模的項目,從小型應用到大型企業級系統。
使用 ServBay 創建並運行 Laravel 項目
在本文中,我們將使用 ServBay 的 PHP 環境來創建並運行一個 Laravel 項目。我們將利用 ServBay 的 'Host' 功能來設置 Web 服務器並通過簡單配置訪問項目。
注意: 如果你之前使用 NGINX 或 Apache
ServBay 使用 Caddy 作為默認的 Web 服務器。對於從 NGINX 和 Apache 過渡到 ServBay 的用戶來說,有一些關鍵變化需要注意:
Caddy 配置
ServBay 內建了 Caddy,且默認已經進行了優化和調試。開發者僅需使用 ServBay 的 'Host' 功能來管理站點,無需手動修改 Caddy 配置文件。
重寫規則和 .htaccess
在 NGINX 和 Apache 中,開發者通常需要自己編寫重寫規則和 .htaccess 文件以處理 URL 重寫和其他配置。然而,ServBay 的默認設置已經配置了 Caddy 的規則,因此除非有特殊需求,開發者無需自己編寫這些規則。
了解更多
更多信息,請參考 Rewrite and htaccess, How to Migrate Apache Sites to ServBay, How to Migrate NGINX Sites to 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 的 'Host' 功能通過 Web 服務器訪問 Laravel 項目。在 ServBay 的 'Host' 設置中,添加一個新的主機:
- 名稱:
My First Laravel Dev Site
- 域名:
servbay-laravel-test.local
- 網站類型:
PHP
- PHP 版本: 選擇
8.3
- 網站根目錄:
/Applications/ServBay/www/servbay-laravel-app/public
詳細步驟請參考 Adding the First Website。
添加示例代碼
添加以下代碼到 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
在
routes/web.php
中使用緩存:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached', function () { Cache::put('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6打開瀏覽器並訪問
https://servbay-laravel-test.local/memcached
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
在
routes/web.php
中使用緩存:phpuse Illuminate\Support\Facades\Redis; Route::get('/redis', function () { Redis::set('key', 'value'); return Redis::get('key'); });
1
2
3
4
5
6打開瀏覽器並訪問
https://servbay-laravel-test.local/redis
關係型數據庫示例
創建數據庫結構和遷移文件
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創建遷移文件
使用 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插入帳戶數據
在
routes/web.php
文件中插入帳戶數據: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
在
routes/web.php
文件中查詢數據庫:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6打開瀏覽器並訪問
https://servbay-laravel-test.local/mysql-add
和https://servbay-laravel-test.local/mysql
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創建遷移文件
使用 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插入帳戶數據
在
routes/web.app
文件中插入帳戶數據: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
在
routes/web.php
文件中查詢數據庫:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6打開瀏覽器並訪問
https://servbay-laravel-test.local/pgsql-add
和https://servbay-laravel-test.local/pgsql
按照以上步驟,你已成功創建並運行一個 Laravel 項目,使用 ServBay 的功能管理和訪問你的項目,連接多個數據庫並查詢數據。