Heim  >  Artikel  >  Backend-Entwicklung  >  So installieren Sie die Erweiterung in PHP

So installieren Sie die Erweiterung in PHP

藏色散人
藏色散人Original
2021-03-05 09:41:018344Durchsuche

So installieren Sie Erweiterungen in PHP: 1. Verwenden Sie den Befehl apt oder yum, um die Erweiterung zu installieren. 3. Kompilieren und installieren Sie sie aus dem Quellcode.

So installieren Sie die Erweiterung in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 5.3.29, DELL G3-Computer

Mehrere Möglichkeiten, Erweiterungen auf PHP zu installieren

Erweiterungen installieren

Hinweis

mit Apache +PHP oder Nginx+ Die Ausführungsmodi von PHP sind unterschiedlich. WorkerMan wird basierend auf der PHP-Befehlszeilen-PHP-CLI mit unterschiedlichen ausführbaren PHP-Programmen ausgeführt, und die verwendete php.ini-Datei kann ebenfalls unterschiedlich sein. Wenn Sie also phpinfo() auf der Webseite drucken und sehen, dass eine bestimmte Erweiterung installiert ist, bedeutet das nicht, dass die entsprechende Erweiterung auch in der PHP-CLI des Befehls installiert ist Linie. phpinfo()看到安装了某个扩展,不代表命令行的PHP CLI也安装了对应的扩展。

如何确定PHP CLI安装了哪些扩展

运行 php -m 会列出命令行 PHP CLI 已经安装的扩展,结果类似如下:

~# php -m
[PHP Modules]
libevent
posix
pcntl
...

如何确定PHP CLI 的php.ini文件的位置

当我们安装扩展时,可能需要手动配置php.ini文件,把扩展加进去,所以要确认PHP CLI的php.ini文件的位置。可以运行php --ini查找PHP CLI的ini文件位置,结果类似如下(各个系统显示结果会有差异):

~# php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/libevent.ini,
/etc/php5/cli/conf.d/memcached.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini
...

给PHP CLI安装扩展(安装memcached扩展为例)

方法一、使用apt或者yum命令安装

如果PHP是通过 apt 或者 yum 命令安装的,则扩展也可以通过 apt 或者 yum 安装

debian/ubuntu等系统apt安装PHP扩展方法(非root用户需要加sudo命令)

1、利用apt-cache search查找扩展包

~# apt-cache search memcached php
php-apc - APC (Alternative PHP Cache) module for PHP 5
php5-memcached - memcached module for php5

2、使用apt-get install安装扩展包

~# apt-get install -y php5-memcached
Reading package lists... Done
Reading state information... Done
...

centos等系统yum安装PHP扩展方法

1、利用yum search查找扩展包

~# yum search memcached php
php-pecl-memcached - memcached module for php5

2、使用yum install安装扩展包

~# yum install -y php-pecl-memcached
Reading package lists... Done
Reading state information... Done
...

说明:

使用apt或者yum安装PHP扩展会自动配置php.ini文件,安装完直接可用,十分方便。缺点是有些扩展在apt或者yum中没有对应的扩展安装包。

【推荐学习:《PHP视频教程》】

方法二、使用pecl安装

使用pecl install命令安装扩展

1、pecl install安装

~# pecl install memcached
downloading memcached-2.2.0.tgz ...
Starting to download memcached-2.2.0.tgz (70,449 bytes)
....

2、配置php.ini

通过运行 php --ini查找php.ini文件位置,然后在文件中添加extension=memcached.so

方法三、源码编译安装(一般是安装PHP自带的扩展,以安装pcntl扩展为例)

1、利用php -v命令查看当前的PHP CLI的版本

~# php -v
PHP 5.3.29-1~dotdeb.0 with Suhosin-Patch (cli) (built: Aug 14 2014 19:55:20)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies

2、根据版本下载PHP源代码

PHP历史版本下载页面:http://php.net/releases/

3、解压源码压缩包

例如下载的压缩包名称是php-5.3.29.tar.gz

~# tar -zxvf php-5.3.29.tar.gz
php-5.3.29/
php-5.3.29/README.WIN32-BUILD-SYSTEM
php-5.3.29/netware/
...

