Die PHP-Version auf CentOS ist sehr alt und kann die Anforderungen von nicht erfüllen Für einige Frameworks ist eine PHP-Version erforderlich. Infolgedessen sind viele Softwarebibliotheken von Drittanbietern entstanden, wie z. B. EPEL, RPM Fusion, Remi usw., die neue Versionen von PHP bereitstellen. Lassen Sie unser System mit der Zeit gehen.
Softwarebibliotheken von Drittanbietern haben jedoch mehrere Nachteile: Erstens wurde die von ihnen bereitgestellte Software nicht offiziell von CentOS getestet. Bei der Installation der Software werden möglicherweise einige Kerndateien des Systems ersetzt, was zu Systeminstabilität führt. . Zweitens garantiert die von Bibliotheken Dritter installierte Software möglicherweise keine Kompatibilität, und ein Upgrade des Systems kann dazu führen, dass bestimmte Software unbrauchbar wird.
In diesem Artikel wird daher empfohlen, die Softwarebibliothek SCL (Software Collections) zu verwenden, um eine höhere Version von PHP zu installieren. SCL gehört zur offiziellen Softwarebibliothek von CentOS. Es wurde vollständig getestet und ersetzt bei der Installation der Software nicht die Kerndateien des Systems, um die Stabilität des Systems zu gewährleisten.
Die Installation von SCL ist sehr einfach, nur ein Befehl genügt:
[root@localhost]# yum install centos-release-scl-rh
Dann können Sie in yum nach der neuen PHP-Version suchen:
[root@localhost]# yum search php...php54-runtime.x86_64 php55-runtime.x86_64 rh-php56-runtime.x86_64 rh-php70-runtime.x86_64...
rh- Das Präfix bedeutet RedHat und sagt Ihnen, dass es sich um das offizielle PHP handelt, das bereitgestellt wird, und nicht um die Bereitstellung einer Drittanbieter-Bibliothek. Der Autor vermutet, dass diese Präfixspezifikation um 2015 formuliert wurde und PHP5.4 und 5.5 davor veröffentlicht wurden. Um die Kompatibilität Ihres Programms sicherzustellen (z. B. haben einige Ihrer Programme bereits yum install php55 geschrieben, fügen Sie ein Präfix hinzu Das Programm hängt) ohne das Präfix rh-.
Als nächstes installieren Sie PHP7.0:
[root@localhost]# yum install rh-php70
Nach der Installation wird PHP tatsächlich im Verzeichnis /opt/rh installiert.
Wenn Sie zu diesem Zeitpunkt den PHP-Befehl ausführen, meldet das System immer noch die Meldung „Befehl nicht gefunden“. Dies liegt daran, dass der Stil von SCL darin besteht, die Auswirkungen der Software auf das System zu minimieren. Selbst nach der Installation von PHP wird der PHP-Befehl nicht zur Variablen $PATH hinzugefügt, sodass Sie die Software nicht direkt ausführen können. des Befehls. Sie müssen die Ausführung über den Befehl scl enable anzeigen:
Sehen Sie sich zunächst an, welche Software von SCL installiert wird:
[root@localhost]# scl -lrh-php70
Sie können sehen, dass wir ein rh installiert haben -php70 im System. Aktivieren Sie es zuerst und führen Sie den Befehl aus:
[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
Der Befehl wurde erfolgreich ausgeführt. Es wäre zu umständlich, wenn jeder Befehl so ausgeführt werden müsste! Es spielt keine Rolle, Sie müssen nicht jedes Mal einen Befehl ausführen, sondern führen Sie direkt den Befehl bash aus, dann erkennt die neu geöffnete Shell automatisch 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 zu scl enable Die Methodenverwaltungssoftware macht die Verwendung zwar etwas umständlicher, garantiert aber absolut die Stabilität des Systems. Dies hat noch einen weiteren Vorteil: Mehrere PHP-Versionen können auf dem System nebeneinander existieren, ohne dass es zu Konflikten untereinander kommt. Es ist für Sie praktisch, die Kompatibilität Ihres Codes oder Frameworks mit verschiedenen PHP-Versionen zu testen.
Kurz gesagt: Wenn Sie strenge Betriebs- und Wartungsarbeiten durchführen möchten, empfiehlt dieser Artikel dennoch dringend die Verwendung von SCL zur Verwaltung der Software auf Ihrem System.
Die PHP-Version auf CentOS ist sehr alt und kann die PHP-Versionsanforderungen einiger Frameworks nicht erfüllen. Infolgedessen sind viele Softwarebibliotheken von Drittanbietern entstanden, wie z. B. EPEL, RPM Fusion, Remi usw., die neue Versionen von PHP bereitstellen. Lassen Sie unser System mit der Zeit gehen.
Softwarebibliotheken von Drittanbietern haben jedoch mehrere Nachteile: Erstens wurde die von ihnen bereitgestellte Software nicht offiziell von CentOS getestet. Bei der Installation der Software werden möglicherweise einige Kerndateien des Systems ersetzt, was zu Systeminstabilität führt. . Zweitens garantiert die von Bibliotheken Dritter installierte Software möglicherweise keine Kompatibilität, und ein Upgrade des Systems kann dazu führen, dass bestimmte Software unbrauchbar wird.
In diesem Artikel wird daher empfohlen, die Softwarebibliothek SCL (Software Collections) zu verwenden, um eine höhere Version von PHP zu installieren. SCL gehört zur offiziellen Softwarebibliothek von CentOS. Es wurde vollständig getestet und ersetzt bei der Installation der Software nicht die Kerndateien des Systems, um die Stabilität des Systems zu gewährleisten.
Die Installation von SCL ist sehr einfach, nur ein Befehl genügt:
[root@localhost]# yum install centos-release-scl-rh
Dann können Sie in yum nach der neuen PHP-Version suchen:
[root@localhost]# yum search php...php54-runtime.x86_64 php55-runtime.x86_64 rh-php56-runtime.x86_64 rh-php70-runtime.x86_64...
rh- Das Präfix bedeutet RedHat und sagt Ihnen, dass es sich um das offizielle PHP handelt, das bereitgestellt wird, und nicht um die Bereitstellung einer Drittanbieter-Bibliothek. Der Autor vermutet, dass diese Präfixspezifikation um 2015 formuliert wurde und PHP5.4 und 5.5 davor veröffentlicht wurden. Um die Kompatibilität Ihres Programms sicherzustellen (z. B. haben einige Ihrer Programme bereits yum install php55 geschrieben, fügen Sie ein Präfix hinzu Das Programm hängt) ohne das Präfix rh-.
Als nächstes installieren Sie PHP7.0:
[root@localhost]# yum install rh-php70
Nach der Installation wird PHP tatsächlich im Verzeichnis /opt/rh installiert.
此时如果你运行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视频教程》
Das obige ist der detaillierte Inhalt vonDer richtige Weg, PHP7 auf CentOS zu installieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!