我有一个远程Redis缓存,它关闭了。我尝试通过.env更改配置,然后在服务器上运行php artisan config:cache
以使用不同的服务器。但是这不起作用,导致Predis\Connection\ConnectionException
。我的问题是:为什么它试图连接到redis来更新/缓存配置?我如何在未来防止这种情况?我做错了什么吗?任何帮助都将非常感谢!
发现this thread从6年前与相同的问题.但,不幸的是,没有解决方案.
我有一个远程Redis缓存,它关闭了。我尝试通过.env更改配置,然后在服务器上运行php artisan config:cache
以使用不同的服务器。但是这不起作用,导致Predis\Connection\ConnectionException
。我的问题是:为什么它试图连接到redis来更新/缓存配置?我如何在未来防止这种情况?我做错了什么吗?任何帮助都将非常感谢!
发现this thread从6年前与相同的问题.但,不幸的是,没有解决方案.
1条答案
按热度按时间sdnqo3pr1#
你试过在你的应用配置中禁用该高速缓存吗?否则,只要该高速缓存关闭,你就会看到一个连接异常,因为你已经配置Laravel这样做了(抛出异常)。
您还需要清除 * 所有 * 现有的缓存,因为Laravel会持久化配置,这样运行的应用程序可能无法识别新的设置,因为旧的设置正在使用,直到所有内容都重新加载。
这很容易被忽略,因为所有的措辞都表明配置将通过环境后期注入。但事实并非如此,这种情况发生得很早,需要您“重启”应用程序:
1.运行在Laravel下的应用服务器
1.进程管理器Laravel运行在(如果有的话)
1.删除所有临时文件(或者从工件中重新部署原始副本)
1.从应用程序所处的干净状态配置应用程序。
1.然后再次启动运行Laravel应用的应用服务器。
之所以会这样,是因为这可能有很多(不仅取决于应用程序的配置,还取决于服务器和管理器),因此这个列表可能会显得更长,因为它需要针对您的特定配置,但由于您很难找到罪魁祸首,我认为分享整个过程是很好的。
简短的回答应该是:使用更改后的配置重新部署现有的应用程序修订版。在发现部署过程中的所有间隙(例如过时的缓存)时,修复它们。这将使每次部署更加流畅。