Zum Hauptinhalt springen

Alma/Rocky/CentOS

Grundlegende Aktionen

  • Wenn Passwork in einer Cloud-/virtuellen Umgebung installiert ist, erstellen Sie vor der Aktualisierung von PHP einen Snapshot des virtuellen Betriebssystemstatus, um die Funktionalität im Falle einer fehlerhaften Aktualisierung wiederherzustellen;
  • Erhalten Sie root-Berechtigungen und aktualisieren Sie die lokale Paketdatenbank:
sudo -i 
dnf update

PHP entfernen

Entfernen Sie das Hauptpaket, die Treiber und die PHP-Erweiterungen:

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

Entfernen Sie das Verzeichnis mit verschachtelten PHP-Dateien:

rm -rf /etc/php.d

Deaktivieren Sie das PHP-Modul aus dem Remi-Repository:

dnf module disable php:remi-8.2

PHP installieren

Aktivieren Sie das Modul PHP8.3 aus dem Repository Remi:

dnf module enable php:remi-8.3

Installieren Sie PHP und zusätzliche Erweiterungen:

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

Ändern Sie die Menge an RAM, die für die Ausführung von PHP-Skripten verfügbar ist:

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

Es wird empfohlen, den Parameter memory_limit von 256M auf 512M oder höher zu erhöhen, wenn erwartet wird, dass eine große Anzahl von Benutzern Passwork verwenden wird.

PHP MongoDB-Treiber installieren

Installieren Sie den PHP MongoDB-Treiber:

pecl install -f mongodb

Erstellen Sie eine Konfigurationsdatei zum Laden und Aktivieren von PHP MongoDB:

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

Änderung des PHP-Webserver-Handlers in php-fpm

Stellen Sie sicher, dass der Dienst php-fpm ausgeführt wird:

systemctl status php-fpm

Starten Sie den Dienst-Autostart und aktivieren Sie ihn, wenn er gestoppt ist:

systemctl start php-fpm
systemctl enable php-fpm

Bearbeiten Sie den virtuellen Host des Servers Passwork, der für die Arbeit über das Protokoll HTTPS konfiguriert ist:

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

Ändern Sie den Handler der .php-Datei und geben Sie Proxy-Anfragen an den PHP-FPM-Socket an:

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

Überprüfen Sie, ob die Konfigurationsdatei des virtuellen Hosts mit dem Beispiel übereinstimmt:

<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>

Dienste neu starten:

systemctl restart php-fpm
systemctl restart httpd