Unser Server ist Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-135-generic x86_64).
Wir sind vor einiger Zeit den Anweisungen von https://tecadmin.net/install-multiple-php-version-apache-ubuntu/ gefolgt und haben PHP 5.6 und 7.2 wieder zum Laufen gebracht, als 7.2 neu war, und haben 7.3 und 7.4 damit aktualisiert und hinzugefügt bis heute morgen keine probleme. Gestern hat es noch funktioniert aber heute nicht mehr. Wir haben das Update gestern früh gepackt, aber es erforderte keinen Neustart und glaube nicht, dass es über Nacht von selbst als uptime
neu gestartet wurde sagt, wir sind fast 15 Tage.
Also haben wir uns heute daran gemacht, den Prozess noch einmal durchzugehen und haben dies getan, indem wir Apache2 nach jedem Schritt neu gestartet haben:
Versucht:a2enmod actions fcgid alias proxy_fcgi
und bekam:ERROR:Module fcgid does not exist!
Hat apt install apache2 libapache2-mod-fcgid
und das funktionierte und das Paket hinzugefügt.
Hat a2enmod actions fcgid alias proxy_fcgi
ausgeführt und es hieß alles bereits aktiviert .
Geprüfte conf-Datei in /etc/apache2/sites-enabled :
<FilesMatch .php$>
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
Versucht phpinfo() Seite und bekam PHP 7.4.15 statt erwartet 5.6.40. Wir haben dasselbe mit 7.3 gemacht und dasselbe 7.4 auf phpinfo() mit SetHandler von php7.3 bekommen.
Dann versuchte systemctl status php5.6-fpm und php7.4-fpm und beide aktiv (laufend)
Meine /etc/apache2/conf/php5.6-fpm.conf Datei ist hier für den Anfang, und die für php7.4-fpm.conf ist die gleiche mit Ausnahme von mod_php5/7 und der SetHandler-Version:
# Redirect to local php-fpm if mod_php is not available
<IfModule !mod_php5.c>
<IfModule proxy_fcgi_module>
# Enable http authorization headers
<IfModule setenvif_module>
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<FilesMatch ".+.ph(ar|p|tml)$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</If>
</FilesMatch>
<FilesMatch ".+.phps$">
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>
</IfModule>
</IfModule>
Liegt hier ein Fehler vor oder sollte ich woanders nachsehen?
FWIW, wir haben einen anderen Server mit einem ähnlichen Setup und er hat das gleiche Problem, aber wir brauchen zu diesem Zeitpunkt nur die 5.6-Legacy-Anwendung auf diesem Server, also haben wir 7.4 einfach deaktiviert, indem wir die Pointer-Datei in /etc/apache2/conf- entfernt haben. enabled/php7.4-fpm.conf und Neustart von Apache2. Dieser Server benötigt jedoch mehrere Versionen.
Verwandte:Wie wählt man die Standardversion von Gcc und G++ in Ubuntu aus?Akzeptierte Antwort:
Änderung:
<FilesMatch .php$>
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
für:
<FilesMatch .php$>
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</If>
</FilesMatch>