Heim > Backend-Entwicklung > PHP-Tutorial > Ubuntu-Multiversions-PHP-Umschaltung

Ubuntu-Multiversions-PHP-Umschaltung

藏色散人
Freigeben: 2023-04-07 19:56:01
nach vorne
2331 Leute haben es durchsucht

Ich möchte swoole vor kurzem lernen, obwohl die Maschine mit PHP7.0 installiert ist, da einige Swoole-Räder von höheren Versionen (z. B. Swooletw) abhängen, habe ich die Maschine auf PHP7.2 aktualisiert oder machen Sie sich selbst Notizen.

Versionsaktualisierungsvorgang (direktes Upgrade von 7.0 auf 7.2):

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get upgrade php
# 拓展升级
sudo apt-get install php7.2-mbstring
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-dom
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-curl
......
Nach dem Login kopieren

Bei Bedarf können Sie swoole installieren:

https://wiki.swoole.com/wiki/page/6.html
Nach dem Login kopieren

Es wird empfohlen Verwenden Sie pecl install hier direkt. Die Swoole-Installation ist ein einstufiger Prozess. Wenn Sie es manuell kompilieren, kann es aufgrund inkompatibler Versionen zu verschiedenen Problemen kommen.

Version wechseln:

# 禁用7.0版本
sudo a2dismod php7.0
# 启用7.2版本
sudo a2enmod php7.2
# 重启nginx(或apache)
sudo service nginx restart
Nach dem Login kopieren

Wenn FEHLER: Modul php7.0 existiert nicht, führen Sie sudo apt-get install libapache2-mod-php7.0 aus und dann Führen Sie den obigen Vorgang aus

Zu diesem Zeitpunkt sollten Sie die Version 7.2 sehen können, indem Sie phpinfo() im Browser überprüfen, aber die Befehlszeilen-CLI ist immer noch 7.0. Sie müssen die folgenden Vorgänge ausführen:

# 切换cli
sudo update-alternatives --set php /usr/bin/php7.2
Nach dem Login kopieren

Auf diese Weise können Sie Version 7.2 auch in der Befehlszeile anzeigen, indem Sie php -v

ausführen. Wenn es zwei Versionen gibt, können Sie tatsächlich den Sudo-Dienst php7.0-fpm stop/restart verwenden Natürlich kann dies nur PHP-FPM wechseln, das heißt, die Web-Seite und die Befehlszeilen-CLI-Seite können immer noch nicht umgeschaltet werden

Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE):
Nach dem Login kopieren

Nach dem Upgrade der Version hatte ich auch Probleme mit PHP7.1 Als ich dann am nächsten Tag zurückkam und den Computer startete, stellte ich fest, dass alle Laravel-Projekte diesen Fehler meldeten. Nach einer Online-Suche stellte ich fest, dass es sich um ein Versionsproblem handelte, aber ich überprüfte php -v und es war 7.2. Zu diesem Zeitpunkt hatte ich vor, PHP neu zu starten, und meldete einen Fehler. Der folgende Fehler ist das Problem:

ERROR: unable to bind listening socket for address '127.0.0.1:9001': Address already in use (98)
Nach dem Login kopieren

Das bedeutet, dass der Port belegt ist und PHP dann nicht gestartet werden konnte

Lösung:

ps aux|grep php, um alle php-fpm-Prozesse anzuzeigen und festzustellen, dass es einen php7.1-fpm-Prozess gibt, die Prozess-ID abruft und ihn dann beendet neu starten.

Die Lösung für die Online-Abfrage besteht darin, den Befehl „killall php-pfm“ auszuführen. Nach der Ausführung wird nur „php-pfm“ angezeigt: Diese Methode ist nutzlos. Verwenden Sie schließlich den obigen Abfragevorgang entsprechend der Prozess-ID. So beenden Sie einen Prozess

Das obige ist der detaillierte Inhalt vonUbuntu-Multiversions-PHP-Umschaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage