创建并运行 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 提供的功能来管理和访问您的项目,同时连接了多种数据库并调用数据。