Maison > développement back-end > tutoriel php > Commutation PHP multi-version Ubuntu

Commutation PHP multi-version Ubuntu

藏色散人
Libérer: 2023-04-07 19:56:01
avant
2381 Les gens l'ont consulté

Je souhaite apprendre swoole récemment. Bien que la machine soit installée avec php7.0, étant donné que certaines roues swoole dépendent de versions supérieures (telles que swooletw), j'ai mis à niveau la machine vers php7.2. ou prenez quelques notes vous-même.

Opération de mise à niveau de version (mise à niveau directe de 7.0 vers 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
......
Copier après la connexion

Si nécessaire, vous pouvez installer swoole :

https://wiki.swoole.com/wiki/page/6.html
Copier après la connexion

Il est recommandé de utilisez pecl install directement ici L'installation de Swoole est un processus en une seule étape. Si vous le compilez manuellement, il semble qu'il y aura divers problèmes en raison de versions incompatibles.

Changer de version :

# 禁用7.0版本
sudo a2dismod php7.0
# 启用7.2版本
sudo a2enmod php7.2
# 重启nginx(或apache)
sudo service nginx restart
Copier après la connexion

Si ERREUR : Le module php7.0 n'existe pas apparaît , exécutez sudo apt-get install libapache2-mod-php7.0 puis exécuter L'opération ci-dessus

À ce stade, vous devriez pouvoir voir la version 7.2 en vérifiant phpinfo() dans le navigateur, mais la ligne de commande cli est toujours 7.0. Vous devez effectuer les opérations suivantes :

# 切换cli
sudo update-alternatives --set php /usr/bin/php7.2
Copier après la connexion

De cette façon sur la ligne de commande Vous pouvez également voir la version 7.2 en exécutant php -v

S'il existe deux versions, vous pouvez réellement utiliser sudo service php7.0-fpm stop/restart pour switch. Bien sûr, cela ne peut changer que php-fpm. C'est-à-dire que le côté Web et le côté cli de ligne de commande ne peuvent toujours pas être commutés

Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE):
Copier après la connexion

Après la mise à niveau de la version, j'ai également eu du mal avec php7.1. , puis quand je suis revenu le lendemain et que j'ai démarré l'ordinateur, j'ai découvert que tous les projets Laravel signalaient cette erreur. Après une recherche en ligne, j'ai découvert qu'il s'agissait d'un problème de version, mais après avoir vérifié php -v, c'était 7.2. J'ai prévu de redémarrer php et j'ai signalé une erreur. L'erreur suivante est le problème :

ERROR: unable to bind listening socket for address '127.0.0.1:9001': Address already in use (98)
Copier après la connexion

Cela signifie que le port est occupé, puis php Le programme fastCGI n'a pas pu démarrer

Solution :

ps aux|grep php pour afficher tous les processus php-fpm et a découvert qu'il existe un processus php7.1-fpm, obtenez l'identifiant du processus, puis supprimez-le pour redémarrer.

La solution à la requête en ligne est la commande killall php-pfm. Après exécution, elle affiche uniquement php-pfm : Aucune opération trouvée. Enfin, utilisez le processus de requête ci-dessus, puis supprimez en conséquence. à l'ID du processus. Comment tuer un processus

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal