Heim > Artikel > Backend-Entwicklung > Drei Installationsmethoden für PHP-Erweiterungen unter CentOS
Unter CentOS bietet PHP mehrere Möglichkeiten, Erweiterungen zu installieren, hauptsächlich einschließlich der Yum-Installation im Paketverwaltungsstil, der Pecl-Installation sowie der Kompilierung und Installation des Quellcodes.
Die Installation und Deinstallation im Stil der Paketverwaltung ist besonders praktisch, während die Installation im Stil der Quellcode-Kompilierung die Parameteroptimierung erleichtert.
Im Allgemeinen wird eine paketverwaltete Installation empfohlen, um eine lokale Entwicklungsumgebung aufzubauen und Zeit zu sparen. Für Online-Bereitstellungsumgebungen wird die Kompilierung und Installation empfohlen, um die Optimierung zu erleichtern.
In diesem Artikel wird die Installation der MongoDB-Erweiterung als Beispiel verwendet.
Tools
PHP-Version: 7.0.17
Nginx: 1.10.2
VMware-Version: 12.0.0
CentOS-Version: 7.0
1. Yum-Installation
Yum-Installation kann die erweiterte .so-Dynamikbibliothek automatisch installieren und php.ini konfigurieren
Hinweis:
Bitte stellen Sie sicher, dass Sie die entsprechende Erweiterung in Ihrer Yum-Quelle haben
Nach Abschluss der Installation starten Sie den Nginx- oder Apache-Server neu
Besuchen Sie den Index. PHP-Datei mit Ihrem Browser, PHP-Info-Informationen ausgeben, wenn MongoDB-Informationen vorhanden sind, ist die Installation erfolgreich
[root@localhost ~]# yum search mongodb|grep php # 搜索 yum 源里面 MongoDB 拓展 [root@localhost ~]# yum -y install php70w-pecl-mongo # 安装 PHP 对应版本的 MongoDB 扩展 [root@localhost ~]# systemctl restart nginx # 重新启动 Nginx
2. pecl-Installation
Offizielle Dokumentation: https://www.php.net/manual/zh/mongodb.installation.pecl.php
[root@localhost ~]# pecl install mongodb
-bash: pecl: Befehl nicht gefunden
Direkte Eingabe von pecl install mongodb meldet einen Fehler, der darauf hinweist, dass wir pecl nicht installiert haben
[root@localhost ~]# yum -y install php70w-pear [root@localhost ~]# pecl install mongodb configure: error: Cannot find OpenSSL's <evp.h> ERROR: `/var/tmp/mongodb/configure --with-php-config=/usr/bin/php-config' failed
, wird bei diesem Schritt ein weiterer Fehler gemeldet. Nachdem die Installation abgeschlossen ist, fahren Sie mit der Ausführung fort der Befehl, der beim letzten Mal nicht erfolgreich ausgeführt wurde
[root@localhost ~]# yum -y install openssl openssl-devel [root@localhost ~]# pecl install mongodb [root@localhost ~]# systemctl restart nginx # 重新启动 Nginx
Nachdem die Installation abgeschlossen ist, laden Sie die MongoDB-Erweiterung in die PHP-Konfigurationsdatei php.ini
Starten Sie nach Abschluss der Installation den Nginx- oder Apache-Server neu
Browserzugriffsindex-.php-Datei, geben Sie PHPInfo-Informationen aus. Wenn MongoDB-Informationen vorhanden sind, ist die Installation erfolgreich
3. Quellcode-Kompilierung und Installation
Downloadliste für Quellcode-Kompilierungspakete: https://pecl.php.net/packages.php
Mongodb-Paket-Download-Adresse: https://pecl.php.net/package/mongodb
[root@localhost ~]# wget http://pecl.php.net/get/mongodb-1.2.8.tgz #下载源码包 [root@localhost ~]# tar zxf mongodb-1.2.8.tgz #解压 [root@localhost ~]# cd mongodb-1.2.8 # 可能是 /usr/local/php/bin/phpize 找到自己的 phpize 文件,php-config 同理 [root@localhost mongodb-1.2.8]# /usr/bin/phpize Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012 [root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config configure: error: Cannot find OpenSSL's <evp.h>
In diesem Schritt kommt es uns wieder bekannt vor. Nach Abschluss der Installation müssen wir openssl installieren , führen Sie den Befehl weiter aus, der beim letzten Mal nicht erfolgreich ausgeführt wurde
[root@localhost mongodb-1.2.8]# yum -y install openssl openssl-devel [root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config # 确保自己安装了 gcc gcc++ 如果没有安装 yum -y install gcc gcc++ [root@localhost mongodb-1.2.8]# make && make install # 编译
Hinweis: php-config ist ein einfaches Befehlszeilenskript, mit dem Informationen über die installierte PHP-Konfiguration abgerufen werden .
Wenn beim Kompilieren einer Erweiterung mehrere PHP-Versionen installiert sind, können Sie während der Konfiguration die Option --with-php-config verwenden, um anzugeben, welche Version für die Kompilierung verwendet werden soll Pfad zum Skript.
Die Kompilierung ist erfolgreich, wie unten gezeigt
Zu diesem Zeitpunkt wird die MongoDB-Erweiterung in die PHP-Konfigurationsdatei php.ini geladen
Starten Sie den Server Nginx oder Apache neu
Der Browser greift auf die Datei index.php zu und gibt die phpinfo-Informationen aus, die Installation ist erfolgreich
[root@localhost mongodb-1.2.8]# systemctl restart nginx # 重新启动 Nginx
Zusammenfassung:
Der Unterschied zwischen der Pecl-Installation und der Kompilierung und Installation des Quellcodes besteht darin, dass letztere für die Parameteroptimierung bequemer ist.
Bei der Auswahl von Mongo-Erweiterungen bietet der Beamte zwei Typen an: Mongo und Mongodb
Der erste: https://pecl.php.net/package/mongo
Zweitens : https://pecl.php.net/package/mongodb
Erster offizieller Tipp: Dieses Paket wurde ersetzt, wird aber weiterhin auf Fehler und Sicherheitskorrekturen gewartet, wurde jedoch aufgegeben, weist jedoch Fehler und Sicherheitsprobleme auf wird weiterhin behoben und PHP7 wird nicht unterstützt.
Empfehlungen:
PHP-Version ist 5.x und es wird empfohlen, die Mongo-Erweiterung zu verwenden
PHP-Version ist 7.x und das ist sie auch Es wird empfohlen, die Mongodb-Erweiterung zu verwenden
PHP5.x kann die Mongodb-Erweiterung verwenden. Aber PHP7.x kann die Mongo-Erweiterung nicht verwenden.
Am Ende geschrieben:
Wenn Sie alleine lernen, wird dennoch empfohlen, es mit yum zu installieren, da es dabei zu Fehlern kommen wird, die das Fehlen verschiedener Abhängigkeiten melden Ihren Installationsprozess.
Weitere PHP-Kenntnisse finden Sie im PHP-Tutorial!
Das obige ist der detaillierte Inhalt vonDrei Installationsmethoden für PHP-Erweiterungen unter CentOS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!