Plesk主机部署Laravel 10+PHP 8.2时随机出现404及默认错误页求助
排查Laravel 10生产环境随机异常的解决方案
以下是针对你遇到的随机页面异常、404及默认错误页问题的排查方向:
1. 清理Laravel应用缓存
生产环境部署后未清理缓存会导致配置、路由等数据不一致,引发随机异常。执行以下命令:
php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear
如果之前生成过路由缓存(route:cache),确认所有路由配置无误后,再重新生成路由缓存。
2. 检查PHP OPcache配置
OPcache缓存的旧脚本可能导致随机执行异常,检查php.ini中的OPcache配置:
- 确保
opcache.validate_timestamps = 1,让OPcache定期检查文件更新 - 调整
opcache.revalidate_freq = 60(可根据实际情况调整时间,单位秒) - 重启PHP服务(如
systemctl restart php8.2-fpm)使配置生效
3. 修复文件权限问题
Laravel的storage和bootstrap/cache目录需要正确的读写权限,否则会随机出现写入失败(如日志、缓存写入):
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache # 替换为你的web服务器用户组
4. 排查服务器进程与负载均衡配置
- 如果使用PHP-FPM,检查
php-fpm.conf中的pm.max_children、pm.start_servers等参数,确保进程数足够处理并发请求,避免请求被丢弃 - 若使用负载均衡,开启粘性会话(Sticky Session),确保同一用户的请求始终分发到同一后端服务器,避免会话数据不一致
5. 验证静态资源缓存策略
浏览器或CDN的静态资源缓存过期设置不当,会导致旧资源加载异常。检查Nginx配置中的静态资源缓存规则:
location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ { expires 1y; add_header Cache-Control "public, immutable"; }
同时确保Laravel Mix生成的资源带有版本号(mix.version()),避免浏览器缓存旧资源。
内容的提问来源于stack exchange,提问作者Eteka Wilfried
相关产品推荐
相关产品推荐

