在 Ubuntu 上运行 ThinkPHP 报错的原因有很多,常见问题和对应解决思路如下(你可以对照看是哪一种):
ThinkPHP 不同版本对 PHP 要求不同:
检查:
php -v
解决:
sudo apt install php8.1 php8.1-cli php8.1-fpm
常见缺少扩展:
mbstringxmlcurlgdsqlite3 / pdo_mysql检查:
php -m
安装:
sudo apt install php-mbstring php-xml php-curl php-gd php-mysql
Ubuntu 下 runtime、storage 目录必须有写权限。
报错示例:
failed to open stream: Permission denied
解决:
sudo chown -R www-data:www-data /var/www/yourproject
sudo chmod -R 755 /var/www/yourproject
sudo chmod -R 777 runtime
使用 Apache/Nginx 时未配置重写。
Apache:
sudo a2enmod rewrite
并允许 .htaccess:
AllowOverride All
Nginx 示例:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
composer -V
安装:
sudo apt install composer
ThinkPHP 必须访问 public/index.php
❌ 错误:
http://ip/thinkphp/
✅ 正确:
http://ip/public/
tail -f runtime/log/*.log
或临时开启调试(.env):
APP_DEBUG = true
为了更准确帮你,请提供:
我可以按你的环境一步步帮你解决。