1. 闲不住的人首页
  2. 网站服务

PHP7.3安装扩展模块方法

PHP 自身提供了很多扩展,比如 curl、mbstring 等等。我们在编译安装 PHP 时候不可能将所有的扩展全部安装。那么在安装 PHP 后,如果想单独安装某个 PHP 扩展模块应该如何安装?

在编译安装 PHP 完成后,在 PHP 安装目录下有个 ext 目录就是我们已经安装的一些 PHP 扩展模块。

PECL 是通过 PEAR 打包系统来的 PHP 扩展库仓库,我们可以在 PECL 网站上获取 PHP 支持的扩展模块。

本次以 memcached 扩展模块的安装为例说明如何单独添加扩展。

1.1 获取 memcached 扩展包

https://pecl.php.net/package/memcached

[root@iZ2ze3xc84b38n5g66p8f5Z]# yum -y install libmemcached libmemcached-devel
[root@iZ2ze3xc84b38n5g66p8f5Z php-extensions]# tar xf memcached-3.1.3.tgz
[root@iZ2ze3xc84b38n5g66p8f5Z php-extensions]# cd memcached-3.1.3

1.2 执行 phpize

phpize 命令是用来准备 PHP 扩展库的编译环境的。

[root@iZ2ze3xc84b38n5g66p8f5Z memcached-3.1.3]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012

注意:如果你的机器上有多个 PHP 版本,一定要执行你准备安装扩展的 PHP 版本对应的 phpize 命令。

1.3 编译安装

在编译扩展时,如果安装有多个 PHP 版本,可以在配置时用 –with-php-config 选项来指定使用哪一个版本编译,该选项指定了相对应的 php-config 脚本的路径。

[root@iZ2ze3xc84b38n5g66p8f5Z memcached-3.1.3]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@iZ2ze3xc84b38n5g66p8f5Z memcached-3.1.3]# make && make install

安装成功会看到类似如下信息:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

执行结果告诉你将 memcached.so 安装到了哪个目录:

[root@iZ2ze3xc84b38n5g66p8f5Z memcached-3.1.3]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
memcached.so  opcache.a  opcache.so  redis.so

一般情况,如果你正确的指定了 php-config 或者你的机器只有一个 PHP 版本,扩展模块都会被正确安装到相应 PHP 的 extension_dir。如果执行 make install 后,extension_dir 目录下没有相应的扩展模块,可以手动将 make install 生成的 .so 文件复制过去。

要查看具体 extension_dir 位置,可以执行如下命令:

[root@iZ2ze3xc84b38n5g66p8f5Z ~]# php -i | grep extension_dir
extension_dir => /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012 => /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012

1.4 在 php.ini 中加载模块

在文件末尾添加,在添加之前建议先查看一下当前系统上引用是哪个 php.ini,我之前就因为写错了 php.ini 导致模块一直加载不上。

[root@iZ2ze3xc84b38n5g66p8f5Z ~]# vim /usr/local/php/lib/php.ini
extension=memcached.so

如果不知道你当前系统上的 PHP 使用的是哪个 php.ini 可以通过如下命令查看

[root@iZ2ze3xc84b38n5g66p8f5Z ~]# php --ini
Configuration File (php.ini) Path: /usr/local/php/lib
Loaded Configuration File:         /usr/local/php/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

修改后重启 php-fpm 或者 Apache httpd 我这里是 php-fpm 所以就重启 php-fpm

[root@iZ2ze3xc84b38n5g66p8f5Z ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

1.6 验证模块是否安装成功

[root@iZ2ze3xc84b38n5g66p8f5Z ~]# php -m | grep memcached
memcached

在 phpinfo 页面查看

phpinfo页面验证
phpinfo页面验证

如果觉得文章不错,不妨给个『打赏』写作不易,各位的支持,能激发和鼓励我更大的写作热情。谢谢

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/601.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code