4、进入源码中的ext/pcntl目录

~# cd php-5.3.29/ext/pcntl/

5、运行 phpize 命令

~# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

6、运行 configure命令

~# ./configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
...

7、运行 make 命令

~# make
/bin/bash /tmp/php-5.3.29/ext/pcntl/libtool --mode=compile cc ...
-I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend...
...

8、运 行make install 命令

~# make install
Installing shared extensions:     /usr/lib/php5/20090626/

9、配置ini文件

通过运行 php --ini查找php.ini文件位置,然后在文件中添加extension=pcntl.so

说明: 此方法一般用来安装PHP自带的扩展,例如posix扩展和pcntl扩展。除了用phpize编译某个扩展,也可以重新编译整个PHP,在编译时用参数添加扩展,例如在源码根目录运行

~# ./configure --enable-pcntl --enable-posix ...
~# make && make install

方法四、phpize安装

如果要安装的扩展在php源码ext目录中没有,那么这个扩展需要到http://pecl.php.net 搜索下载

以安装libevent扩展为例(假设系统安装了libevent-dev库)

1、下载libevent扩展文件压缩包(在当前系统哪个目录下载随意)

~# wget http://pecl.php.net/get/libevent-0.1.0.tgz
--2015-05-26 21:43:40--  http://pecl.php.net/get/libevent-0.1.0.tgz
Resolving pecl.php.net... 104.236.228.160
Connecting to pecl.php.net|104.236.228.160|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9806 (9.6K) [application/octet-stream]
Saving to: “libevent-0.1.0.tgz”

100%[=======================================================>] 9,806       41.4K/s   in 0.2s

2、解压扩展文件压缩包

~# tar -zxvf libevent-0.1.0.tgz
package.xml
libevent-0.1.0/config.m4
libevent-0.1.0/CREDITS
libevent-0.1.0/libevent.c
....

3、进入到源码目录

~# cd libevent-0.1.0/

4、运行phpize命令

~# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

5、运行configure

So ermitteln Sie, welche Erweiterungen von PHP CLI installiert werden🎜Durch Ausführen von php -m wird das Befehlszeilen-PHP aufgelistet CLI ist bereits installiert. Das Ergebnis ähnelt dem folgenden: 🎜
~# ./configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
...

So ermitteln Sie den Speicherort der PHP-CLI-Datei php.ini 🎜🎜Wenn wir die Erweiterung installieren, kann es sein, dass Sie die php.ini-Datei manuell konfigurieren und die Erweiterung hinzufügen müssen, daher müssen Sie den Speicherort der php.ini-Datei der PHP-CLI bestätigen. Sie können php --ini ausführen, um den Speicherort der INI-Datei der PHP-CLI zu ermitteln. Das Ergebnis ähnelt dem folgenden (die von jedem System angezeigten Ergebnisse sind unterschiedlich): 🎜
~# /bin/bash /data/test/libevent-0.1.0/libtool --mode=compile cc  -I. -I/data/test/libevent-0.1.0 -DPHP_ATOM_INC -I/data/test/libevent-0.1.0/include
...

Erweiterungen für PHP CLI installieren (Installation von Memcached-Erweiterungen als Beispiel)

Methode 1. Verwenden Sie den Befehl apt oder yum zur Installation 🎜 🎜Wenn PHP über den Befehl apt oder yum installiert wird, kann die Erweiterung auch über apt oder yum installiert werden 🎜🎜Debian/Ubuntu und andere Systeme apt um die PHP-Erweiterungsmethode zu installieren (Nicht-Root-Benutzer müssen den Befehl sudo hinzufügen)🎜🎜1 Verwenden Sie apt-cache search, um das Erweiterungspaket zu finden 🎜
~# make install
Installing shared extensions:     /usr/lib/php5/20090626/
🎜2. Verwenden Sie apt-get install, um das Erweiterungspaket zu installieren. 🎜rrreee Code >yum search, um das Erweiterungspaket zu finden🎜rrreee🎜2. Verwenden Sie yum installInstallieren des Erweiterungspakets🎜rrreee🎜 Anleitung:🎜🎜Wenn Sie die PHP-Erweiterung mit apt oder yum installieren, wird die Datei php.ini automatisch konfiguriert. Nach der Installation ist sie direkt verfügbar und sehr praktisch. Der Nachteil besteht darin, dass einige Erweiterungen keine entsprechenden Erweiterungsinstallationspakete in apt oder yum haben. 🎜🎜【Empfohlenes Lernen: „PHP-Video-Tutorial"]🎜

