6.2 KiB
🔧 故障排查指南
当前问题:PHP 返回 500 错误
问题现象
- 访问 http://127.0.0.1:30100 显示"您所浏览的页面暂时无法访问"
- PHP 服务日志显示
[500]: GET /index/user/index.html
🔍 排查步骤
第一步:运行诊断脚本
访问测试页面:
http://127.0.0.1:30100/test_db.php
这个页面会检查:
- ✅ PHP 版本和扩展
- ✅ 数据库连接
- ✅ 数据表列表
- ✅ ThinkPHP 框架文件
- ✅ Composer 依赖
- ✅ 目录权限
根据测试结果,找出具体问题。
第二步:检查 Composer 依赖
最常见的问题是 Composer 依赖未安装。
检查方法:
cd xunifriend_RaeeC
dir vendor
如果 vendor 目录不存在或为空,需要安装依赖:
cd xunifriend_RaeeC
composer install
如果 composer 很慢,使用国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer install
第三步:检查 PHP 扩展
查看已加载的扩展:
php -m
必需的扩展:
- mysqli
- pdo_mysql
- mbstring
- curl
- openssl
- fileinfo
- json
如果缺少扩展,编辑 php.ini:
- 找到 PHP 安装目录下的
php.ini文件 - 搜索扩展名(如
extension=mysqli) - 删除前面的分号
;取消注释 - 保存文件
- 重启 PHP 服务
第四步:检查数据库连接
测试数据库连接:
mysql -u root -prootx77 -e "USE ai_friend; SELECT COUNT(*) FROM nf_user;"
如果连接失败:
-
检查 MySQL 服务是否运行
net start MySQL80 -
检查密码是否正确
mysql -u root -prootx77 -
检查数据库是否存在
SHOW DATABASES; -
如果数据库不存在,创建它
CREATE DATABASE ai_friend CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
第五步:检查目录权限
确保以下目录可写:
xunifriend_RaeeC/runtime/
xunifriend_RaeeC/runtime/cache/
xunifriend_RaeeC/runtime/log/
xunifriend_RaeeC/public/uploads/
Windows 下通常不需要特殊设置,但可以检查:
- 右键点击目录
- 选择"属性"
- 取消"只读"属性(如果勾选了)
第六步:查看 PHP 错误日志
查看 ThinkPHP 日志:
xunifriend_RaeeC/runtime/log/
打开最新的日志文件,查看错误信息。
常见错误及解决方法:
错误 1: Class 'think\App' not found
原因: Composer 依赖未安装 解决:
cd xunifriend_RaeeC
composer install
错误 2: SQLSTATE[HY000] [2002] Connection refused
原因: 数据库连接失败 解决:
- 检查 MySQL 服务是否运行
- 检查
.env文件中的数据库配置 - 测试数据库连接
错误 3: SQLSTATE[42S02]: Base table or view not found
原因: 数据表不存在 解决:
- 确认数据库已导入
- 检查表前缀是否正确(nf_)
错误 4: Call to undefined function mysqli_connect()
原因: mysqli 扩展未启用 解决:
- 编辑 php.ini
- 取消注释
extension=mysqli - 重启 PHP 服务
🛠️ 快速修复方案
方案 1:重新安装 Composer 依赖
cd xunifriend_RaeeC
rmdir /s /q vendor
composer install
方案 2:清理缓存
cd xunifriend_RaeeC
rmdir /s /q runtime\cache
rmdir /s /q runtime\log
mkdir runtime\cache
mkdir runtime\log
方案 3:重置数据库配置
编辑 xunifriend_RaeeC/.env,确保配置正确:
[database]
type = mysql
hostname = localhost
database = ai_friend
username = root
password = rootx77
hostport = 3306
charset = utf8mb4
prefix = nf_
debug = true
方案 4:使用简化的测试页面
访问:http://127.0.0.1:30100/test.php
查看是否能正常访问 PHP。
📋 完整检查清单
按顺序检查以下项目:
PHP 环境
- PHP 版本 >= 8.0
- php.ini 已配置
- 必需扩展已启用
- PHP 可以正常运行
Composer 依赖
- Composer 已安装
- vendor 目录存在
- 依赖包已安装完整
数据库
- MySQL 服务运行中
- 数据库 ai_friend 存在
- 用户名密码正确
- 数据表已导入(30+ 张表)
- 表前缀为 nf_
配置文件
- xunifriend_RaeeC/.env 存在
- 数据库配置正确
- 字符集为 utf8mb4
目录权限
- runtime 目录可写
- runtime/cache 目录可写
- runtime/log 目录可写
- public/uploads 目录可写
ThinkPHP 框架
- thinkphp 目录存在
- application 目录存在
- install.lock 文件存在
🔄 重启服务
修改配置后,需要重启 PHP 服务:
- 在 PHP 服务窗口按
Ctrl+C停止 - 重新运行启动脚本:
启动项目.bat
或者手动启动:
cd xunifriend_RaeeC\public
php -S 0.0.0.0:30100 router.php
📞 仍然无法解决?
1. 查看详细错误信息
在 xunifriend_RaeeC/.env 中启用调试模式:
app_debug = true
app_trace = true
重启服务后,错误信息会直接显示在浏览器中。
2. 查看日志文件
xunifriend_RaeeC/runtime/log/
打开最新的日志文件,查找错误堆栈。
3. 使用测试脚本
访问:http://127.0.0.1:30100/test_db.php
查看详细的环境检查结果。
4. 检查端口占用
netstat -ano | findstr :30100
如果端口被占用,终止进程或更换端口。
✅ 成功标志
当以下条件都满足时,说明 PHP 后台已正常运行:
- ✅ 访问 http://127.0.0.1:30100 不再显示 500 错误
- ✅ 访问 http://127.0.0.1:30100/test_db.php 显示所有检查通过
- ✅ PHP 服务日志显示
[200]状态码 - ✅ 可以访问管理后台 http://127.0.0.1:30100/admin
🎯 下一步
PHP 后台正常运行后:
-
测试 Python 后端 访问:http://127.0.0.1:30101/docs
-
测试 API 接口 在 API 文档中测试各个接口
-
访问管理后台 http://127.0.0.1:30100/admin
-
开始开发 根据需求修改代码
记住:大多数 500 错误都是因为 Composer 依赖未安装!
先运行 composer install,90% 的问题都能解决。