import{_ as i,o as a,c as n,a2 as p}from"./chunks/framework.BbmSSMjL.js";const g=JSON.parse('{"title":"2.1 开发环境准备","description":"","frontmatter":{},"headers":[],"relativePath":"zh/quickstart/environment.md","filePath":"zh/quickstart/environment.md"}'),l={name:"zh/quickstart/environment.md"};function h(t,s,k,e,d,r){return a(),n("div",null,[...s[0]||(s[0]=[p(`

2.1 开发环境准备 ​

概述

本章指导您从零搭建开发环境,包括 PHP、Composer、数据库、Redis、Node.js 的安装与配置。项目支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite 五种数据库(document/ 下各有专用初始化脚本),其中 Redis 为必需组件(JWT 会话、权限缓存、验证码、字典缓存均依赖)。

安装流程总览 ​

mermaid
graph TD
    A[开始] --> B[安装 PHP 8.3]
    B --> C[安装 Composer]
    C --> D[安装 Redis]
    D --> E{选择数据库}
    E --> E1[MySQL]
    E --> E2[PostgreSQL]
    E --> E3[SQLite]
    E --> E4[SQL Server]
    E --> E5[Oracle]
    E1 --> F[安装 Node.js 22.18.0 / pnpm]
    E2 --> F
    E3 --> F
    E4 --> F
    E5 --> F
    F --> G[配置开发工具]
    G --> H[环境就绪 ✅]

    style A fill:#e8f5e9
    style H fill:#e8f5e9
    style D fill:#fff3e0

Windows 用户推荐

Windows 环境推荐直接使用 Laragon 集成安装(Apache + PHP 8.3 + MySQL + Redis 一体),并参考 2.2 Laragon 环境搭建 完成 phpredis 扩展与虚拟主机配置,可跳过本章大部分手动安装步骤。

PHP 安装 ​

版本要求

项目要求 PHP >= 8.3(composer.json ^8.3),推荐使用 8.3.x 稳定版。

方式一:Laragon(Windows 推荐) ​

Laragon 是 Windows 下的集成化开发环境(Apache + PHP + MySQL + Redis),本项目即基于 Laragon 部署验证。

text
1. 访问 https://laragon.org/ 下载并安装 Laragon
2. 菜单 PHP → Version 选择 8.3.x(列表没有时手动下载 php-8.3.x-Win32-vs16-x64.zip 解压到 bin\\php\\)
3. 验证:
   $PHP_HOME\\php.exe -v        → PHP 8.3.x (ts)
   $PHP_HOME\\php.exe -i | findstr "Thread Safety"  → enabled(TS)

详细配置(虚拟主机、phpredis 扩展、php.ini)见 2.2 Laragon 环境搭建。

方式二:XAMPP ​

XAMPP 是集成了 Apache + MySQL + PHP 的一键安装包,适合快速搭建开发环境。

sh
# 1. 下载 XAMPP
#    访问 https://www.apachefriends.org/download.html
#    选择 PHP 8.3 版本下载

# 2. 安装完成后,将 PHP 添加到系统 PATH(永久生效)
#    右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
#    在「系统变量」中找到 Path → 编辑 → 新建
#    添加 XAMPP 的 PHP 路径,例如:
#      C:\\xampp8.3\\php
#    确定保存后,打开新的命令行窗口使生效

# 临时生效(仅当前窗口):
set PATH=%PATH%;C:\\xampp8.3\\php

# 3. 验证安装
php -v
# 输出:PHP 8.3.x (cli) ...

# 4. 验证扩展
php -m | findstr "pdo_mysql mbstring gd redis"
sh
# 1. 下载 XAMPP for macOS
#    访问 https://www.apachefriends.org/download.html

# 2. 安装后,将 PHP 添加到 PATH
echo 'export PATH="/Applications/XAMPP/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# 3. 验证安装
php -v

# 4. 验证扩展
php -m | grep -E "pdo_mysql|mbstring|gd|redis"

方式三:包管理器安装 ​

sh
# 添加 PHP 官方仓库(获取最新版本)
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

# 安装 PHP 8.3 及常用扩展
sudo apt install -y \\
    php8.3 \\
    php8.3-fpm \\
    php8.3-mysql \\
    php8.3-pgsql \\
    php8.3-sqlite3 \\
    php8.3-mbstring \\
    php8.3-xml \\
    php8.3-curl \\
    php8.3-gd \\
    php8.3-zip \\
    php8.3-bcmath \\
    php8.3-intl \\
    php8.3-opcache

# 验证安装
php -v

# 验证扩展
php -m | grep -E "pdo_mysql|pdo_pgsql|pdo_sqlite|mbstring|gd"
sh
# 启用 Remi 仓库(提供 PHP 8.3)
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

# 启用 PHP 8.3 模块
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y

# 安装 PHP 及常用扩展
sudo dnf install -y \\
    php \\
    php-fpm \\
    php-mysqlnd \\
    php-pgsql \\
    php-sqlite3 \\
    php-mbstring \\
    php-xml \\
    php-gd \\
    php-zip \\
    php-bcmath \\
    php-intl \\
    php-opcache

# 验证安装
php -v

# 启动 PHP-FPM(Nginx 场景)
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
sh
# 启用 Remi 仓库
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# 启用 PHP 8.3
sudo yum module reset php -y
sudo yum module enable php:remi-8.3 -y

# 安装 PHP 及常用扩展
sudo yum install -y \\
    php \\
    php-fpm \\
    php-mysqlnd \\
    php-pgsql \\
    php-sqlite3 \\
    php-mbstring \\
    php-xml \\
    php-gd \\
    php-zip \\
    php-bcmath \\
    php-intl \\
    php-opcache

# 验证安装
php -v
sh
# 安装 PHP 8.3
brew install php@8.3

# 切换到 8.3 版本
brew link php@8.3 --force

# 验证安装
php -v

# 安装可选扩展(如 gd)
brew install php-gd

PHP 扩展安装 ​

必需扩展 ​

扩展用途安装说明
pdo_mysqlMySQL 数据库驱动已随 php-mysql 安装
mbstring多字节字符串处理(Laravel 框架依赖)已随 PHP 安装
jsonJSON 编解码PHP 8.3 自带
opensslJWT 签名 / HTTPSPHP 8.3 自带
fileinfo文件 MIME 类型检测(上传安全)PHP 8.3 自带
gd图片验证码生成已随 php-gd 安装
bcmath高精度数学运算(phpspreadsheet 依赖)已随 php-bcmath 安装
zipZIP 压缩(phpspreadsheet 读写 xlsx)已随 php-zip 安装
redisRedis 扩展(phpredis,必需)见下方「Redis 扩展」

数据库扩展(按需安装) ​

sh
# 大多数安装方式已包含
# 如缺失:
sudo apt install php8.3-mysql        # Ubuntu
sudo dnf install php-mysqlnd         # Rocky Linux
sh
sudo apt install php8.3-pgsql        # Ubuntu
sudo dnf install php-pgsql           # Rocky Linux

# Windows(Laragon):ext\\php_pdo_pgsql.dll 与 libpq.dll 随 PHP 自带,
# 只需在 $PHP_HOME\\php.ini 扩展区启用:
#   extension=pdo_pgsql
# CLI 每次进程重读 php.ini,无需重启;mod_php 需重启 Apache
# 未启用时执行 php artisan db:migrate --dst-type=pgsql 报 could not find driver
sh
sudo apt install php8.3-sqlite3      # Ubuntu
sudo dnf install php-sqlite3         # Rocky Linux
sh
# 安装 Microsoft ODBC Driver
# 参考 https://learn.microsoft.com/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server

# 安装 PDO_SQLSRV 扩展
sudo pecl install pdo_sqlsrv
echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php/8.3/mods-available/pdo_sqlsrv.ini
sudo phpenmod pdo_sqlsrv
sh
# Oracle 连接器使用 PDO(pdo_oci 驱动),必须启用 pdo_oci 扩展
#
# Linux:安装 Oracle Instant Client 后,通过 PECL 安装
sudo pecl install pdo_oci
echo "extension=pdo_oci.so" | sudo tee /etc/php/8.3/mods-available/pdo_oci.ini
sudo phpenmod pdo_oci

# Windows:下载对应 PHP 版本的 php_pdo_oci.dll 放入 ext\\,
# 在 php.ini 中启用:extension=pdo_oci
# 同时需要安装 Oracle Instant Client 并配置系统 PATH
# 详见下方「数据库安装 → Oracle」章节

Redis 扩展(必需) ​

项目强依赖 Redis,PHP 必须加载 phpredis 扩展,否则报 Class "Redis" not found。

sh
# Windows 下无 pecl 编译环境,手动安装 DLL:
# 1. 判断线程安全类型(Laragon 的 Apache 用 TS):
$PHP_HOME\\php.exe -i | findstr "Thread Safety"     # enabled → TS 包

# 2. 下载对应构建包(四个要素必须全部匹配:扩展版本 / PHP 主次版本 / ts|nts / x64|x86):
#    https://downloads.php.net/~windows/pecl/releases/redis/
#    例:php_redis-6.3.0-8.3-ts-vs16-x64.zip

# 3. 解压后将 php_redis.dll 复制到扩展目录 ext\\

# 4. php.ini 扩展区按字母序新增(PHP 8 写法,不带 php_ 前缀和 .dll 后缀):
#    extension=redis

# 5. 重启 Apache(mod_php 常驻不热加载)
# 详细图文步骤见 2.2 Laragon 环境搭建
sh
# 通过 PECL 安装
sudo pecl install redis

# 启用扩展
echo "extension=redis.so" | sudo tee /etc/php/8.3/mods-available/redis.ini
sudo phpenmod redis

# 验证
php -m | grep redis

可选扩展 ​

sh
# 仅开发环境安装
sudo pecl install xdebug

# 配置 php.ini
echo "[xdebug]" | sudo tee -a /etc/php/8.3/cli/php.ini
echo "zend_extension=xdebug" | sudo tee -a /etc/php/8.3/cli/php.ini
echo "xdebug.mode=debug" | sudo tee -a /etc/php/8.3/cli/php.ini
echo "xdebug.client_host=127.0.0.1" | sudo tee -a /etc/php/8.3/cli/php.ini
echo "xdebug.client_port=9003" | sudo tee -a /etc/php/8.3/cli/php.ini
sh
# 通常已随 PHP 安装,只需在 php.ini 中启用
# 生产环境必须启用
sudo sed -i 's/;opcache.enable=1/opcache.enable=1/' /etc/php/8.3/fpm/php.ini

验证所有扩展 ​

bash
# 检查必需扩展
php -m | grep -E "pdo_mysql|mbstring|json|openssl|fileinfo|gd|bcmath|zip|redis"

# 检查数据库扩展(按实际使用的数据库)
php -m | grep -E "pdo_mysql|pdo_pgsql|pdo_sqlsrv|pdo_sqlite"

扩展缺失会导致启动失败

如果上述命令输出为空,说明扩展未安装。最常见缺失是 pdo_mysql、gd 和 redis——redis 缺失会导致验证码、登录等核心功能直接不可用。

Composer 安装 ​

sh
# 下载 Composer 安装器
# 访问 https://getcomposer.org/Composer-Setup.exe

# 运行安装程序,按提示完成安装
# 安装过程中会自动检测 PHP 路径

# 打开新的命令行窗口,验证
composer -V

# 配置中国镜像(可选)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
sh
# 下载安装脚本
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

# 全局安装
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

# 删除安装脚本
php -r "unlink('composer-setup.php');"

# 验证
composer -V

# 配置中国镜像(可选,加速下载)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Composer 依赖清单 ​

运行 composer install 后会安装以下核心依赖:

依赖版本说明
laravel/framework^13.0Laravel 框架
firebase/php-jwt^7.1JWT 令牌签发与解析
phpoffice/phpspreadsheet^5.10Excel 导入导出
zoujingli/ip2region^3.0IP 归属地解析

开发依赖(require-dev):

依赖版本说明
laravel/pint^1.27代码格式化(提交前 ./vendor/bin/pint)
laravel/pail^1.2实时日志流(composer dev 内置)
phpunit/phpunit^12.5测试框架(composer test)
fakerphp/faker^1.23测试数据生成
mockery/mockery^1.6测试 Mock

数据库安装 ​

项目支持五种数据库,按需选择一种即可,document/ 下均提供对应初始化脚本。

数据库推荐场景难度集成环境自带说明
MySQL日常开发、中小项目⭐ 低✅ 是默认推荐,开箱即用
PostgreSQL需要 JSONB、全文检索⭐⭐ 中❌ 否功能丰富,需单独安装
SQLite快速演示、单元测试⭐ 低✅ 是无需数据库服务,零配置(项目自带 database.sqlite)
SQL Server企业 Windows 环境⭐⭐ 中驱动自带需单独安装数据库服务
Oracle大型企业项目⭐⭐⭐ 高驱动自带需安装 Instant Client 与 pdo_oci 扩展

新手推荐

Laragon / XAMPP 已集成 MySQL 数据库服务,安装后无需再单独安装数据库。

MySQL 数据库 ​

MySQL 是项目默认推荐的关系型数据库,集成环境已自带,开箱即用。

sh
# Laragon 控制面板启动 MySQL 即可

# 确认扩展已启用(编辑 $PHP_HOME\\php.ini):
#   extension=pdo_mysql
# 若前面有分号则去掉,保存后重启 Laragon

# 创建数据库
D:\\laragon\\bin\\mysql\\bin\\mysql.exe -u root -proot -e "CREATE DATABASE \\\`rxthinkcmf.laravel13.naivevue\\\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
sh
brew install mysql
brew services start mysql
sudo mysql_secure_installation

# 创建数据库
mysql -u root -proot -e "CREATE DATABASE \\\`rxthinkcmf.laravel13.naivevue\\\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
sh
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation

# 创建数据库
mysql -u root -proot -e "CREATE DATABASE \\\`rxthinkcmf.laravel13.naivevue\\\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
sh
sudo dnf install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation

# 创建数据库
mysql -u root -proot -e "CREATE DATABASE \\\`rxthinkcmf.laravel13.naivevue\\\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"

创建后的 .env 配置:

ini
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=rxthinkcmf.laravel13.naivevue
DB_USERNAME=root
DB_PASSWORD=root
DB_PREFIX=laravel_

PostgreSQL 数据库 ​

PostgreSQL 功能强大,支持 JSONB、全文检索等高级特性,需单独安装。

sh
# 安装 PostgreSQL
# 访问 https://www.postgresql.org/download/windows/ 下载安装包
# 安装过程中记住设置的密码

# 确认扩展已启用(编辑 $PHP_HOME\\php.ini):
#   extension=pdo_pgsql
#   extension=pgsql
# 若前面有分号则去掉,保存后重启环境

# 设置 postgres 密码(首次)
psql -U postgres -c "ALTER USER postgres WITH PASSWORD 'root';"

# 创建数据库
psql -U postgres -c "CREATE DATABASE \\"rxthinkcmf.laravel13.naivevue\\" OWNER postgres ENCODING 'UTF8';"
sh
brew install postgresql
brew services start postgresql

# 设置 postgres 密码
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'root';"

# 创建数据库
sudo -u postgres psql -c "CREATE DATABASE \\"rxthinkcmf.laravel13.naivevue\\" OWNER postgres ENCODING 'UTF8';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \\"rxthinkcmf.laravel13.naivevue\\" TO postgres;"
sh
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql

# 设置 postgres 密码
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'root';"

# 创建数据库
sudo -u postgres psql -c "CREATE DATABASE \\"rxthinkcmf.laravel13.naivevue\\" OWNER postgres ENCODING 'UTF8';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \\"rxthinkcmf.laravel13.naivevue\\" TO postgres;"
sh
sudo dnf install postgresql-server
sudo postgresql-setup --initdb
sudo systemctl start postgresql

# 设置 postgres 密码
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'root';"

# 创建数据库
sudo -u postgres psql -c "CREATE DATABASE \\"rxthinkcmf.laravel13.naivevue\\" OWNER postgres ENCODING 'UTF8';"

.env 配置:

ini
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=rxthinkcmf.laravel13.naivevue
DB_USERNAME=postgres
DB_PASSWORD=root
DB_PREFIX=laravel_

SQLite 数据库 ​

SQLite 无需安装数据库服务器,数据存储在单个文件中,适合开发环境和单元测试。项目根目录 database/ 下已自带 database.sqlite。

sh
# 确认扩展已启用(编辑 $PHP_HOME\\php.ini):
#   extension=pdo_sqlite
#   extension=sqlite3
# 若前面有分号则去掉,保存后重启环境

# 若文件不存在,创建数据库文件
echo. > database\\database.sqlite
sh
# 创建数据库文件(如缺失)
touch database/database.sqlite

.env 配置(Laravel 默认即 sqlite):

ini
DB_CONNECTION=sqlite
# DB_DATABASE 指向 database/database.sqlite(默认值,无需修改)
DB_PREFIX=laravel_

WARNING

SQLite 仅适合开发与测试。完整初始化数据请导入 document/sqlite/rxthinkcmf.laravel13.naivevue.sql(五种数据库各有专用脚本,按 document/<数据库类型>/ 分组,见 2.5 数据库初始化)。

SQL Server 数据库 ​

SQL Server 是微软商业数据库,Windows 下安装 ODBC 驱动后开箱即用。

sh
# 1. 下载安装 SQL Server Express:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads
# 2. 安装 Microsoft ODBC Driver(默认已随 SQL Server 安装)
# 3. 启用 PHP 扩展(Windows 无 pecl:下载 Windows_5.13.3RTW.zip,PHP 8.3 起步对应 83 系列)
#    解压后取两个 DLL 复制到 ext\\,再在 php.ini 启用(本项目 PHP 8.3 TS x64):
#    extension=php_sqlsrv_83_ts_x64.dll
#    extension=php_pdo_sqlsrv_83_ts_x64.dll
#    完整 DLL 清单与选择规则见 7.6 数据库迁移工具 → 驱动安装与环境配置

# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.laravel13.naivevue] COLLATE Chinese_PRC_CI_AS"
sh
# macOS 不原生支持 SQL Server,建议使用 Docker
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=root" \\
  -p 1433:1433 --name sqlserver \\
  -d mcr.microsoft.com/mssql/server:2022-latest

# 安装 PHP 扩展
pecl install pdo_sqlsrv

# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.laravel13.naivevue] COLLATE Chinese_PRC_CI_AS"
sh
# 1. 安装 SQL Server
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)"
sudo apt update
sudo apt install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup

# 2. 安装命令行工具
sudo apt install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

# 3. 安装 PHP 扩展
sudo pecl install pdo_sqlsrv
echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php/8.3/mods-available/pdo_sqlsrv.ini
sudo phpenmod pdo_sqlsrv

# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.laravel13.naivevue] COLLATE Chinese_PRC_CI_AS"
sh
# 1. 安装 SQL Server
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
sudo dnf install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup

# 2. 安装命令行工具
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
sudo dnf install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

# 3. 安装 PHP 扩展
sudo pecl install pdo_sqlsrv
echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php.d/pdo_sqlsrv.ini

# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.laravel13.naivevue] COLLATE Chinese_PRC_CI_AS"

.env 配置:

ini
DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=rxthinkcmf.laravel13.naivevue
DB_USERNAME=sa
DB_PASSWORD=root
DB_PREFIX=laravel_

Oracle 数据库 ​

Oracle 是企业级商业数据库,需手动安装 Instant Client 和 pdo_oci 扩展。

sh
# 1. 安装 Oracle Instant Client
#    下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html
#    选择 Basic Package,x64,推荐 19c
#    解压到 C:\\oracle\\instantclient_19_20(⚠️ 避免空格与中文)

# 2. 配置系统环境变量
#    将 C:\\oracle\\instantclient_19_20 添加到系统 PATH

# 3. 安装 VC++ 运行库(必装)
#    下载:https://aka.ms/vc14/vc_redist.x64.exe

# 4. 启用扩展
#    编辑 $PHP_HOME\\php.ini,添加:
#    extension=pdo_oci

# 5. 重启 Web 服务(完全关闭再启动)

# .env 配置
# DB_CONNECTION=oracle
# DB_HOST=127.0.0.1
# DB_PORT=1521
# DB_DATABASE=rxthinkcmf.laravel13.naivevue
# DB_USERNAME=root
# DB_PASSWORD=root
sh
# Oracle 不原生支持 macOS,建议使用 Docker
docker run -d --name oracle-xe -p 1521:1521 \\
  -e ORACLE_PWD=root \\
  gvenzl/oracle-xe:21-slim

# 安装 PHP 扩展
pecl install pdo_oci
sh
# 1. 安装 Oracle Database
sudo dpkg -i oracle-database-xe-21c-1.0-1.x86_64.deb
sudo /etc/init.d/oracle-xe-21c configure

# 2. 安装 Oracle Instant Client
sudo dpkg -i oracle-instantclient-basic-*.deb
sudo dpkg -i oracle-instantclient-devel-*.deb

# 3. 安装 PHP 扩展
sudo pecl install pdo_oci
echo "extension=pdo_oci.so" | sudo tee /etc/php/8.3/mods-available/pdo_oci.ini
sudo phpenmod pdo_oci

# 4. 创建表空间和用户(详见 2.5 数据库初始化 → Oracle 初始化)
sh
# 1. 安装 Oracle Database
sudo rpm -ivh oracle-database-xe-21c-1.0-1.x86_64.rpm
sudo /etc/init.d/oracle-xe-21c configure

# 2. 安装 Oracle Instant Client
sudo rpm -ivh oracle-instantclient-basic-*.rpm
sudo rpm -ivh oracle-instantclient-devel-*.rpm

# 3. 安装 PHP 扩展
sudo pecl install pdo_oci
echo "extension=pdo_oci.so" | sudo tee /etc/php.d/pdo_oci.ini

# 4. 创建表空间和用户(详见 2.5 数据库初始化 → Oracle 初始化)

Oracle 常见坑

Redis 安装(必需) ​

Redis 是必需组件

验证码、JWT 双令牌会话、权限缓存、字典缓存、会话/队列驱动均依赖 Redis。未安装或密码不匹配时,登录、验证码等核心功能将直接不可用。

sh
# Laragon 内置 Redis:菜单 Redis → 启动即可(127.0.0.1:6379)

# 验证 Redis 服务
redis-cli ping
# 输出:PONG

# PHP 侧需安装 php_redis.dll 扩展(见上方「Redis 扩展」与 2.2 Laragon 环境搭建)

# 验证 PHP 可连接 Redis
$PHP_HOME\\php.exe -r "var_dump(class_exists('Redis'));"
# 输出:bool(true)
sh
# 下载 Redis for Windows
# 访问 https://github.com/tporadowski/redis/releases 下载 .msi 安装包
# 注:该仓库已归档但仍可用;也可使用 Memurai(Redis Windows 兼容方案)
# 安装完成后,Redis 会作为 Windows 服务自动启动

# 验证 Redis 服务
redis-cli ping
# 输出:PONG
sh
brew install redis
brew services start redis

# 验证
redis-cli ping
sh
sudo apt install redis-server
sudo systemctl start redis
sudo systemctl enable redis

# 验证
redis-cli ping
# 输出:PONG
sh
sudo dnf install redis
sudo systemctl start redis
sudo systemctl enable redis

# 验证
redis-cli ping

Redis 密码(可选但需同步) ​

设置了 requirepass 时,.env 必须同步配置,缺一不可:

ini
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=你的密码        # Redis 无密码时保持 null
REDIS_PORT=6379

改完执行 php artisan config:clear 并重启 Web 服务。连通性单测:

bash
php artisan tinker --execute="try { \\Illuminate\\Support\\Facades\\Redis::setex('test:key', 10, 'ok'); echo 'OK: '.\\Illuminate\\Support\\Facades\\Redis::get('test:key'); } catch (\\Throwable \\$e) { echo get_class(\\$e).': '.\\$e->getMessage(); }"
# 输出 OK: ok 即连接正常(测试键 10 秒自动过期)

Node.js / pnpm 安装 ​

sh
# 下载 Node.js 安装包
# 访问 https://nodejs.org/ 下载 LTS 版本(22.18.0)

# 运行安装程序,按提示完成安装

# 打开新的命令行窗口,验证
node -v                                # 查看 Node.js 版本(本环境 v22.18.0,需 22+)
npm -v                                 # 查看 npm 版本(随 Node.js 一起安装)

# 安装 pnpm 包管理器(比 npm 更快、磁盘占用更少)
# -g → 全局安装(所有项目可用)
npm install -g pnpm

# 验证
pnpm -v                                # 查看 pnpm 版本
sh
# nvm-windows 是 Windows 下的 Node.js 版本管理工具
# 可以轻松切换多个 Node.js 版本

# ─── 1. 安装 nvm-windows ───────────────────────────────────

# 方式一:下载安装包(推荐)
# 访问 https://github.com/coreybutler/nvm-windows/releases
# 下载最新版 nvm-setup.exe,运行安装

# 方式二:使用 winget 安装
winget install CoreyButler.NVMforWindows

# 安装完成后,打开新的命令行窗口验证
nvm version

# ─── 2. 安装 Node.js ──────────────────────────────────────

# 查看可用的 Node.js 版本
nvm list available

# 安装 LTS 版本
nvm install 22

# 使用该版本
nvm use 22

# 验证
node -v    # v22.18.0
npm -v     # 10.x.x

# ─── 3. 安装 pnpm ─────────────────────────────────────────

npm install -g pnpm

# 验证
pnpm -v    # 12.x.x

# ─── 4. 常用命令 ──────────────────────────────────────────

# 查看已安装的版本
nvm list

# 切换版本
nvm use 22

# 安装其他版本
nvm install 20

# 卸载版本
nvm uninstall 20
sh
# 安装 nvm(Node.js 版本管理器)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc  # 或 source ~/.zshrc

# 安装 Node.js 22
nvm install 22
nvm use 22

# 验证
node -v    # v22.18.0
npm -v     # 9.x.x

# 安装 pnpm
npm install -g pnpm

# 验证
pnpm -v    # 12.x.x

镜像配置

如果安装依赖速度较慢,建议为 pnpm 和 npm 均配置国内镜像源。

sh
# pnpm 镜像
pnpm config set registry https://registry.npmmirror.com

# npm 镜像
npm config set registry https://registry.npmmirror.com

# 验证配置
pnpm config get registry
npm config get registry
# 输出:https://registry.npmmirror.com/

# 如遇 SSL 证书问题(如企业代理环境),可临时关闭严格校验
npm config set strict-ssl false

配置完成后可通过 pnpm config list 或 npm config list 查看完整配置:

sh
$ npm config list
; "user" config from C:\\Users\\home\\.npmrc

registry = "https://registry.npmmirror.com/"
strict-ssl = false

; node bin location = C:\\Program Files\\nodejs\\node.exe
; node version = v22.18.0
; npm version = 11.12.1

前端依赖清单 ​

进入 ui/ 目录执行 pnpm install 后会安装以下核心依赖:

依赖版本说明
vue^3.5.1核心框架
naive-ui^2.40.0UI 组件库
pinia^2.2.2状态管理
vue-router^4.4.3路由管理
axios^1.7.7HTTP 请求
typescript^4.9.5类型系统
vite^5.4.3构建工具
tinymce5.10.3富文本编辑器
@vueup/vue-quill1.0.0-beta.8富文本编辑器(Quill)
echarts^5.5.1图表库
tailwindcss^3.4.10CSS 框架
xlsx^0.17.5Excel 处理
@vicons/antd^0.10.0图标库
date-fns^2.30.0日期处理
lodash-es^4.17.21工具函数库

开发工具推荐 ​

PhpStorm ​

专业的 PHP IDE,内置 Xdebug 调试、Composer 管理、数据库工具。

VS Code ​

轻量级编辑器,通过插件支持 PHP 和前端开发。

推荐插件:

插件说明
PHP IntelephensePHP 代码提示
PHP DebugXdebug 调试
Laravel Extra IntelephenseLaravel 门面/路由提示
Vue - OfficialVue 3 支持
ESLint代码检查
Prettier代码格式化

数据库管理工具 ​

工具支持数据库说明
NavicatMySQL/PG/Oracle/SQLServer/SQLite商业,功能强大
DBeaver全部开源免费
phpMyAdminMySQLWeb 界面
HeidiSQLMySQL/PG/SQLServerWindows 免费

Xdebug 配置(PhpStorm) ​

前置条件

请先完成 Xdebug 扩展的安装,详见上方「PHP 扩展安装 → 可选扩展 → Xdebug 调试」。

ini
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
text
1. Settings → PHP → Debug → Xdebug 端口设为 9003
2. Settings → PHP → Servers → 添加 localhost:80
3. 点击电话图标(Start Listening for PHP Debug Connections)
4. 在代码中设置断点
5. 浏览器访问页面,PhpStorm 会自动停在断点处

环境验证清单 ​

完成以上所有安装后,逐项验证:

bash
# =============================================================================
# 环境验证清单(逐项检查,全部通过即可开始开发)
# =============================================================================

# ─── 1. PHP 版本和扩展 ────────────────────────────────────
php -v                                              # 查看版本,需 >= 8.3
php -m | grep -E "pdo_mysql|mbstring|gd|redis"      # 检查必需扩展是否已加载

# ─── 2. Composer 包管理器 ──────────────────────────────────
composer -V                                         # 正常输出版本号即为安装成功

# ─── 3. 数据库连接 ────────────────────────────────────────
# MySQL:查询数据库列表,确认项目数据库存在
mysql -u root -proot -e "SHOW DATABASES;" | grep laravel13

# ─── 4. Node.js / pnpm ────────────────────────────────────
node -v                                             # 查看版本,需 22+(本环境 v22.18.0)
pnpm -v                                             # 正常输出版本号即为安装成功

# ─── 5. Redis 缓存(必需)─────────────────────────────────
redis-cli ping                                      # 输出 PONG 表示 Redis 服务正常
php -m | grep redis                                 # 输出 redis 表示扩展已加载

全部通过?

如果以上命令均正常输出,说明环境搭建成功,可以进入项目启动阶段(见 2.3 后端服务启动)。

一键环境检查脚本 ​

将以下脚本保存为项目根目录的 check_env.php,运行 php check_env.php 即可一次性检查所有环境:

php
<?php
/**
 * check_env.php — 一键环境检查脚本
 * 用法:php check_env.php
 * 用途:自动检查 PHP 版本、扩展、Composer 依赖、Redis、Node.js 环境是否满足项目要求
 */

// =============================================================================
// 1. PHP 版本检查
// =============================================================================
// PHP_VERSION → 当前 PHP 版本号
// version_compare() → 比较版本号是否 >= 8.3.0
echo "=== PHP 版本检查 ===\\n";
echo "PHP Version: " . PHP_VERSION . (version_compare(PHP_VERSION, '8.3.0', '>=') ? " ✓" : " ✗ 需要 8.3+") . "\\n";

// =============================================================================
// 2. 必需扩展检查
// =============================================================================
// extension_loaded() → 检查指定扩展是否已加载
echo "\\n=== 必需扩展检查 ===\\n";
$required = ['pdo_mysql', 'mbstring', 'json', 'openssl', 'fileinfo', 'gd', 'bcmath', 'zip', 'redis'];
foreach ($required as $ext) {
    $loaded = extension_loaded($ext);
    echo "  $ext: " . ($loaded ? "✓ 已安装" : "✗ 未安装") . "\\n";
}

// =============================================================================
// 3. 可选扩展检查
// =============================================================================
echo "\\n=== 可选扩展检查 ===\\n";
$optional = ['xdebug', 'opcache'];
foreach ($optional as $ext) {
    $loaded = extension_loaded($ext);
    echo "  $ext: " . ($loaded ? "✓ 已安装" : "- 未安装(可选)") . "\\n";
}

// =============================================================================
// 4. Composer 依赖检查
// =============================================================================
// 读取 composer.json,检查 vendor/ 下的依赖是否已安装
echo "\\n=== Composer 依赖检查 ===\\n";
$composerJson = file_get_contents(__DIR__ . '/composer.json');
if ($composerJson) {
    $data = json_decode($composerJson, true);
    $require = $data['require'] ?? [];
    foreach ($require as $pkg => $ver) {
        if ($pkg === 'php') continue;       // 跳过 PHP 版本要求
        $path = __DIR__ . '/vendor/' . $pkg;
        echo "  $pkg $ver: " . (is_dir($path) ? "✓ 已安装" : "✗ 未安装(运行 composer install)") . "\\n";
    }
} else {
    echo "  ⚠ 未找到 composer.json\\n";
}

// =============================================================================
// 5. Redis 服务连通检查
// =============================================================================
// 扩展已加载时尝试 PING,验证服务端可用
echo "\\n=== Redis 服务检查 ===\\n";
if (extension_loaded('redis')) {
    try {
        $r = new Redis();
        $r->connect('127.0.0.1', 6379, 2);
        echo "  service: ✓ 连接正常(" . $r->ping() . ")\\n";
    } catch (Throwable $e) {
        echo "  service: ✗ 连接失败(" . $e->getMessage() . ")\\n";
    }
} else {
    echo "  extension: ✗ phpredis 扩展未安装\\n";
}

// =============================================================================
// 6. Node.js 环境检查
// =============================================================================
// shell_exec() → 执行系统命令并返回输出
// 2>nul → 将错误输出重定向到空设备(Windows 下隐藏 "命令未找到" 的错误)
echo "\\n=== Node.js 环境检查 ===\\n";
$nodeVer = trim(shell_exec('node -v 2>nul') ?: '');
$pnpmVer = trim(shell_exec('pnpm -v 2>nul') ?: '');
echo "  node: " . ($nodeVer ? "$nodeVer ✓" : "✗ 未安装") . "\\n";
echo "  pnpm: " . ($pnpmVer ? "$pnpmVer ✓" : "✗ 未安装(运行 npm install -g pnpm)") . "\\n";

echo "\\n=== 完成 ===\\n";
`,102)])])}const y=i(l,[["render",h]]);export{g as __pageData,y as default};