1. 开启调试模式
在Linux环境下调试Laravel的第一步是开启调试模式,这能确保所有错误和异常被捕获并显示详细信息。修改项目根目录下的.env
文件,将APP_DEBUG
设置为true
(开发环境使用,生产环境务必设为false
)。
2. 查看与分析日志文件
Laravel使用Monolog库记录日志,默认存储在storage/logs/laravel.log
中。通过Linux命令行工具可高效查看日志:
tail -f storage/logs/laravel.log
(按Ctrl+C
退出);grep '2025-09-20' storage/logs/laravel.log
(替换为所需日期);grep 'error' storage/logs/laravel.log
(过滤错误信息);php artisan log:clear
(定期执行避免日志堆积)。3. 使用调试工具增强排查能力
composer require barryvdh/laravel-debugbar --dev
(仅开发环境使用)。composer require laravel/telescope --dev
,然后运行php artisan telescope:install
初始化,访问/telescope
查看调试信息。php artisan tinker
,常用功能:dump($variable)
(输出变量值)、dd($variable)
(输出并终止脚本)、DB::listen()
(监听数据库查询)。4. 配置Xdebug进行断点调试
Xdebug是PHP扩展,可与IDE(如PhpStorm、VSCode)配合实现断点调试。安装步骤:
sudo pecl install xdebug
(CentOS/Debian均适用);php.ini
文件(路径可通过php --ini
查看),添加以下配置:zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
sudo systemctl restart php-fpm
(或nginx/apache2
);5. 优化数据库查询调试
数据库问题是常见的错误来源,可通过以下方式调试:
DB::enableQueryLog()
,执行操作后通过dd(DB::getQueryLog())
查看所有查询;config/database.php
中设置'log' => true
(不推荐生产环境使用)。6. 配置Web服务器正确处理请求
确保Nginx/Apache正确指向Laravel项目的public
目录,避免路由错误:
server {
listen 80;
server_name your_domain_or_IP;
root /path/to/your/laravel-project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
<VirtualHost *:80>
ServerName your_domain_or_IP
DocumentRoot /path/to/your/laravel-project/public
<Directory /path/to/your/laravel-project/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
修改后重启Web服务器:sudo systemctl restart nginx
(或apache2
)。7. 设置文件权限
确保Laravel的关键目录具有正确的写入权限,避免因权限问题导致错误:
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data /path/to/your/laravel-project # 根据Web服务器用户调整(如nginx为www-data,apache为apache)
```。