Я совершенно новичок в laravel и концепции CI / CD. Но я потратил последние 24 часа, чтобы что-то заработало. На самом деле я использую gitlab.com в качестве репо. Там я настроил функциональность CI / CD.
Развертывания должны быть выполнены на SRV1
, который настроил соответствующего пользователя с сертификатом. SRV1
должен затем клонировать необходимые файлы из репозитория gitlab с помощью deployer. В репозитории gitlab также есть ключ publi c от пользователя SRV1
. Эта цепочка работает довольно хорошо.
Проблема в том, что после развертывания мне нужно перезапустить php -fpm, чтобы он мог повторно инициализировать свои символические ссылки и обновлять кэш абсолютного пути.
Я видел различные методы, чтобы преодолеть это путем установки некоторых настроек cgi в php -fpm. Но у меня это не сработало, поскольку все они используют nginx, а я использую apache.
Есть ли другой способ сообщить php -fpm с apache о повторной инициализации его путей или перезагрузке после изменений? Метод добавления пользователя-развертывателя в список sudoers и вызова перезапуска службы php -fpm выглядит довольно хакерским для меня ...
Спасибо
UPDATE1:
На самом деле я нашел это: https://github.com/lorisleiva/laravel-deployer/blob/master/docs/how-to-reload-fpm.md
Похоже, что у развертывателя есть какая-то техника для этого. Но для этого требуется, чтобы у пользователя развертывания был доступ к перезагрузке php -fpm. Выглядит немного небезопасно для меня.
Я не нашел других решений. nginx есть что сказать nginx, чтобы он всегда переоценивал реальный путь. Очевидно, для Apache это должно быть «followSymLink», но оно не работало.
На самом деле я создал bash скрипт, который работает под root. этот скрипт всегда проверяет наличие изменений в «текущей» символической ссылке каждые 10 секунд. если было изменение -> перезагрузить php -fpm. Не приятно, конечно, довольно некрасиво, но должно работать.
По-прежнему открыты для других предложений.