Methode 2, verwenden Sie pecl zum Installieren🎜🎜Verwenden Sie den Befehl pecl install, um die Erweiterung zu installieren🎜🎜1, pecl installInstallieren Sie 🎜rrreee🎜2. Konfigurieren Sie php.ini🎜🎜 Suchen Sie den Speicherort der php.ini-Datei, indem Sie php --ini ausführen, und Fügen Sie dann extension=memcached.so🎜

Methode drei, Quellcode-Kompilierung und Installation (normalerweise installieren Sie die Erweiterung, die mit PHP geliefert wird, um die pcntl-Erweiterung zu installieren. 🎜🎜1 Verwenden Sie den Befehl php -v, um die aktuelle PHP-CLI-Version zu überprüfen🎜rrreee🎜2 Code entsprechend der Version🎜🎜Seite zum Herunterladen der historischen PHP-Version: http://php.net/releases/🎜🎜3. Dekomprimieren Sie das komprimierte Quellcodepaket. Der Name des heruntergeladenen komprimierten Pakets lautet beispielsweise php-5.3.29.tar.gz🎜rrreee🎜4, geben Sie das ext/pcntl-Verzeichnis im Quellcode ein🎜rrreee🎜5. Führen Sie phpize aus Befehl🎜rrreee🎜6. Führen Sie den Befehl configure aus🎜rrreee🎜 7. Führen Sie den Befehl make aus🎜rrreee🎜8 >make install-Befehl🎜rrreee🎜9. Konfigurieren Sie die INI-Datei, indem Sie php --ini ausführen. Suchen Sie den Speicherort der php.ini-Datei und Fügen Sie extension=pcntl.so🎜🎜 in die Datei ein. Hinweis: Diese Methode wird im Allgemeinen verwendet, um Erweiterungen zu installieren, die mit PHP geliefert werden, z Posix-Erweiterungen und PCNTL-Erweiterungen. Zusätzlich zur Verwendung von phpize zum Kompilieren einer Erweiterung können Sie auch das gesamte PHP neu kompilieren und während der Kompilierung Erweiterungen mit Parametern hinzufügen, z. B. durch Ausführen im Quellcode-Stammverzeichnis🎜rrreee

Methode 4, PHPize-Installation 🎜🎜Wenn sich die zu installierende Erweiterung nicht im ext-Verzeichnis des PHP-Quellcodes befindet, muss die Erweiterung unter http://pecl.php.net gesucht und heruntergeladen werden🎜🎜Nehmen Sie die Installation von libevent vor Erweiterung als Beispiel (vorausgesetzt, auf dem System ist die libevent-dev-Bibliothek installiert)🎜 🎜1. Laden Sie das komprimierte Paket der libevent-Erweiterungsdatei herunter (Sie können es in jedem Verzeichnis des aktuellen Systems herunterladen) 🎜rrreee🎜2 Komprimiertes Paket 🎜rrreee🎜3. Geben Sie das Quellcodeverzeichnis ein 🎜rrreee🎜4. Führen Sie den Befehl phpize aus🎜rrreee🎜5 Befehl🎜
~# ./configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
...

6、运行make命令

~# /bin/bash /data/test/libevent-0.1.0/libtool --mode=compile cc  -I. -I/data/test/libevent-0.1.0 -DPHP_ATOM_INC -I/data/test/libevent-0.1.0/include
...

7、运行make install命令

~# make install
Installing shared extensions:     /usr/lib/php5/20090626/

8、配置ini文件

通过运行 php --ini查找php.ini文件位置,然后在文件中添加extension=libevent.so

Das obige ist der detaillierte Inhalt vonSo installieren Sie die Erweiterung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn