学新通技术网

laravel 在执行 php artisan config:cache 命令后网站出现了样式错误及 500错误

Luke 32 1
laravel 在执行 php artisan config:cache 命令后网站出现了样式错误及 500错误

#问题

今天网站更新后,使用了config:cache 缓存配置,网站大范围打不开了,出现了500错误及ENV读取不出来

php artisan config:cache

#原因

我这个情况是因为,PHP使用了opcache 导致的,在更新网站的时候,需要先清理 opcache 的代码缓存, 否者就算使用 config:cache 缓存了新配置, 在PHP的opcache中

缓存的时候就代码,需要先清除。

在运行  php artisan config:cache 后
laravel 会在 bootstrap/cache 文件夹下 会生成一个 config.php 和 route.php 文件
这个文件中包含了 config 文件夹下的所有文件内容 及 .env 配置文件

#解决

正确的执行清理缓存,按照以下方式执行命令即可

php artisan config:clear

正确的部署Laravel优化方式如下

composer dump-autoload --optimize
php artisan route:cache
php artisan view:cache
php artisan config:cache
php artisan optimize

然后清理 opcache 缓存,这有几个注意的地方

1、如 PHP 以 PHP-FPM 的方式运行的时候,opcache的缓存是无法通过php命令进行清除的,只能通过http或cgi到php-fpm进程的方式来清除缓存,我们可以编写一个对外接口,来达到清理缓存的目的。

Route::any('cache-reset', function () {
  //重置整个Opcode缓存
  dd(opcache_reset());
});

2、如果不是用 PHP-FPM, 可以使用如下命令

// opcache:clear 清理缓存
php artisan opcache:clear
// 进行缓存
php artisan opcache:optimize

本文出至:学新通技术网

标签: