Ich habe PHP 5.6 und PHP 7.1 auf meinem Ubuntu 16.04 installiert
Ich weiß mit Apache als Webserver, was ich tun kann
a2enmod php5.6 to enable php5
a2enmod php7.1 to enable php7
Wenn ich php7.1 in Apache-Modulen deaktiviere und php5.6 aktiviere, erkennt Apache die Änderung und verwendet den Interpreter php5.6 wie erwartet.
Aber wenn ich interne PHP-Server von der Kommandozeile aus ausführen: -
php -S localhost:8888
pHP verarbeitet Anfragen mit PHP7. Wie kann ich in der Befehlszeile zwischen PHP6.6 und PHP7.1 wechseln?
Sudo update-alternatives --config php
Die Standardeinstellung PHP 5.6 ist auf Ihrem System festgelegt und Sie müssen zu PHP 7.1 wechseln.
Apache:
$ Sudo a2dismod php5.6
$ Sudo a2enmod php7.1
$ Sudo service Apache2 restart
Befehlszeile:
$ Sudo update-alternatives --set php /usr/bin/php7.1
Auf Ihrem System ist die Standardeinstellung PHP 7.1 festgelegt, und Sie müssen zu PHP 5.6 wechseln.
Apache:
$ Sudo a2dismod php7.1
$ Sudo a2enmod php5.6
$ Sudo service Apache2 restart
Befehlszeile:
$ Sudo update-alternatives --set php /usr/bin/php5.6
geben Sie dies in Ihre Shell ein
$ Sudo update-alternatives --config php
und das wirst du bekommen
There are 4 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php7.2 72 auto mode
1 /usr/bin/php5.6 56 manual mode
2 /usr/bin/php7.0 70 manual mode
3 /usr/bin/php7.1 71 manual mode
4 /usr/bin/php7.2 72 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Wählen Sie die entsprechende Version
Ich denke, du solltest es versuchen
Von PHP5.6 bis PHP7.1
Sudo a2dismod php5.6
Sudo a2enmod php7.1
Sudo service Apache2 restart
Sudo update-alternatives --set php /usr/bin/php7.1
Sudo update-alternatives --set phar /usr/bin/phar7.1
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
Von php 7.1 bis ph5.6
Sudo a2dismod php7.1
Sudo a2enmod php5.6
Sudo service Apache2 restart
Sudo update-alternatives --set php /usr/bin/php5.6
Sudo update-alternatives --set phar /usr/bin/phar5.6
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
Um alle verfügbaren Versionen aufzulisten und eine davon auszuwählen:
Sudo update-alternatives --config php
Oder mache es manuell
Sudo a2dismod php7.1 // disable
Sudo a2enmod php5.6 // enable
Ich würde a2enmod
eigentlich nicht für PHP 5 oder 7 empfehlen. Ich würde update-alternatives
verwenden. Sie können mit Sudo update-alternatives --config php
festlegen, welche systemweite Version von PHP Sie verwenden möchten. Dadurch funktionieren Ihre Befehlszeile und Apache-Versionen gleich. Weitere Informationen zu update-alternatives
finden Sie auf der man-Seite .
Sie können ein Skript zum Wechseln von Versionen erstellen: Sudo nano switch_php
Geben Sie dann Folgendes ein:
#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
"7")
Sudo a2dismod php5.6
Sudo a2enmod php7.0
Sudo service Apache2 restart
Sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
"5.6")
Sudo a2dismod php7.0
Sudo a2enmod php5.6
Sudo service Apache2 restart
Sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"
beende und speichere mache es ausführbar: Sudo chmod +x switch_php
Um das Skript auszuführen, geben Sie einfach ./switch_php [VERSION_NUMBER]
ein, wobei der Parameter 7 oder 5.6 ist
Das ist es, Sie können jetzt einfach von PHP7 zu PHP 5.6 wechseln!
Geben Sie den Befehl in Ihr Terminal ein ..
Deaktivieren Sie die ausgewählte PHP Version ...
Für die Aktivierung einer anderen PHP Version ....
Es wird die Php-Version aktualisieren. Wenn Sie ein Downgrade der Version wünschen, können Sie es auch umgekehrt machen. Sie können es über PHP_INFO () sehen.
Wechseln Sie von PHP 5.6 zu PHP 7.2 mit:
Sudo a2dismod php5.6 && Sudo a2enmod php7.2 && Sudo service Apache2 restart
Wechseln Sie von PHP 7.2 zu PHP 5.6 mit:
Sudo a2dismod php7.2 && Sudo a2enmod php5.6 && Sudo service Apache2 restart
Sie können diese Open-Source-Switches PHP verwenden, die speziell für die Verwendung in Ubuntu 16.04 LTS entwickelt wurden.
https://github.com/rapidwebltd/php-switch-scripts
Es gibt ein setup.sh
-Skript, das alle erforderlichen Abhängigkeiten für PHP 5.6, 7.0, 7.1 und 7.2 installiert. Sobald dies abgeschlossen ist, können Sie einfach eines der folgenden Switch-Skripts ausführen, um die CLI- und Apache 2-Modulversion von PHP zu ändern.
./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh
Von PHP 5.6 => PHP 7.1
$ Sudo a2dismod php5.6
$ Sudo a2enmod php7.1
für alte Linux-Versionen
$ Sudo service Apache2 restart
für neuere Version
$ systemctl restart Apache2
Sie können die Befehlszeilen unten verwenden, um zwischen zwei PHP -Versionen zu wechseln.
Z.B.
Ich möchte PHP Version
von 7.1
auf 7.2
umstellen, wir können den folgenden Befehl verwenden
Sudo a2dismod php7.1 && Sudo update-alternatives --set php /usr/bin/php7.2 && Sudo a2enmod php7.2 && Sudo service Apache2 restart
a2dismod
wird verwendet, um die aktuelle PHP-Version zu deaktivieren, und a2enmod
wird verwendet, um die Version zu aktivieren
Möglicherweise haben Sie eine alte PHP= Version wie PHP 5.6 in Ihrem System, und Sie haben PHP 7.2 ebenfalls installiert mehrere PHP auf Ihrem Computer. Es gibt einige Anwendungen, die entwickelt wurden, als ältere PHP 5.6 war die neueste Version, sie sind immer noch live und Sie arbeiten an diesen Anwendungen, Möglicherweise arbeiten Sie gleichzeitig an Laravel, aber Laravel erfordert PHP 7+), um loszulegen.
In diesem Fall können Sie zwischen den PHP) - Versionen umschalten, um Ihren Anforderungen zu entsprechen.
Wechseln von PHP 5.6 => PHP 7.2
Apache: - Sudo a2dismod php5.6 Sudo a2enmod php7.2 Sudo-Dienst Apache2 Neustart
Befehlszeile:-
Sudo update-alternatives --set php /usr/bin/php7.2
Sudo update-alternatives --set phar /usr/bin/phar7.2
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
Sudo update-alternatives --set phpize /usr/bin/phpize7.2
Sudo update-alternatives --set php-config /usr/bin/php-config7.2
Und umgekehrt: Wechseln von PHP 7.2 => PHP 5.6
Apache:-
Sudo a2dismod php7.2
Sudo a2enmod php5.6
Sudo service Apache2 restart
Befehlszeile:-
Sudo update-alternatives --set php /usr/bin/php5.6
Sudo update-alternatives --set phar /usr/bin/phar5.6
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
Sudo update-alternatives --set phpize /usr/bin/phpize5.6
Sudo update-alternatives --set php-config /usr/bin/php-config5.6
Bei der Installation von laravel auf Ubuntu 18.04 muss standardmäßig PHP 7.3.0RC3 installiert werden, aber Laravel und Symfony werden nicht ordnungsgemäß installiert und beschweren sich über Missin php-xml und php-Zip, obwohl sie installiert sind. Sie müssen zu php 7.1 wechseln, indem Sie die Anweisungen oben verwenden oder
Sudo update-alternatives --set php /usr/bin/php7.1
jetzt läuft Laravel New Blog, wird korrekt weitergehen
Mit dem folgenden Skript können Sie problemlos zwischen der PHP -Version wechseln Ich habe auch die phpize-Konfiguration hinzugefügt.
https://github.com/anilkumararumulla/switch-php-version
Laden Sie die Skriptdatei herunter und führen Sie sie aus
sh switch.sh