在 Ubuntu 上运行 ThinkPHP 报错,常见原因主要集中在环境配置和权限上。下面按「最常见的报错类型 → 原因 → 解决办法」给你梳理一下。
ThinkPHP 对 PHP 版本有要求:
✅ 检查:
php -v
❌ 报错示例:
Parse error: syntax error, unexpected ...
✅ 解决:
sudo apt install php7.4
ThinkPHP 常用扩展:
php-common
php-mbstring
php-xml
php-curl
php-mysql
php-zip
php-gd
php-bcmath
✅ 安装:
sudo apt install php-mbstring php-xml php-curl php-mysql php-zip php-gd
报错:
No input file specified
或页面 404
✅ 解决:
sudo a2enmod rewrite
sudo systemctl restart apache2
并在 .htaccess 中存在:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
报错:
404 Not Found
✅ 配置示例:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
ThinkPHP 需要写:
runtime/
storage/
❌ 报错:
failed to open stream: Permission denied
✅ 解决:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 runtime
(Apache 用户通常是 www-data)
✅ 打开:
// .env
APP_DEBUG = true
或:
define('APP_DEBUG', true);
❌ 报错:
Class 'think\App' not found
✅ 解决:
composer install
which php
php -v
Web 和 CLI 版本不一致也会出问题。
php -v
php -m | grep -E 'mbstring|curl|xml'
ls -l runtime
cat .env
你可以直接把 报错信息原文 贴出来(哪怕一行),例如:
我可以一步步帮你定位 ✅