创建和运行 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 配置文件。
重写规则和 .htaccess
在 NGINX 和 Apache 中,开发者通常需要自己编写重写规则和 .htaccess 文件来处理 URL 重写和其他配置。然孜的默认设置已经配置好 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
在路由
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 的功能来管理和访问项目,连接到多个数据库,并查询数据。