温馨提示×

ubuntu下thinkphp报错咋办

小樊
45
2026-09-07 15:27:49
栏目: 编程语言

在 Ubuntu 下使用 ThinkPHP 报错,通常可以按下面思路一步步排查和解决。我先给你一个通用排查流程,再说常见错误和对策


一、先开启错误显示(最重要)

1. 开发环境一定要开调试

编辑项目根目录的 .env(没有就复制 .env.example):

APP_DEBUG = true

然后清空缓存:

php think clear

不开启 DEBUG,你只会看到空白页或 500,很难定位问题。


二、看日志(非常关键)

ThinkPHP 日志在:

runtime/log/

查看最新日志:

tail -f runtime/log/*.log

常见日志位置:

  • runtime/log/20260101.log
  • runtime/log/cli/

三、常见错误 & 解决办法

1️⃣ 500 / 空白页

原因通常是:

  • PHP 版本不对
  • 文件权限问题
  • 缺少 PHP 扩展

检查 PHP 版本

php -v

ThinkPHP 要求:

  • TP6 → PHP ≥ 7.1
  • TP8 → PHP ≥ 8.0

安装常用扩展

sudo apt install php-cli php-common php-mbstring php-xml php-curl php-mysql php-zip

2️⃣ Permission denied(权限错误)

常见于 runtime 目录

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 runtime
sudo chmod -R 777 runtime

(开发环境可 777,生产环境不建议)


3️⃣ URL 重写失败(404)

如果你用 Nginx

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

如果你用 Apache,确保开启:

sudo a2enmod rewrite

并且项目根目录有 .htaccess


4️⃣ Class not found / 自动加载失败

执行:

composer install
composer dump-autoload

5️⃣ 数据库连不上

检查:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=

测试:

mysql -u root -p

Ubuntu 上 MySQL 可能用 sudo mysql 登录。


四、快速自检清单 ✅

  • [ ] APP_DEBUG = true
  • [ ] 看了 runtime/log
  • [ ] PHP 版本符合要求
  • [ ] composer install 执行过
  • [ ] runtime 有写权限
  • [ ] Web 服务器重写规则正确

五、你可以这样发给我,我能直接帮你定位

把下面信息发我:

  1. ThinkPHP 版本(5 / 6 / 8)
  2. Ubuntu 版本
  3. Web 服务(Nginx / Apache)
  4. 完整报错信息或日志内容

例如:

TP8 + Ubuntu 22.04 + Nginx,报错: Class 'think\facade\Db' not found

我可以直接给你具体改法。

0