Страница обслуживания laravel 5 не работает во время обновления композитора

Когда я обновляю свое приложение 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"
    ]
    }

Что я могу сделать, чтобы моя страница обслуживания всегда работала во время обновления композитора? Я не понимаю, что там происходит.


person haheute    schedule 22.03.2015    source источник
comment
Вы делаете это обновление В ПРОИЗВОДСТВЕ без предварительного тестирования?   -  person Sven    schedule 22.03.2015
comment
сначала локально (арх), а потом на всервере (убунту). Я думаю, это нехорошо.. ..но не знаю, как лучше проверить   -  person haheute    schedule 22.03.2015
comment
Для начала: обновите локально, затем зафиксируйте измененный composer.lock в своем репозитории, переместите репозиторий в рабочую среду и запустите только composer install, чтобы установить именно ту версию, которую вы тестировали локально. Тем не менее ожидайте простоя, потому что обновление/установка с помощью композитора удалит части, которые нужны вашей странице обслуживания, перед установкой новых частей и автозагрузчика, которые делают ее доступной.   -  person Sven    schedule 22.03.2015