Ubuntu
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:
- shell
sudo -i
apt-get update
PHP entfernen
Bestimmen Sie die PHP-Version:
- shell
php -v
Abhängig von der verwendeten PHP-Version (8.0 oder 8.2) verwenden Sie die folgenden Befehle, um die veraltete Version zu entfernen.
Deaktivieren Sie das Modul für den Apache2-Webserver:
- 8.2
- 8.0
a2dismod php8.2
a2dismod php8.0
Entfernen Sie das Hauptpaket, die Treiber und die PHP-Erweiterungen:
- 8.2
- 8.0
apt-get remove -y php8.2 php8.2-*
apt-get remove -y php8.0 php8.0-*
Entfernen Sie das Verzeichnis mit verschachtelten PHP-Dateien:
- 8.2
- 8.0
rm -rf /etc/php/8.2
rm -rf /etc/php/8.0
PHP installieren
Installieren Sie PHP und Erweiterungsmodule:
- shell
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
Ändern Sie die Menge an RAM, die für die Ausführung von PHP-Skripten verfügbar ist:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/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.
Installation des PHP-MongoDB-Treibers
Installieren Sie den PHP MongoDB-Treiber:
- shell
pecl install -f mongodb
Erstellen Sie Konfigurationsdateien zum Laden und Aktivieren von PHP MongoDB:
- shell
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
Erzwingen Sie die Aktivierung von PHP für Apache2 und wechseln Sie die alternative Version für ausführbare Dateien:
- shell
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
PHP-Handler des Webservers auf php-fpm umstellen
Stellen Sie sicher, dass der Dienst php8.3-fpm ausgeführt wird:
- shell
systemctl status php8.3-fpm
Starten und aktivieren Sie den Autostart des Dienstes, wenn er gestoppt ist:
- shell
systemctl start php8.3-fpm
systemctl enable php8.3-fpm
Bearbeiten Sie den virtuellen Serverhost Passwork, der so konfiguriert ist, dass er über HTTPS funktioniert:
- shell
nano /etc/apache2/sites-enabled/default-ssl.conf
Ändern Sie den .php-Datei-Handler, indem Sie Proxy-Anfragen an den PHP-FPM-Socket angeben:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
Überprüfen Sie, ob die Konfigurationsdatei des virtuellen Hosts mit dem Beispiel übereinstimmt:
- shell
<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>
Module aktivieren und Dienste neu starten:
- shell
a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2