Когда я обновляю свое приложение laravel 5 с помощью php artisan down && composer update, страница обслуживания не отображается, но появляется ошибка. (упс, что-то пошло не так...)
В логе такая ошибка:
production.ERROR: exception 'ErrorException' with message 'file_put_contents(/var/www/app/vendor/services.json):
failed to open stream: Permission denied' in /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:74
После обновления страница обслуживания снова работает. Когда я смотрю в каталог vendor, я вижу это:
drwxr-xr-x 3 hannes http 4096 4. Feb 17:40 psr
drwxr-xr-x 3 hannes http 4096 17. Mär 18:20 psy
drwxr-xr-x 9 hannes hannes 4096 22. Mär 10:42 sebastian
-rw-r--r-- 1 hannes hannes 10297 22. Mär 10:44 services.json
drwxr-xr-x 3 hannes http 4096 14. Mär 17:32 swiftmailer
drwxr-xr-x 15 hannes http 4096 22. Mär 10:42 symfony
services.json не имеет http как group.
Вот часть scripts моего composer.json:
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php -r \"copy('.env.example', '.env');\"",
"php artisan key:generate"
]
}
Что я могу сделать, чтобы моя страница обслуживания всегда работала во время обновления композитора? Я не понимаю, что там происходит.
composer.lockв своем репозитории, переместите репозиторий в рабочую среду и запустите толькоcomposer install, чтобы установить именно ту версию, которую вы тестировали локально. Тем не менее ожидайте простоя, потому что обновление/установка с помощью композитора удалит части, которые нужны вашей странице обслуживания, перед установкой новых частей и автозагрузчика, которые делают ее доступной. - person Sven   schedule 22.03.2015