Устарело
...
Как обновить Пассворк с 4→5 ве...
Обновление Пассворк 4→5 (Docker)
15 мин
текущая инструкция описывает процесс обновления пассворк с 4 ой до 5 ой версии, если вы используете docker пассворк 5 ой версии работает на php 8 0, поэтому кроме обновления исходного кода также потребуется настроить новый образ для php fpm 8 💡 рекомендуем сделать бекап системы перед началом обновления оглавление 1\ создать копии файлов контейнера и настроек cp rf /server/docker compose/php fpm /server/docker compose/php8 fpm cp rf /server/conf/php /server/conf/php8 2\ внести изменения в файлы настроек для контейнера sed i '/pid = \\/var\\/run\\/php7 3 fpm pid/c pid = \\/var\\/run\\/php8 0 fpm pid' /server/conf/php8/php fpm conf sed i '/error log = \\/server\\/log\\/php\\/php7 3 fpm log/c error log = \\/server\\/log\\/php\\/php8 0 fpm log' /server/conf/php8/php fpm conf sed i '/include=\\/server\\/conf\\/php\\/\\ pool/c include=\\/server\\/conf\\/php8\\/\\ pool' /server/conf/php8/php fpm conf sed i '/listen = 0 0 0 0 9000/c listen = 0 0 0 0 9008' /server/conf/php8/prod pool или отредактируйте файлы вручную найдите в файлах указанные строки и отредактируйте их /server/conf/php8/php fpm conf pid = /var/run/php7 3 fpm pid замените на pid = /var/run/php8 0 fpm pid error log = /server/log/php/php7 3 fpm log замените на error log = /server/log/php/php8 0 fpm log include=/server/conf/php/ pool замените на include=/server/conf/php8/ pool /server/conf/php8/prod pool listen = 0 0 0 0 9000 замените на listen = 0 0 0 0 9008 3\ внести изменения в файлы настроек для контейнера sed i '/postfix / i \\ php8 \\ build \\/php8 fpm \\ image passwork\\/php8 fpm \\ container name php8 \\ networks \\ \ passwork \\ ' /server/docker compose/docker compose yaml sed i '/ "php"/c \ "php8"' /server/docker compose/docker compose yaml sed i '/ postfix / i \\ php8 \\ restart unless stopped \\ volumes \\ \ \\/server\\/conf\\/php8\\/ \\/server\\/conf\\/php8\\/ \\ \ \\/server\\/log\\/ \\/server\\/log\\/ \\ \ \\/server\\/sites\\/ \\/server\\/sites\\/ \\ ' /server/docker compose/docker compose override yml или отредактируйте их вручную \ добавить в /server/docker compose/docker compose yaml php8 build /php8 fpm image passwork/php8 fpm container name php8 networks \ passwork — добавить php8 в / server/docker compose/docker compose yaml nginx build /nginx image passwork/nginx container name nginx networks \ passwork depends on \ "php" \ "php8" # < \ "db" — добавить в /server/docker compose/docker compose override yml php8 restart unless stopped volumes \ /server/conf/php8/ /server/conf/php8/ \ /server/log/ /server/log/ \ /server/sites/ /server/sites/ 4\ создать dockerfile для нового контейнера rm /server/docker compose/php8 fpm/dockerfile nano /server/docker compose/php8 fpm/dockerfile from ubuntu 18 04 maintainer support\@passwork me workdir /server env debian frontend=noninteractive run apt get update \\ && apt get install y software properties common rsyslog pkg config ssmtp git pkg config libbson 1 0 libmongoc 1 0 0 php pear \\ && add apt repository y ppa\ ondrej/php \\ && apt get update \\ && apt get y install y php8 0 cli php8 0 fpm php8 0 common php8 0 curl php8 0 opcache php8 0 readline php8 0 dev php8 0 ldap php8 0 xml php8 0 bcmath php8 0 mbstring \\ && apt get clean \\ && rm rf /var/lib/apt/lists/ \# pear run apt get update && \\ apt get install y php pear \# zip run apt get update && \\ apt get install y zip unzip php8 0 zip run pecl install mongodb \\ && echo "extension=mongodb so" | tee /etc/php/8 0/fpm/conf d/20 mongodb ini \\ && echo "extension=mongodb so" | tee /etc/php/8 0/cli/conf d/20 mongodb ini run git clone b v1 2 0 depth=1 "https //github com/jbboehr/php psr git" \\ && cd php psr \\ && phpize \\ && /configure \\ && make \\ && make test \\ && make install \\ && echo "extension=psr so" | tee /etc/php/8 0/fpm/conf d/20 psr ini \\ && echo "extension=psr so" | tee /etc/php/8 0/cli/conf d/20 psr ini \\ && cd run git clone b v5 0 0beta3 depth=1 "https //github com/phalcon/cphalcon git" \\ && cd cphalcon/build \\ && /install \\ && echo "extension=phalcon so" | tee /etc/php/8 0/fpm/conf d/30 phalcon ini \\ && echo "extension=phalcon so" | tee /etc/php/8 0/cli/conf d/30 phalcon ini run rm /etc/php/8 0/fpm/php ini \\ && rm /etc/php/8 0/fpm/php fpm conf \\ && mkdir p /server/conf/php8/ \\ && touch /server/conf/php8/php fpm conf \\ && touch /server/conf/php8/php ini \\ && ln s /server/conf/php8/php fpm conf /etc/php/8 0/fpm/php fpm conf \\ && ln s /server/conf/php8/php ini /etc/php/8 0/fpm/php ini run sed i 's/mailhub=mail/mailhub=postfix/g' '/etc/ssmtp/ssmtp conf' \\ && sed i 's/#fromlineoverride=yes/fromlineoverride=yes/g' '/etc/ssmtp/ssmtp conf' copy docker entrypoint sh /usr/local/bin/ entrypoint \["docker entrypoint sh"] expose 9008 cmd \["php fpm8 0", " nodaemonize"] 5\ создать и запустить контейнер с php 8 0 cd /server/docker compose/ docker compose up d php8 6\ указываем новый контейнер для nginx sed i '/server php\\ 9000\\;/c server php8\\ 9008\\;' /server/conf/nginx/prod site перезагружаем конфигурацию nginx и необходимые контейнеры docker exec it nginx /server/nginx reload docker restart nginx docker restart php8 7\ обновляем пассворк cd /server/sites/prod/ git config global add safe directory /server/sites/prod git fetch git reset hard origin/v5 git checkout v5 8\ настройка фоновых задач фоновые задачи — это задачи, которые выполняются по планировщику в фоновом режиме например, синхронизация ldap, загрузка фавиконов и другие задачи, которые требует много времени, постоянного выполнения или распределения ресурсов фоновые задачи docid\ kzc80wtyyipbgbgngjvcq