Files
easygoadmin-wiki/EasyGoAdmin_Iris_Layui/zh/quickstart/environment.md
T
2026-10-20 21:19:44 +08:00

1085 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2.1 开发环境准备
:::tip 概述
本章指导您从零搭建开发环境,包括 PHP、Composer、数据库、Node.js 的安装与配置。项目支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite 五种数据库。
:::
## 安装流程总览
```mermaid
graph TD
A[开始] --> B[安装 PHP 8.2]
B --> C[安装 Composer]
C --> D{选择数据库}
D --> D1[MySQL]
D --> D2[PostgreSQL]
D --> D3[SQLite]
D --> D4[SQL Server]
D --> D5[Oracle]
D1 --> E[安装 Node.js / pnpm]
D2 --> E
D3 --> E
D4 --> E
D5 --> E
E --> F[配置开发工具]
F --> G[环境就绪 ✅]
style A fill:#e8f5e9
style G fill:#e8f5e9
style D fill:#fff3e0
```
## PHP 安装
:::warning 版本要求
项目要求 PHP >= 8.2,推荐使用 8.2.x 稳定版。
:::
### 方式一:XAMPP(推荐新手)
XAMPP 是集成了 Apache + MySQL + PHP 的一键安装包,适合快速搭建开发环境。
::: code-group
```sh [Windows]
# 1. 下载 XAMPP
# 访问 https://www.apachefriends.org/download.html
# 选择 PHP 8.2 版本下载
# 2. 安装完成后,将 PHP 添加到系统 PATH(永久生效)
# 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
# 在「系统变量」中找到 Path → 编辑 → 新建
# 添加 XAMPP 的 PHP 路径,例如:
# C:\xampp8.2\php
# 确定保存后,打开新的命令行窗口使生效
# 临时生效(仅当前窗口):
set PATH=%PATH%;C:\xampp8.2\php
# 3. 验证安装
php -v
# 输出:PHP 8.2.x (cli) ...
# 4. 验证扩展
php -m | findstr "pdo_mysql mbstring gd"
```
```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"
```
:::
### 方式二:包管理器安装
::: code-group
```sh [Ubuntu / Debian]
# 添加 PHP 官方仓库(获取最新版本)
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
# 安装 PHP 8.2 及常用扩展
sudo apt install -y \
php8.2 \
php8.2-fpm \
php8.2-mysql \
php8.2-pgsql \
php8.2-sqlite3 \
php8.2-mbstring \
php8.2-xml \
php8.2-curl \
php8.2-gd \
php8.2-zip \
php8.2-bcmath \
php8.2-intl \
php8.2-opcache
# 验证安装
php -v
# 验证扩展
php -m | grep -E "pdo_mysql|pdo_pgsql|pdo_sqlite|mbstring|gd"
```
```sh [Rocky Linux / AlmaLinux]
# 启用 Remi 仓库(提供 PHP 8.2)
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# 启用 PHP 8.2 模块
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.2 -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.2
sudo yum module reset php -y
sudo yum module enable php:remi-8.2 -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.2
brew install php@8.2
# 切换到 8.2 版本
brew link php@8.2 --force
# 验证安装
php -v
# 安装可选扩展(如 gd)
brew install php-gd
```
:::
## PHP 扩展安装
### 必需扩展
| 扩展 | 用途 | 安装命令 |
|------|------|----------|
| `pdo_mysql` | MySQL 数据库驱动 | 已随 php-mysql 安装 |
| `mbstring` | 多字节字符串处理 | 已随 PHP 安装 |
| `json` | JSON 编解码 | PHP 8.2 自带 |
| `openssl` | JWT 签名 / HTTPS | PHP 8.2 自带 |
| `fileinfo` | 文件 MIME 类型检测 | PHP 8.2 自带 |
| `gd` | 图片验证码生成 | 已随 php-gd 安装 |
### 数据库扩展(按需安装)
::: code-group
```sh [MySQL]
# 大多数安装方式已包含
# 如缺失:
sudo apt install php8.2-mysql # Ubuntu
sudo dnf install php-mysqlnd # Rocky Linux
```
```sh [PostgreSQL]
sudo apt install php8.2-pgsql # Ubuntu
sudo dnf install php-pgsql # Rocky Linux
```
```sh [SQLite]
sudo apt install php8.2-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.2/mods-available/pdo_sqlsrv.ini
sudo phpenmod pdo_sqlsrv
```
```sh [Oracle]
# ThinkPHP 的 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.2/mods-available/pdo_oci.ini
sudo phpenmod pdo_oci
# Windows / XAMPP:XAMPP 8.2 已自带 php_pdo_oci.dll,只需在 php.ini 中启用
# 编辑 D:\xampp8.2\php\php.ini,去掉以下行前面的分号:
# ;extension=pdo_oci
# 改为:
# extension=pdo_oci
# 同时需要安装 Oracle Instant Client 并配置系统 PATH
# 详见下方「数据库安装 → Oracle」章节
```
:::
### 可选扩展
::: code-group
```sh [Redis 缓存]
# 通过 PECL 安装
sudo pecl install redis
# 启用扩展
echo "extension=redis.so" | sudo tee /etc/php/8.2/mods-available/redis.ini
sudo phpenmod redis
# 验证
php -m | grep redis
```
```sh [Xdebug 调试]
# 仅开发环境安装
sudo pecl install xdebug
# 配置 php.ini
echo "[xdebug]" | sudo tee -a /etc/php/8.2/cli/php.ini
echo "zend_extension=xdebug" | sudo tee -a /etc/php/8.2/cli/php.ini
echo "xdebug.mode=debug" | sudo tee -a /etc/php/8.2/cli/php.ini
echo "xdebug.client_host=127.0.0.1" | sudo tee -a /etc/php/8.2/cli/php.ini
echo "xdebug.client_port=9003" | sudo tee -a /etc/php/8.2/cli/php.ini
```
```sh [OPcache 加速]
# 通常已随 PHP 安装,只需在 php.ini 中启用
# 生产环境必须启用
sudo sed -i 's/;opcache.enable=1/opcache.enable=1/' /etc/php/8.2/fpm/php.ini
```
:::
### 验证所有扩展
```bash
# 检查必需扩展
php -m | grep -E "pdo_mysql|mbstring|json|openssl|fileinfo|gd"
# 检查数据库扩展(按实际使用的数据库)
php -m | grep -E "pdo_mysql|pdo_pgsql|pdo_sqlsrv|pdo_oci|pdo_sqlite"
```
:::warning 扩展缺失会导致启动失败
如果上述命令输出为空,说明扩展未安装。最常见的缺失是 `pdo_mysql` 和 `gd`,缺少任何一个都会导致功能异常。
:::
## 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` 后会安装以下核心依赖:
| 依赖 | 版本 | 说明 |
|------|------|------|
| `topthink/framework` | ^6.1.2 | ThinkPHP 框架 |
| `topthink/think-orm` | ^2.0 | 数据库 ORM |
| `topthink/think-filesystem` | ^1.0 | 文件系统 |
| `firebase/php-jwt` | ^6.4 | JWT 认证 |
| `phpoffice/phpspreadsheet` | ^5.10 | Excel 导入导出 |
开发依赖(`require-dev`):
| 依赖 | 版本 | 说明 |
|------|------|------|
| `symfony/var-dumper` | ^6.0 | 调试变量打印(`dump()` 函数) |
| `topthink/think-trace` | ^1.0 | 调试追踪面板(页面右下角) |
## 数据库安装
项目支持五种数据库,按需选择一种即可。
| 数据库 | 推荐场景 | 难度 | XAMPP 自带 | 说明 |
|--------|---------|------|-----------|------|
| **MySQL** | 日常开发、中小项目 | ⭐ 低 | ✅ 是 | 默认推荐,开箱即用 |
| **PostgreSQL** | 需要 JSONB、全文检索 | ⭐⭐ 中 | ❌ 否 | 功能丰富,需单独安装 |
| **SQLite** | 快速演示、单元测试 | ⭐ 低 | ✅ 是 | 无需数据库服务,零配置 |
| **SQL Server** | 企业 Windows 环境 | ⭐⭐ 中 | 驱动自带 | 需单独安装数据库服务 |
| **Oracle** | 大型企业项目 | ⭐⭐⭐ 高 | 驱动自带 | 需安装 Instant Client |
::: tip 新手推荐
XAMPP 已集成 MySQL 数据库服务,安装 XAMPP 后无需再单独安装数据库。
:::
### MySQL 数据库
MySQL 是项目默认推荐的关系型数据库,XAMPP 已自带,开箱即用。
::: code-group
```sh [Windows]
# XAMPP 已自带 MySQL,无需额外安装
# 在 XAMPP 控制面板启动 MySQL 即可
# 确认扩展已启用(编辑 D:\xampp8.2\php\php.ini):
# extension=pdo_mysql
# 若前面有分号则去掉,保存后重启 XAMPP
# 创建数据库
D:\xampp8.2\mysql\bin\mysql.exe -u root -proot -e "CREATE DATABASE `rxthinkcmf.thinkphp8.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.thinkphp8.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.thinkphp8.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.thinkphp8.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
```
:::
### PostgreSQL 数据库
PostgreSQL 功能强大,支持 JSONB、全文检索等高级特性,需单独安装。
::: code-group
```sh [Windows]
# 安装 PostgreSQL
# 访问 https://www.postgresql.org/download/windows/ 下载安装包
# 安装过程中记住设置的密码
# 确认扩展已启用(编辑 D:\xampp8.2\php\php.ini):
# extension=pdo_pgsql
# extension=pgsql
# 若前面有分号则去掉,保存后重启 XAMPP
# 设置 postgres 密码(首次)
psql -U postgres -c "ALTER USER postgres WITH PASSWORD 'root';"
# 创建数据库
psql -U postgres -c "CREATE DATABASE \"rxthinkcmf.thinkphp8.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.thinkphp8.elevue\" OWNER postgres ENCODING 'UTF8';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \"rxthinkcmf.thinkphp8.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.thinkphp8.elevue\" OWNER postgres ENCODING 'UTF8';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \"rxthinkcmf.thinkphp8.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.thinkphp8.elevue\" OWNER postgres ENCODING 'UTF8';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE \"rxthinkcmf.thinkphp8.elevue\" TO postgres;"
```
:::
### SQLite 数据库
SQLite 无需安装数据库服务器,数据存储在单个文件中,适合开发环境和小型项目。
::: code-group
```sh [Windows]
# XAMPP 已自带 SQLite 扩展,无需额外安装
# 只需创建数据库文件
mkdir D:\xampp\htdocs\runtime
echo. > D:\xampp\htdocs\runtime\database.sqlite
# 确认扩展已启用(编辑 D:\xampp8.2\php\php.ini):
# extension=pdo_sqlite
# extension=sqlite3
# 若前面有分号则去掉,保存后重启 XAMPP
# .env 配置
# DATABASE.TYPE = sqlite
# DATABASE.DATABASE = D:/xampp8.2/htdocs/runtime/database.sqlite
```
```sh [macOS]
brew install php sqlite
# 创建数据库文件
mkdir -p /www/api/runtime
touch /www/api/runtime/database.sqlite
```
```sh [Ubuntu / Debian]
sudo apt install php8.2-sqlite3
# 创建数据库文件
mkdir -p /www/api/runtime
touch /www/api/runtime/database.sqlite
```
```sh [Rocky Linux / CentOS]
sudo dnf install php-sqlite3
# 创建数据库文件
mkdir -p /www/api/runtime
touch /www/api/runtime/database.sqlite
```
:::
### SQL Server 数据库
SQL Server 是微软商业数据库,XAMPP 已自带 pdo_sqlsrv 驱动,Windows 下开箱即用。
::: code-group
```sh [Windows]
# SQL Server 需单独安装(XAMPP 不自带数据库服务,但自带 PHP 驱动)
# 1. 下载安装 SQL Server Express:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads
# 2. XAMPP 已自带 pdo_sqlsrv 扩展,在 php.ini 中启用:
# extension=php_sqlsrv_82_ts_x64.dll
# extension=php_pdo_sqlsrv_82_ts_x64.dll
# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.thinkphp8.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.thinkphp8.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.2/mods-available/pdo_sqlsrv.ini
sudo phpenmod pdo_sqlsrv
# 创建数据库
sqlcmd -S localhost -U sa -P root -Q "CREATE DATABASE [rxthinkcmf.thinkphp8.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.thinkphp8.elevue] COLLATE Chinese_PRC_CI_AS"
```
:::
### Oracle 数据库
Oracle 是企业级商业数据库,需手动安装 Instant Client 和 pdo_oci 扩展。
::: code-group
```sh [Windows]
# XAMPP 已自带 php_pdo_oci.dll,只需安装 Oracle Instant Client 并在 php.ini 中启用
# 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. 启用扩展
# 编辑 D:\xampp8.2\php\php.ini,去掉分号:
# extension=pdo_oci
# 5. 重启 XAMPP(完全关闭再启动)
# .env 配置
# DATABASE.TYPE = oracle
# DATABASE.HOSTNAME = 127.0.0.1
# DATABASE.DATABASE = rxthinkcmf.thinkphp8.elevue
# DATABASE.USERNAME = root
# DATABASE.PASSWORD = root
# DATABASE.HOSTPORT = 1521
```
```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.2/mods-available/pdo_oci.ini
sudo phpenmod pdo_oci
# 4. 创建表空间和用户
sqlplus system/root@localhost:1521/XE <<EOF
CREATE TABLESPACE "rxthinkcmf_thinkphp8_elevue" DATAFILE '/opt/oracle/oradata/XE/rxthinkcmf_thinkphp8_elevue.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER "root" IDENTIFIED BY "root" DEFAULT TABLESPACE "rxthinkcmf_thinkphp8_elevue";
GRANT CONNECT, RESOURCE, CREATE VIEW TO "root";
GRANT UNLIMITED TABLESPACE TO "root";
EXIT;
EOF
```
```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/8.2/mods-available/pdo_oci.ini
sudo phpenmod pdo_oci
# 4. 创建表空间和用户
sqlplus system/root@localhost:1521/XE <<EOF
CREATE TABLESPACE "rxthinkcmf_thinkphp8_elevue" DATAFILE '/opt/oracle/oradata/XE/rxthinkcmf_thinkphp8_elevue.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER "root" IDENTIFIED BY "root" DEFAULT TABLESPACE "rxthinkcmf_thinkphp8_elevue";
GRANT CONNECT, RESOURCE, CREATE VIEW TO "root";
GRANT UNLIMITED TABLESPACE TO "root";
EXIT;
EOF
```
:::
## Redis 安装(可选)
::: code-group
```sh [Windows]
# ─── 1. 安装 Redis 服务端 ──────────────────────────────────
# 下载 Redis for Windows
# 访问 https://github.com/tporadowski/redis/releases 下载 .msi 安装包
# 注:该仓库已归档但仍可用;也可使用 Memurai(Redis Windows 兼容方案)
# 安装完成后,Redis 会作为 Windows 服务自动启动
# 验证 Redis 服务
redis-cli ping
# 输出:PONG
# ─── 2. 启用 PHP Redis 扩展 ────────────────────────────────
# XAMPP 已自带 php_redis.dll(位于 D:\xampp8.2\php\ext\)
# 编辑 D:\xampp8.2\php\php.ini,去掉以下行前面的分号:
# extension=redis
# 若没有该行,则手动添加:
# extension=redis
# 同时建议确认 GD 扩展已启用(验证码功能依赖):
# extension=gd
# 保存后重启 XAMPP
# ─── 3. 验证 ───────────────────────────────────────────────
# 命令行验证扩展已加载
D:\xampp8.2\php\php.exe -m | findstr -i "redis"
# 验证 PHP 可连接 Redis
D:\xampp8.2\php\php.exe -r "var_dump(class_exists('Redis'));"
# 输出:bool(true)
```
```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
```
:::
## Node.js / pnpm 安装
::: code-group
```sh [Windows (直接安装)]
# 下载 Node.js 安装包
# 访问 https://nodejs.org/ 下载 LTS 版本(22.x)
# 运行安装程序,按提示完成安装
# 打开新的命令行窗口,验证
node -v # 查看 Node.js 版本(需 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.x.x
npm -v # 10.x.x
# ─── 3. 安装 pnpm ─────────────────────────────────────────
npm install -g pnpm
# 验证
pnpm -v # 12.x.x
# ─── 4. 常用命令 ──────────────────────────────────────────
# 查看已安装的版本
nvm list
# 切换版本
nvm use 18
# 安装其他版本
nvm install 20
# 卸载版本
nvm uninstall 18
```
```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.x.x
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
```
### 前端依赖清单
运行 `cd ui && 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 | ElementPlus 图标 |
| `dayjs` | ^1.11.11 | 日期处理 |
| `lodash` | ^4.17.21 | 工具函数库 |
## 开发工具推荐
### PhpStorm
专业的 PHP IDE,内置 Xdebug 调试、Composer 管理、数据库工具。
- 下载:https://www.jetbrains.com/phpstorm/
- 推荐插件:ThinkPHP、Vue.js
### VS Code
轻量级编辑器,通过插件支持 PHP 和前端开发。
推荐插件:
| 插件 | 说明 |
|------|------|
| PHP Intelephense | PHP 代码提示 |
| PHP Debug | Xdebug 调试 |
| 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.2
php -m | grep -E "pdo_mysql|mbstring|gd" # 检查必需扩展是否已加载
# ─── 2. Composer 包管理器 ──────────────────────────────────
composer -V # 正常输出版本号即为安装成功
# ─── 3. 数据库连接 ────────────────────────────────────────
# MySQL:查询数据库列表,确认项目数据库存在
mysql -u root -proot -e "SHOW DATABASES;" | grep rxthinkcmf
# ─── 4. Node.js / pnpm ────────────────────────────────────
node -v # 查看版本,需 22+
pnpm -v # 正常输出版本号即为安装成功
# ─── 5. Redis 缓存(可选)────────────────────────────────
redis-cli ping # 输出 PONG 表示 Redis 服务正常
```
::: tip 全部通过?
如果以上命令均正常输出,说明环境搭建成功,可以进入项目启动阶段。
:::
### 一键环境检查脚本
将以下脚本保存为项目根目录的 `check_env.php`,运行 `php check_env.php` 即可一次性检查所有环境:
```php
<?php
/**
* check_env.php — 一键环境检查脚本
* 用法:php check_env.php
* 用途:自动检查 PHP 版本、扩展、Composer 依赖、Node.js 环境是否满足项目要求
*/
// =============================================================================
// 1. PHP 版本检查
// =============================================================================
// PHP_VERSION → 当前 PHP 版本号
// version_compare() → 比较版本号是否 >= 8.2.0
echo "=== PHP 版本检查 ===\n";
echo "PHP Version: " . PHP_VERSION . (version_compare(PHP_VERSION, '8.2.0', '>=') ? " ✓" : " ✗ 需要 8.2+") . "\n";
// =============================================================================
// 2. 必需扩展检查
// =============================================================================
// extension_loaded() → 检查指定扩展是否已加载
echo "\n=== 必需扩展检查 ===\n";
$required = ['pdo_mysql', 'mbstring', 'json', 'openssl', 'fileinfo', 'gd'];
foreach ($required as $ext) {
$loaded = extension_loaded($ext);
echo " $ext: " . ($loaded ? "✓ 已安装" : "✗ 未安装") . "\n";
}
// =============================================================================
// 3. 可选扩展检查
// =============================================================================
echo "\n=== 可选扩展检查 ===\n";
$optional = ['redis', '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. 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";
```