Laravel Forge/Envoyer 自升级到 5.5 后使用旧版本
Laravel Forge/Envoyer using old releases since upgrading to 5.5
自升级到 Laravel 5.5
后,我遇到了非常奇怪的行为,在使用 Envoyer
成功部署后,网站将继续显示旧版本。
current
文件夹已正确设置为最新版本,但站点仍显示旧版本。
如果手动删除旧版本文件夹,或者通过部署足够多次删除,整个站点将崩溃,并显示为:
Warning: include(/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../vlucas/phpdotenv/src/Exception/InvalidPathException.php): failed to open stream: No such file or directory in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(): Failed opening '/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../vlucas/phpdotenv/src/Exception/InvalidPathException.php' for inclusion (include_path='.:/usr/share/php') in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../symfony/debug/Exception/FatalThrowableError.php): failed to open stream: No such file or directory in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(): Failed opening '/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../symfony/debug/Exception/FatalThrowableError.php' for inclusion (include_path='.:/usr/share/php') in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Fatal error: Uncaught Error: Class 'Symfony\Component\Debug\Exception\FatalThrowableError' not found in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:122 Stack trace: #0 /home/forge/sitefoo.com/envoyer/releases/20180130124512/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #1 {main} thrown in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php on line 122
删除旧文件夹后重新启动服务器后,一切都会恢复正常,并且会使用正确的版本。
有没有人知道出了什么问题或如何解决这个问题?
谢谢
根据我的阅读,这似乎与队列侦听器有关,特别是当它不是 运行 作为守护程序时。修复似乎是将 Forge 中的队列处理器设置为守护进程。
另外更改工作配方以在队列重新启动之前清除缓存:
// change php version to yours
sudo service php7.1-fpm reload
// clear cache
php artisan queue:restart
此问题的解决方案是在 Envoyer
中更新服务器的 PHP 版本。
更新到Laravel 5.5
后,服务器也更新到PHP 7.2
。这从未在 Envoyer
服务器的设置中设置,因此导致问题,可能使用旧的 PHP-FPM
版本。
自升级到 Laravel 5.5
后,我遇到了非常奇怪的行为,在使用 Envoyer
成功部署后,网站将继续显示旧版本。
current
文件夹已正确设置为最新版本,但站点仍显示旧版本。
如果手动删除旧版本文件夹,或者通过部署足够多次删除,整个站点将崩溃,并显示为:
Warning: include(/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../vlucas/phpdotenv/src/Exception/InvalidPathException.php): failed to open stream: No such file or directory in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(): Failed opening '/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../vlucas/phpdotenv/src/Exception/InvalidPathException.php' for inclusion (include_path='.:/usr/share/php') in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../symfony/debug/Exception/FatalThrowableError.php): failed to open stream: No such file or directory in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Warning: include(): Failed opening '/home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/../symfony/debug/Exception/FatalThrowableError.php' for inclusion (include_path='.:/usr/share/php') in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/composer/ClassLoader.php on line 444
Fatal error: Uncaught Error: Class 'Symfony\Component\Debug\Exception\FatalThrowableError' not found in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:122 Stack trace: #0 /home/forge/sitefoo.com/envoyer/releases/20180130124512/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #1 {main} thrown in /home/forge/sitefoo.com/envoyer/releases/20180130124512/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php on line 122
删除旧文件夹后重新启动服务器后,一切都会恢复正常,并且会使用正确的版本。
有没有人知道出了什么问题或如何解决这个问题?
谢谢
根据我的阅读,这似乎与队列侦听器有关,特别是当它不是 运行 作为守护程序时。修复似乎是将 Forge 中的队列处理器设置为守护进程。
另外更改工作配方以在队列重新启动之前清除缓存:
// change php version to yours
sudo service php7.1-fpm reload
// clear cache
php artisan queue:restart
此问题的解决方案是在 Envoyer
中更新服务器的 PHP 版本。
更新到Laravel 5.5
后,服务器也更新到PHP 7.2
。这从未在 Envoyer
服务器的设置中设置,因此导致问题,可能使用旧的 PHP-FPM
版本。