# 2.1 开发环境准备 :::tip 概述 本章指导您从零搭建开发环境,包括 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 ``` :::tip Windows 用户推荐 Windows 环境推荐直接使用 **Laragon 集成安装**(Apache + PHP 8.3 + MySQL + Redis 一体),并参考 [2.2 Laragon 环境搭建](/zh/quickstart/laragon.html) 完成 phpredis 扩展与虚拟主机配置,可跳过本章大部分手动安装步骤。 ::: ## PHP 安装 :::warning 版本要求 项目要求 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 环境搭建](/zh/quickstart/laragon.html)。 ### 方式二:XAMPP XAMPP 是集成了 Apache + MySQL + PHP 的一键安装包,适合快速搭建开发环境。 ::: code-group ```sh [Windows] # 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 [macOS] # 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" ``` ::: ### 方式三:包管理器安装 ::: code-group ```sh [Ubuntu / Debian] # 添加 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 [Rocky Linux / AlmaLinux] # 启用 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 [CentOS / RHEL] # 启用 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 [macOS (Homebrew)] # 安装 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_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 扩展」 | ### 数据库扩展(按需安装) ::: code-group ```sh [MySQL] # 大多数安装方式已包含 # 如缺失: sudo apt install php8.3-mysql # Ubuntu sudo dnf install php-mysqlnd # Rocky Linux ``` ```sh [PostgreSQL] 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 [SQLite] sudo apt install php8.3-sqlite3 # Ubuntu sudo dnf install php-sqlite3 # Rocky Linux ``` ```sh [SQL Server] # 安装 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] # 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`。 ::: code-group ```sh [Windows (Laragon / XAMPP)] # 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 [Linux / macOS] # 通过 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 ``` ::: ### 可选扩展 ::: code-group ```sh [Xdebug 调试] # 仅开发环境安装 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 [OPcache 加速] # 通常已随 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" ``` :::warning 扩展缺失会导致启动失败 如果上述命令输出为空,说明扩展未安装。最常见缺失是 `pdo_mysql`、`gd` 和 `redis`——`redis` 缺失会导致验证码、登录等核心功能直接不可用。 ::: ## Composer 安装 ::: code-group ```sh [Windows] # 下载 Composer 安装器 # 访问 https://getcomposer.org/Composer-Setup.exe # 运行安装程序,按提示完成安装 # 安装过程中会自动检测 PHP 路径 # 打开新的命令行窗口,验证 composer -V # 配置中国镜像(可选) composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` ```sh [Linux / macOS] # 下载安装脚本 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.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 扩展 | ::: tip 新手推荐 Laragon / XAMPP 已集成 MySQL 数据库服务,安装后无需再单独安装数据库。 ::: ### MySQL 数据库 MySQL 是项目默认推荐的关系型数据库,集成环境已自带,开箱即用。 ::: code-group ```sh [Windows (Laragon)] # 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.elevue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ``` ```sh [macOS] brew install mysql brew services start mysql sudo mysql_secure_installation # 创建数据库 mysql -u root -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.elevue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ``` ```sh [Ubuntu / Debian] 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.elevue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ``` ```sh [Rocky Linux / CentOS] 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.elevue\` 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.elevue DB_USERNAME=root DB_PASSWORD=root DB_PREFIX=laravel_ ``` ### PostgreSQL 数据库 PostgreSQL 功能强大,支持 JSONB、全文检索等高级特性,需单独安装。 ::: code-group ```sh [Windows] # 安装 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.elevue\" OWNER postgres ENCODING 'UTF8';" ``` ```sh [macOS] 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.elevue\" OWNER postgres ENCODING 'UTF8';" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \"rxthinkcmf.laravel13.elevue\" TO postgres;" ``` ```sh [Ubuntu / Debian] 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.elevue\" OWNER postgres ENCODING 'UTF8';" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \"rxthinkcmf.laravel13.elevue\" TO postgres;" ``` ```sh [Rocky Linux / CentOS] 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.elevue\" OWNER postgres ENCODING 'UTF8';" ``` ::: `.env` 配置: ```ini DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=rxthinkcmf.laravel13.elevue DB_USERNAME=postgres DB_PASSWORD=root DB_PREFIX=laravel_ ``` ### SQLite 数据库 SQLite 无需安装数据库服务器,数据存储在单个文件中,适合开发环境和单元测试。项目根目录 `database/` 下已自带 `database.sqlite`。 ::: code-group ```sh [Windows] # 确认扩展已启用(编辑 $PHP_HOME\php.ini): # extension=pdo_sqlite # extension=sqlite3 # 若前面有分号则去掉,保存后重启环境 # 若文件不存在,创建数据库文件 echo. > database\database.sqlite ``` ```sh [macOS / Linux] # 创建数据库文件(如缺失) 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.elevue.sql`(五种数据库各有专用脚本,按 `document/<数据库类型>/` 分组,见 [2.5 数据库初始化](/zh/quickstart/database-init.html))。 ::: ### SQL Server 数据库 SQL Server 是微软商业数据库,Windows 下安装 ODBC 驱动后开箱即用。 ::: code-group ```sh [Windows] # 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.elevue] COLLATE Chinese_PRC_CI_AS" ``` ```sh [macOS] # 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.elevue] COLLATE Chinese_PRC_CI_AS" ``` ```sh [Ubuntu / Debian] # 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.elevue] COLLATE Chinese_PRC_CI_AS" ``` ```sh [Rocky Linux / CentOS] # 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.elevue] COLLATE Chinese_PRC_CI_AS" ``` ::: `.env` 配置: ```ini DB_CONNECTION=sqlsrv DB_HOST=127.0.0.1 DB_PORT=1433 DB_DATABASE=rxthinkcmf.laravel13.elevue DB_USERNAME=sa DB_PASSWORD=root DB_PREFIX=laravel_ ``` ### Oracle 数据库 Oracle 是企业级商业数据库,需手动安装 Instant Client 和 pdo_oci 扩展。 ::: code-group ```sh [Windows] # 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.elevue # DB_USERNAME=root # DB_PASSWORD=root ``` ```sh [macOS] # 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 [Ubuntu / Debian] # 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 [Rocky Linux / CentOS] # 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 初始化) ``` ::: :::warning Oracle 常见坑 - Instant Client 必须解压到**固定路径**(PATH 写的是绝对路径,移动/改名会导致加载失败),推荐 `C:\oracle\instantclient_19_20`(避免空格与中文); - 必须安装 VC++ 2015-2022 Redistributable(x64); - PATH 修改发生在 Web 服务启动**之后**时,需完全重启 Web 服务才会生效; - 命令行 `php -m` 能看到 pdo_oci 但 phpinfo() 里没有 → Web 服务读取的是启动时的 PATH,完全重启即可。 ::: ## Redis 安装(必需) :::danger Redis 是必需组件 验证码、JWT 双令牌会话、权限缓存、字典缓存、会话/队列驱动均依赖 Redis。未安装或密码不匹配时,登录、验证码等核心功能将直接不可用。 ::: ::: code-group ```sh [Windows (Laragon)] # 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 [Windows (独立安装)] # 下载 Redis for Windows # 访问 https://github.com/tporadowski/redis/releases 下载 .msi 安装包 # 注:该仓库已归档但仍可用;也可使用 Memurai(Redis Windows 兼容方案) # 安装完成后,Redis 会作为 Windows 服务自动启动 # 验证 Redis 服务 redis-cli ping # 输出:PONG ``` ```sh [macOS] brew install redis brew services start redis # 验证 redis-cli ping ``` ```sh [Ubuntu / Debian] sudo apt install redis-server sudo systemctl start redis sudo systemctl enable redis # 验证 redis-cli ping # 输出:PONG ``` ```sh [Rocky Linux / CentOS] 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 安装 :::code-group ```sh [Windows (直接安装)] # 下载 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 [Windows (nvm-windows)] # 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 [Linux / macOS (nvm)] # 安装 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 ``` ::: :::tip 镜像配置 如果安装依赖速度较慢,建议为 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 ``` ### 前端依赖清单 进入前端仓库执行 `pnpm install` 后会安装以下核心依赖: | 依赖 | 版本 | 说明 | |------|------|------| | `vue` | ^3.4.27 | 核心框架 | | `element-plus` | ^2.7.4 | UI 组件库 | | `pinia` | ^2.1.7 | 状态管理 | | `vue-router` | ^4.3.2 | 路由管理 | | `axios` | ^0.27.2 | HTTP 请求 | | `typescript` | ^4.9.5 | 类型系统 | | `vite` | ^3.2.10 | 构建工具 | | `tinymce` | 5.10.3 | 富文本编辑器 | | `echarts` | ^5.5.0 | 图表库 | | `tailwindcss` | ^3.4.3 | CSS 框架 | | `xlsx` | ^0.18.5 | Excel 处理 | | `@element-plus/icons-vue` | ^2.3.1 | Element Plus 图标 | | `dayjs` | ^1.11.11 | 日期处理 | | `lodash` | ^4.17.21 | 工具函数库 | ## 开发工具推荐 ### PhpStorm 专业的 PHP IDE,内置 Xdebug 调试、Composer 管理、数据库工具。 - 下载:https://www.jetbrains.com/phpstorm/ - 推荐插件:Laravel、Vue.js ### VS Code 轻量级编辑器,通过插件支持 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 配置(PhpStorm) ::: tip 前置条件 请先完成 Xdebug 扩展的安装,详见上方「PHP 扩展安装 → 可选扩展 → Xdebug 调试」。 ::: ::: code-group ```ini [php.ini 配置] [xdebug] zend_extension=xdebug xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port=9003 xdebug.idekey=PHPSTORM ``` ```text [PhpStorm 配置步骤] 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 表示扩展已加载 ``` ::: tip 全部通过? 如果以上命令均正常输出,说明环境搭建成功,可以进入项目启动阶段(见 [2.3 后端服务启动](/zh/quickstart/backend-start.html))。 ::: ### 一键环境检查脚本 将以下脚本保存为项目根目录的 `check_env.php`,运行 `php check_env.php` 即可一次性检查所有环境: ```php = 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"; ```