在 CentOS 上调试 Laravel,通常从 环境、日志、错误显示、调试工具 四个方面入手。下面给你一套常用且实用的调试流程,适合生产/测试环境。
php -v
composer -V
Laravel 对 PHP 版本有要求(如 Laravel 10 需要 PHP ≥ 8.1)。
.envAPP_ENV=local
APP_DEBUG=true
⚠️ 生产环境不要开 APP_DEBUG=true
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
tail -f storage/logs/laravel.log
常见错误:
chown -R nginx:nginx /var/www/your_project
# 或
chown -R apache:apache /var/www/your_project
chmod -R 755 storage
chmod -R 755 bootstrap/cache
nginx 用
nginxapache 用apache
tail -f /var/log/php-fpm/error.log
或:
journalctl -u php-fpm -f
php --ini
确认:
display_errors = On
log_errors = On
error_reporting = E_ALL
重启 PHP:
systemctl restart php-fpm
tail -f /var/log/nginx/error.log
Nginx + PHP 配置示例:
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
php artisan tinker
DB::connection()->getPdo();
DB_LOG=true
或代码:
\DB::enableQueryLog();
// 执行 SQL
dd(\DB::getQueryLog());
composer require barryvdh/laravel-debugbar --dev
php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
php artisan route:list
php artisan config:show
php artisan migrate --pretend
✅ 是否 APP_DEBUG=true
✅ 是否清缓存
✅ storage/logs/laravel.log
✅ PHP / Nginx / php-fpm 日志
✅ 文件权限
✅ SELinux(下面重点)
如果权限没问题但仍报错:
getenforce
如果是 Enforcing:
临时关闭测试:
setenforce 0
永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
或正确放行:
setsebool -P httpd_read_user_content 1
setsebool -P httpd_unified 1
你可以直接贴出:
php-fpm 日志内容我可以 精准定位问题,一步一步带你修 ✅