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(`
概述
本章指导您从零搭建开发环境,包括 PHP、Composer、数据库、Redis、Node.js 的安装与配置。项目支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite 五种数据库(document/ 下各有专用初始化脚本),其中 Redis 为必需组件(JWT 会话、权限缓存、验证码、字典缓存均依赖)。
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:#fff3e0Windows 用户推荐
Windows 环境推荐直接使用 Laragon 集成安装(Apache + PHP 8.3 + MySQL + Redis 一体),并参考 2.2 Laragon 环境搭建 完成 phpredis 扩展与虚拟主机配置,可跳过本章大部分手动安装步骤。
版本要求
项目要求 PHP >= 8.3(composer.json ^8.3),推荐使用 8.3.x 稳定版。
Laragon 是 Windows 下的集成化开发环境(Apache + PHP + MySQL + Redis),本项目即基于 Laragon 部署验证。
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 是集成了 Apache + MySQL + PHP 的一键安装包,适合快速搭建开发环境。
# 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"# 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"# 添加 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"# 启用 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# 启用 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# 安装 PHP 8.3
brew install php@8.3
# 切换到 8.3 版本
brew link php@8.3 --force
# 验证安装
php -v
# 安装可选扩展(如 gd)
brew install php-gd| 扩展 | 用途 | 安装说明 |
|---|---|---|
pdo_mysql | MySQL 数据库驱动 | 已随 php-mysql 安装 |
mbstring | 多字节字符串处理(Laravel 框架依赖) | 已随 PHP 安装 |
json | JSON 编解码 | PHP 8.3 自带 |
openssl | JWT 签名 / HTTPS | PHP 8.3 自带 |
fileinfo | 文件 MIME 类型检测(上传安全) | PHP 8.3 自带 |
gd | 图片验证码生成 | 已随 php-gd 安装 |
bcmath | 高精度数学运算(phpspreadsheet 依赖) | 已随 php-bcmath 安装 |
zip | ZIP 压缩(phpspreadsheet 读写 xlsx) | 已随 php-zip 安装 |
redis | Redis 扩展(phpredis,必需) | 见下方「Redis 扩展」 |
# 大多数安装方式已包含
# 如缺失:
sudo apt install php8.3-mysql # Ubuntu
sudo dnf install php-mysqlnd # Rocky Linuxsudo 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 driversudo apt install php8.3-sqlite3 # Ubuntu
sudo dnf install php-sqlite3 # Rocky Linux# 安装 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# 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,PHP 必须加载 phpredis 扩展,否则报 Class "Redis" not found。
# 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 环境搭建# 通过 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# 仅开发环境安装
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# 通常已随 PHP 安装,只需在 php.ini 中启用
# 生产环境必须启用
sudo sed -i 's/;opcache.enable=1/opcache.enable=1/' /etc/php/8.3/fpm/php.ini# 检查必需扩展
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 安装器
# 访问 https://getcomposer.org/Composer-Setup.exe
# 运行安装程序,按提示完成安装
# 安装过程中会自动检测 PHP 路径
# 打开新的命令行窗口,验证
composer -V
# 配置中国镜像(可选)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/# 下载安装脚本
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 install 后会安装以下核心依赖:
| 依赖 | 版本 | 说明 |
|---|---|---|
laravel/framework | ^13.0 | Laravel 框架 |
firebase/php-jwt | ^7.1 | JWT 令牌签发与解析 |
phpoffice/phpspreadsheet | ^5.10 | Excel 导入导出 |
zoujingli/ip2region | ^3.0 | IP 归属地解析 |
开发依赖(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 是项目默认推荐的关系型数据库,集成环境已自带,开箱即用。
# 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;"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;"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;"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 配置:
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 功能强大,支持 JSONB、全文检索等高级特性,需单独安装。
# 安装 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';"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;"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;"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 配置:
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 无需安装数据库服务器,数据存储在单个文件中,适合开发环境和单元测试。项目根目录 database/ 下已自带 database.sqlite。
# 确认扩展已启用(编辑 $PHP_HOME\\php.ini):
# extension=pdo_sqlite
# extension=sqlite3
# 若前面有分号则去掉,保存后重启环境
# 若文件不存在,创建数据库文件
echo. > database\\database.sqlite# 创建数据库文件(如缺失)
touch database/database.sqlite.env 配置(Laravel 默认即 sqlite):
DB_CONNECTION=sqlite
# DB_DATABASE 指向 database/database.sqlite(默认值,无需修改)
DB_PREFIX=laravel_WARNING
SQLite 仅适合开发与测试。完整初始化数据请导入 document/sqlite/rxthinkcmf.laravel13.naivevue.sql(五种数据库各有专用脚本,按 document/<数据库类型>/ 分组,见 2.5 数据库初始化)。
SQL Server 是微软商业数据库,Windows 下安装 ODBC 驱动后开箱即用。
# 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"# 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"# 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"# 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 配置:
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 是企业级商业数据库,需手动安装 Instant Client 和 pdo_oci 扩展。
# 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# 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# 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 初始化)# 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 常见坑
C:\\oracle\\instantclient_19_20(避免空格与中文);php -m 能看到 pdo_oci 但 phpinfo() 里没有 → Web 服务读取的是启动时的 PATH,完全重启即可。Redis 是必需组件
验证码、JWT 双令牌会话、权限缓存、字典缓存、会话/队列驱动均依赖 Redis。未安装或密码不匹配时,登录、验证码等核心功能将直接不可用。
# 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)# 下载 Redis for Windows
# 访问 https://github.com/tporadowski/redis/releases 下载 .msi 安装包
# 注:该仓库已归档但仍可用;也可使用 Memurai(Redis Windows 兼容方案)
# 安装完成后,Redis 会作为 Windows 服务自动启动
# 验证 Redis 服务
redis-cli ping
# 输出:PONGbrew install redis
brew services start redis
# 验证
redis-cli pingsudo apt install redis-server
sudo systemctl start redis
sudo systemctl enable redis
# 验证
redis-cli ping
# 输出:PONGsudo dnf install redis
sudo systemctl start redis
sudo systemctl enable redis
# 验证
redis-cli ping设置了 requirepass 时,.env 必须同步配置,缺一不可:
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=你的密码 # Redis 无密码时保持 null
REDIS_PORT=6379改完执行 php artisan config:clear 并重启 Web 服务。连通性单测:
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 安装包
# 访问 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 版本# 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# 安装 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 均配置国内镜像源。
# 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 查看完整配置:
$ 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.0 | UI 组件库 |
pinia | ^2.2.2 | 状态管理 |
vue-router | ^4.4.3 | 路由管理 |
axios | ^1.7.7 | HTTP 请求 |
typescript | ^4.9.5 | 类型系统 |
vite | ^5.4.3 | 构建工具 |
tinymce | 5.10.3 | 富文本编辑器 |
@vueup/vue-quill | 1.0.0-beta.8 | 富文本编辑器(Quill) |
echarts | ^5.5.1 | 图表库 |
tailwindcss | ^3.4.10 | CSS 框架 |
xlsx | ^0.17.5 | Excel 处理 |
@vicons/antd | ^0.10.0 | 图标库 |
date-fns | ^2.30.0 | 日期处理 |
lodash-es | ^4.17.21 | 工具函数库 |
专业的 PHP IDE,内置 Xdebug 调试、Composer 管理、数据库工具。
轻量级编辑器,通过插件支持 PHP 和前端开发。
推荐插件:
| 插件 | 说明 |
|---|---|
| PHP Intelephense | PHP 代码提示 |
| PHP Debug | Xdebug 调试 |
| Laravel Extra Intelephense | Laravel 门面/路由提示 |
| Vue - Official | Vue 3 支持 |
| ESLint | 代码检查 |
| Prettier | 代码格式化 |
| 工具 | 支持数据库 | 说明 |
|---|---|---|
| Navicat | MySQL/PG/Oracle/SQLServer/SQLite | 商业,功能强大 |
| DBeaver | 全部 | 开源免费 |
| phpMyAdmin | MySQL | Web 界面 |
| HeidiSQL | MySQL/PG/SQLServer | Windows 免费 |
前置条件
请先完成 Xdebug 扩展的安装,详见上方「PHP 扩展安装 → 可选扩展 → Xdebug 调试」。
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM1. Settings → PHP → Debug → Xdebug 端口设为 9003
2. Settings → PHP → Servers → 添加 localhost:80
3. 点击电话图标(Start Listening for PHP Debug Connections)
4. 在代码中设置断点
5. 浏览器访问页面,PhpStorm 会自动停在断点处完成以上所有安装后,逐项验证:
# =============================================================================
# 环境验证清单(逐项检查,全部通过即可开始开发)
# =============================================================================
# ─── 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
/**
* 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";