在 Linux 下运行 ThinkPHP 报错 的原因很多,常见情况如下,你可以对照排查:
ThinkPHP 需要写日志、缓存、运行时文件。
报错示例:
failed to open stream: Permission deniedruntime/xxx 不可写解决方法:
chmod -R 755 runtime
chmod -R 755 storage
chown -R www:www runtime
(nginx/apache 用户通常是 www 或 www-data)
报错:
404 Not Found解决(Nginx 示例):
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
Apache 需开启 mod_rewrite,并确认有 .htaccess
报错:
syntax errorunexpected ]Your requirements could not be resolved检查:
php -v
常见缺失扩展:
mbstringpdo_mysqlopensslfileinfogd安装示例(CentOS):
yum install php-mbstring php-pdo php-gd
报错:
Class not foundvendor/autoload.php not found解决:
composer install
database.php 写错.env 不存在或格式错误检查:
cp .env.example .env
看真实错误:
runtime/log/
或开启调试:
// .env
APP_DEBUG = true
把 完整报错信息 或 截图文字 发出来,例如:
ThinkPHP 6 + Nginx,访问报错:xxx
我可以直接告诉你 是哪一行、怎么改 ✅