本项目代码使用 PHP 框架 Laravel 11 开发,本地开发环境使用 Herd。
下文将在假定读者已经安装好了 Herd 的情况下进行说明。如果还未安装 Herd,请参考 Herd 官方文档进行安装。
基础安装
创建项目
bashcomposer create-project zhaiyuxin103/laravel-skeleton
根据情况修改
.env
文件里的内容,如数据库连接、缓存、邮件设置等TIP
请确保
.env
文件里的APP_URL
配置正确,否则可能会导致路由生成错误.env
参考配置dotenvAPP_NAME=Laravel APP_ENV=local APP_KEY=base64:CwIXFZoR/22TRZMGU8n96Ar//mubrh2Kxa15UmkgPnE= APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=https://laravel.test APP_HTTPS=true APP_LOCALE=ja APP_FALLBACK_LOCALE=ja APP_FAKER_LOCALE=ja_JP APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_STORE=database API_RATE_LIMITS=60,1 API_SIGN_RATE_LIMITS=10,1 API_DOMAIN= API_PREFIX=api ADMIN_DOMAIN= ADMIN_PATH=admin AUTH_VERIFICATION_CODE_TTL=5 BCRYPT_ROUNDS=12 LOG_CHANNEL=daily LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug LOG_DAILY_DAYS=14 LOG_QUERY=true LOG_VIEWER_ENABLED=true LOG_VIEWER_API_ONLY=false LOG_VIEWER_API_STATEFUL_DOMAINS= QUERY_LOG_SLOWER_THAN=0 QUERY_LOG_TRIGGER=false QUERY_LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=password SESSION_DRIVER=redis SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null BROADCAST_CONNECTION=log FILESYSTEM_DISK=s3 QUEUE_CONNECTION=redis CACHE_STORE=redis CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=log MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://meilisearch:7700 MEILISEARCH_NO_ANALYTICS=false SCOUT_DRIVER=typesense TYPESENSE_HOST=typesense TYPESENSE_PORT=8108 TYPESENSE_PROTOCOL=http TYPESENSE_API_KEY=xyz WWWGROUP=1000 WWWUSER=1000 TELESCOPE_ENABLED=false OCTANE_SERVER=roadrunner OCTANE_HTTPS=true SENTRY_LARAVEL_DSN=https://example@user.ingest.us.sentry.io/1 # Specify a fixed sample rate SENTRY_TRACES_SAMPLE_RATE=1.0 # Set a sampling rate for profiling - this is relative to traces_sample_rate SENTRY_PROFILES_SAMPLE_RATE=1.0
执行数据库迁移
bashphp artisan migrate
执行数据库填充
bashphp artisan db:seed
前端资源安装
安装 pnpm
INFO
- 项目使用 pnpm 管理前端依赖,请先确保已经安装了 pnpm
- 如未安装,参考 Installation
安装依赖
bashpnpm install
编译前端资源
TIP
开发环境请使用
pnpm run dev
命令,以便在修改代码后自动编译bashpnpm run build
Herd 配置
链接到域
bashherd link
指定 PHP 版本
bashherd isolate 8.3
启用 HTTPS 支持
bashherd secure
在浏览器中打开应用
bashherd open
配置加速引擎
安装 Octane
INFO
加速引擎请选择 roadrunner
bashphp artisan octane:install
修改 Nginx 配置
- 通过 Herd 的 Open configuration files 菜单打开配置文件目录
- 根据 Serving Your Application via Nginx 官方文档修改 Nginx 配置文件
启动应用
TIP
开发环境下,请添加
--watch
选项,以便在修改代码后自动重启服务bashphp artisan octane:start
权限配置
生成所有权限
bashphp artisan shield:generate --option=permissions --al
将 1 号用户设为超级管理员
bashphp artisan shield:super-admin