Saltar al contenido principal

Alma/Rocky/CentOS

Acciones básicas

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

Eliminando PHP

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

dnf remove -y php php-json php-ldap php-xml php-bcmath php-mbstring php-curl php-phalcon gcc php-pear curl-devel openssl-devel pcre-devel php-devel php-mysql libtool pcre-devel php-pecl-psr

Elimine el directorio con archivos PHP anidados:

rm -rf /etc/php.d

Deshabilite el módulo PHP del repositorio de Remi:

dnf module disable php:remi-8.2

Instalando PHP

Habilite el módulo PHP8.3 desde el repositorio Remi:

dnf module enable php:remi-8.3

Instale PHP y extensiones adicionales:

dnf install -y php-cli php-fpm php-curl php-devel php-pear php-gd php-intl php-ldap php-bcmath php-mbstring php-mysqlnd php-opcache php-pgsql php-soap php-zip php-sqlite3 php-xml

Cambie la cantidad de RAM disponible para ejecutar scripts PHP:

sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/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 un archivo de configuración para cargar y habilitar PHP MongoDB:

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

Cambiando el controlador del servidor web PHP a php-fpm

Asegúrese de que el servicio php-fpm esté ejecutándose:

systemctl status php-fpm

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

systemctl start php-fpm
systemctl enable php-fpm

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

nano /etc/httpd/conf.d/ssl.conf

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

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

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

<VirtualHost _default_:443>

DocumentRoot "/var/www/public"
ServerName passwork:443

<Directory /var/www/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLHonorCipherOrder on
SSLCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite PROFILE=SYSTEM

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

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

BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Reiniciar servicios:

systemctl restart php-fpm
systemctl restart httpd