Maison  >  Article  >  développement back-end  >  La bonne façon d'installer PHP7 sur CentOS

La bonne façon d'installer PHP7 sur CentOS

coldplay.xixi
coldplay.xixiavant
2020-06-24 17:58:303483parcourir

La bonne façon d'installer PHP7 sur CentOS

La version PHP sur CentOS est très ancienne et ne peut pas répondre aux exigences de certains frameworks version PHP requis. En conséquence, de nombreuses bibliothèques de logiciels tiers ont vu le jour, comme EPEL, RPM Fusion, Remi, etc., qui fournissent de nouvelles versions de PHP. Laissez notre système suivre le rythme de son temps.

Cependant, les bibliothèques de logiciels tiers présentent plusieurs inconvénients : Premièrement, le logiciel qu'elles fournissent n'a pas été officiellement testé par CentOS. Lors de l'installation du logiciel, certains fichiers centraux du système peuvent être remplacés, provoquant une instabilité du système. . Deuxièmement, les logiciels installés par des bibliothèques tierces peuvent ne pas garantir la compatibilité, et la mise à niveau du système peut rendre certains logiciels inutilisables.

Cet article recommande donc d'utiliser la bibliothèque logicielle SCL (Software Collections) pour installer une version supérieure de PHP. SCL appartient à la bibliothèque logicielle officielle de CentOS. Il a été entièrement testé et ne remplacera pas les fichiers principaux du système lors de l'installation du logiciel, garantissant ainsi la stabilité du système.

Installer SCL est très simple, une seule commande suffit :

[root@localhost]# yum install centos-release-scl-rh

Ensuite vous pouvez rechercher la nouvelle version de PHP dans yum :

[root@localhost]# yum search php...php54-runtime.x86_64
php55-runtime.x86_64
rh-php56-runtime.x86_64
rh-php70-runtime.x86_64...

rh- Le préfixe signifie RedHat, vous indiquant qu'il s'agit du PHP officiel fourni et non fourni par une bibliothèque tierce. L'auteur suppose que cette spécification de préfixe a été formulée vers 2015 et que PHP5.4 et 5.5 ont été publiés avant cela. Afin de garantir la compatibilité de votre programme (par exemple, certains de vos programmes ont déjà écrit yum install php55, ajoutez un préfixe. Le programme se bloque), sans le préfixe rh-.

Ensuite, installez PHP7.0 :

[root@localhost]# yum install rh-php70

Après l'installation, PHP sera effectivement installé dans le répertoire /opt/rh.

Si vous exécutez la commande php à ce moment-là, le système vous proposera toujours une commande introuvable. En effet, le style de SCL est de minimiser l'impact du logiciel sur le système. Même après l'installation de PHP, la commande php ne sera pas ajoutée à la variable $PATH, vous ne pouvez donc pas exécuter directement le logiciel. de la commande. Vous devez afficher l'exécution via la commande scl activate :

Regardez d'abord quel logiciel est installé par SCL :

[root@localhost]# scl -lrh-php70

Vous pouvez voir que nous avons installé un rh -php70 dans le système. Activez-le d'abord et exécutez la commande :

[root@localhost]# scl enable rh-php70 "php -v"PHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

La commande a été exécutée avec succès. Ce serait trop gênant si chaque commande devait être exécutée de cette façon ! Ce n'est pas grave, vous n'avez pas besoin d'exécuter une commande à chaque fois, mais exécutez directement la commande bash, puis le shell nouvellement ouvert reconnaîtra automatiquement php :

[root@localhost]# scl enable rh-php70 bash[root@localhost]# php -vPHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

[root@localhost ~]# php -m[PHP Modules]
bz2
calendar...

SCL à scl activate Le logiciel de gestion des méthodes ajoute un peu de peine à l'utilisation, mais il garantit absolument la stabilité du système. Et cela présente un autre avantage : plusieurs versions de PHP peuvent coexister sur le système sans entrer en conflit les unes avec les autres. Il vous est pratique de tester la compatibilité de votre code ou framework sur différentes versions de PHP.

En bref, si vous souhaitez effectuer une opération et une maintenance rigoureuses, cet article recommande toujours fortement d'utiliser SCL pour gérer les logiciels de votre système.

La version PHP sur CentOS est très ancienne et ne peut pas répondre aux exigences de version PHP de certains frameworks. En conséquence, de nombreuses bibliothèques de logiciels tiers ont vu le jour, comme EPEL, RPM Fusion, Remi, etc., qui fournissent de nouvelles versions de PHP. Laissez notre système suivre le rythme de son temps.

Cependant, les bibliothèques de logiciels tiers présentent plusieurs inconvénients : Premièrement, le logiciel qu'elles fournissent n'a pas été officiellement testé par CentOS. Lors de l'installation du logiciel, certains fichiers centraux du système peuvent être remplacés, provoquant une instabilité du système. . Deuxièmement, les logiciels installés par des bibliothèques tierces peuvent ne pas garantir la compatibilité, et la mise à niveau du système peut rendre certains logiciels inutilisables.

Cet article recommande donc d'utiliser la bibliothèque logicielle SCL (Software Collections) pour installer une version supérieure de PHP. SCL appartient à la bibliothèque logicielle officielle de CentOS. Il a été entièrement testé et ne remplacera pas les fichiers principaux du système lors de l'installation du logiciel, garantissant ainsi la stabilité du système.

Installer SCL est très simple, une seule commande suffit :

[root@localhost]# yum install centos-release-scl-rh

Ensuite vous pouvez rechercher la nouvelle version de PHP dans yum :

[root@localhost]# yum search php...php54-runtime.x86_64
php55-runtime.x86_64
rh-php56-runtime.x86_64
rh-php70-runtime.x86_64...

rh- Le préfixe signifie RedHat, vous indiquant qu'il s'agit du PHP officiel fourni et non fourni par une bibliothèque tierce. L'auteur suppose que cette spécification de préfixe a été formulée vers 2015 et que PHP5.4 et 5.5 ont été publiés avant cela. Afin de garantir la compatibilité de votre programme (par exemple, certains de vos programmes ont déjà écrit yum install php55, ajoutez un préfixe. Le programme se bloque), sans le préfixe rh-.

Ensuite, installez PHP7.0 :

[root@localhost]# yum install rh-php70

Après l'installation, PHP sera effectivement installé dans le répertoire /opt/rh.

此时如果你运行php命令,系统依然会提示你command not found。这是因为,SCL的风格就是把软件对系统的影响减少到最小,甚至安装完PHP,php命令都不会被添加到 $PATH 变量中,所以你没法直接执行软件中的命令的。需要通过 scl enable 命令显示执行:

先看看SCL安装了哪些软件:

[root@localhost]# scl -lrh-php70

可以看到我们在系统安装了一个rh-php70,先启用它并执行命令:

[root@localhost]# scl enable rh-php70 "php -v"PHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

命令成功执行了。要是每一条命令都要这么执行,太麻烦了!不要紧,你可以不用每次执行一条命令,而是直接执行 bash 命令,那么新开的shell就能自动识别php了:

[root@localhost]# scl enable rh-php70 bash[root@localhost]# php -vPHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

[root@localhost ~]# php -m[PHP Modules]
bz2
calendar...

SCL以 scl enable 方式管理软件,虽然在使用上增加了一点点的麻烦,但这绝对地保证了系统稳定性。而且这么做还有一个好处:就是系统上可以多个PHP版本共存而互相不冲突。方便你测试代码或者框架,在各个版本PHP上的兼容性。

总之,要做一个严谨的运维,本篇还是十分推荐用SCL管理你系统上的软件。

推荐教程:《php视频教程

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer