Legacy
...
Passwork 4
How to update Passwork 4→5 ver...
Update for Passwork 4→5 (Docker)
15min
this manual describes how to upgrade passwork from version 4 to version 5 if you are using docker passwork version 5 runs on php 8 0, so in addition to updating the source code, you will also need to configure a new docker image for php fpm 8 💡 we recommend that you make a backup of your system before you start the upgrade table of contents 1\ create copies of container files and settings cp rf /server/docker compose/php fpm /server/docker compose/php8 fpm cp rf /server/conf/php /server/conf/php8 2\ make changes to the configuration files for the container 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 or edit the files manually — find the indicated lines in the files and edit /server/conf/php8/php fpm conf change pid = /var/run/php7 3 fpm pid to pid = /var/run/php8 0 fpm pid change error log = /server/log/php/php7 3 fpm log to error log = /server/log/php/php8 0 fpm log change include=/server/conf/php/ pool to include=/server/conf/php8/ pool /server/conf/php8/prod pool change listen = 0 0 0 0 9000 to listen = 0 0 0 0 9008 3\ make changes to the docker compose configuration files 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 or edit the files manually — add php8 to /server/docker compose/docker compose yaml php8 build /php8 fpm image passwork/php8 fpm container name php8 networks \ passwork — add to /server/docker compose/docker compose yaml nginx build /nginx image passwork/nginx container name nginx networks \ passwork depends on \ "php" \ "php8" # < \ "db" — add to /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\ create a dockerfile for the new container 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\ create and run a container with php 8 0 cd /server/docker compose/ docker compose up d php8 6\ specify a new container for nginx sed i '/server php\\ 9000\\;/c server php8\\ 9008\\;' /server/conf/nginx/prod site restart the nginx and the necessary containers /server/docker nginx reload nginx docker restart nginx docker restart php8 7\ update passwork cd /server/sites/prod/ git config global add safe directory /server/sites/prod git fetch git reset hard origin/v5 git checkout v5 8\ configure background tasks background tasks are jobs that run on the scheduler in the background for example, ldap synchronization, loading favicons, and other tasks that require a lot of time, constant execution, or resource allocation background tasks docid\ pj1ekrpvv2ndjc8hbpacp