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

Ubuntu-Multiversions-PHP-Umschaltung

藏色散人
藏色散人nach vorne
2019-11-16 13:45:442277Durchsuche

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
......

Bei Bedarf können Sie swoole installieren:

https://wiki.swoole.com/wiki/page/6.html

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

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

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 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)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen