Saltar al contenido principal

ubuntu

Acciones básicas

  • Antes de actualizar PHP, si Passwork está instalado en un entorno virtual/de nube, cree una instantánea del estado del sistema operativo virtual para restaurar la funcionalidad en caso de una actualización incorrecta;
  • Obtenga privilegios root y actualice la base de datos del paquete local:
sudo -i 
apt-get update

Eliminando PHP

Determine la versión de PHP:

php -v
peligro

Dependiendo de la versión de PHP utilizada (8.0 u 8.2), utilice los siguientes comandos para eliminar la versión desactualizada.

Deshabilite el módulo para el servidor web Apache2:

a2dismod php8.2

Elimine el paquete principal, los controladores y las extensiones de PHP:

apt-get remove -y php8.2 php8.2-*

Elimine el directorio con archivos PHP anidados:

rm -rf /etc/php/8.2

Instalando PHP

Instale PHP y módulos de extensión:

apt install -y php8.3-cli php8.3-bcmath php8.3-fpm php8.3-curl php8.3-gd php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-soap php8.3-zip php8.3-sqlite3 php8.3-xml php8.3-dev php-pear

Cambie la cantidad de RAM disponible para ejecutar scripts PHP:

sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/php.ini
aviso

Se recomienda aumentar el parámetro memory_limit de 256M a 512M o superior si se espera que una gran cantidad de usuarios utilicen Passwork.

Instalación del controlador PHP MongoDB

Instale el controlador PHP MongoDB:

pecl install -f mongodb

Cree archivos de configuración para cargar y habilitar PHP MongoDB:

echo "extension=mongodb.so" | tee /etc/php/8.3/fpm/conf.d/20-mongodb.ini
echo "extension=mongodb.so" | tee /etc/php/8.3/cli/conf.d/20-mongodb.ini

Fuerce la habilitación de PHP para Apache2 y cambie la versión alternativa para archivos ejecutables:

update-alternatives --set php /usr/bin/php8.3
update-alternatives --set phar /usr/bin/phar8.3
update-alternatives --set phar.phar /usr/bin/phar.phar8.3

Cambiar el controlador PHP del servidor web a php-fpm

Asegúrese de que el servicio php8.3-fpm esté ejecutándose:

systemctl status php8.3-fpm

Inicie y habilite el inicio automático del servicio si está detenido:

systemctl start php8.3-fpm
systemctl enable php8.3-fpm

Edite el host virtual del servidor Passwork configurado para funcionar sobre HTTPS:

nano /etc/apache2/sites-enabled/default-ssl.conf

Cambie el controlador del archivo .php especificando solicitudes de proxy al socket php-fpm:

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>

Compruebe que el archivo de configuración del host virtual coincida con el ejemplo:

<VirtualHost *:443>
ServerName passwork:443
DocumentRoot /var/www/public

<Directory /var/www/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>

Habilite módulos y reinicie servicios:

a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2