Zuletzt habe ich verschiedene Themen rund um die Konfiguration verschiedener Webserver und den Betrieb von PHP-Anwendungen wie WordPress besprochen. Bei Webservern wie OpenLiteSpeed können Sie die Version über die WebAdmin-Konsole ändern, aber wenn Sie Apache verwenden, erfahren Sie hier, wie Sie die PHP-Version unter Linux wechseln.
PHP-Versionen
Wie überprüfe ich die PHP-Version unter Linux?
Stellen Sie zunächst fest, welche PHP-Version derzeit installiert und konfiguriert ist. Ich verwende Debian 11 für diese Demonstration. Alle Anweisungen in diesem Artikel funktionieren problemlos auf jeder Linux-Distribution.
Beachten Sie nur, dass die Version, zu der Sie wechseln möchten, ordnungsgemäß installiert ist.
php -v
Installieren einer bestimmten PHP-Version
Auf LinuxAndUbuntu gibt es eine ausführliche Anleitung zur Installation von PHP 8.x auf Debian- und Ubuntu-basierten Linux-Distributionen. Wenn Sie eine frühere Version wie PHP 7.4 installieren, müssen Sie kein Repository hinzufügen.
sudo apt install php7.4
PHP-Version ändern
Sobald Sie mehrere PHP-Versionen installiert haben, können wir a2dismod- und a2enmod-Skripte verwenden, um eine PHP-Version zu deaktivieren und eine andere PHP-Version zu aktivieren. Diese beiden Skripte können jedes Apache-Modul aktivieren und deaktivieren.
Aktuelle PHP-Version deaktivieren
Angenommen, Sie haben derzeit PHP 8.1 als Standard-PHP-Version eingestellt, hier ist, wie Sie es deaktivieren können –
sudo a2dismod php8.1
Neue PHP-Version aktivieren
Jetzt können wir mit a2enmod –
zu jeder installierten PHP-Version wechselnsudo a2enmod php7.4
Vergessen Sie nicht, den Apache-Server neu zu starten, nachdem Sie die PHP-Version gewechselt haben.
sudo service apache2 restart
Häufige Fehler mit a2enmod
Einige Benutzer erhalten möglicherweise den Fehler „bash:a2dismod:Befehl nicht gefunden“.
[email protected]:~$ a2dismod php8.1 bash: a2dismod: command not found
Meistens tritt der Fehler auf, wenn der Befehl ohne sudo oder root ausgeführt wird.
Hier ist die Ausgabe, die Sie nach erfolgreicher Ausführung des Befehls –
erhalten[email protected]:~$ sudo a2dismod php8.1 Module php8.1 disabled. To activate the new configuration, you need to run: systemctl restart apache2
Gleiches gilt für a2enmod. Führen Sie es mit sudo oder als Root-Benutzer aus.
Ein weiterer Fehler, auf den Benutzer stoßen können, ist „ERROR:Module php7.3 does not exist!“.
[email protected]:~$ sudo a2enmod php7.3 ERROR: Module php7.3 does not exist!
Dieser Fehler bedeutet, dass die PHP-Version, die der Benutzer zu aktivieren versucht, nicht installiert ist. In diesem Fall ist php7.3 nicht installiert.
So sieht eine erfolgreiche Ausführung von a2enmod aus –
[email protected]:~$ sudo a2enmod php7.4 Considering dependency mpm_prefork for php7.4: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork: Module mpm_prefork already enabled Considering conflict php5 for php7.4: Enabling module php7.4. To activate the new configuration, you need to run: systemctl restart apache2