袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

PHP C 扩展安装的两种方式

浏览量:80

1 扩展来源
扩展主要来源于三大途径:

1.1 PHP 官网
通常我们都会去 pecl.php.net 下载。这是 PHP 官方维护的。我们只需要在右上角输入想安装的扩展点击搜索即能找到想要的扩展。

1.2 GitHub
GitHub 是全球最大的开源项目网站。很多出色的扩展基本上都会在这里找到最新的源代码。并且还能与项目开发者交流。

1.3 其他
比如自己开发、非 PECL & GitHub 渠道。一些私有厂商给自己的产品开发的扩展等。

2 安装步骤
我们以安装 Redis 扩展为例进行讲解。

# wget http://pecl.php.net/get/redis-3.1.6.tgz
# tar zxvf redis-3.1.6.tgz
# cd redis-3.1.6
# phpize
# ./configure
# make
# make install
2.1 phpize 做了什么?
phpize 命令是 PHP 安装包中支持的一个命令工具。在 Linux 系统下。该命令位置 PHP 安装目录下的 sbin 目录下。它的主要工作是在安装 C 扩展的时候,根据当前系统信息生成对应的 configure 文件。configure 文件是 Linux 系统下源码安装软件必须的文件。

2.2 配置 php.ini
默认情况下,生成的扩展会安装在 PHP 安装包的如下目录:

/usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303/

其中的日期 20160303 是 phpize 执行时得到的 API 版本日期。

要让 Redis 生效,必须在 php.ini 文件当中添加该扩展的信息。

找到配置文件:

# php --ini
会输出如下内容:

Configuration File (php.ini) Path: /usr/local/php71/etc
Loaded Configuration File:         /usr/local/php71/etc/php.ini
Scan for additional .ini files in: /usr/local/php71/etc/php.d
Additional .ini files parsed:      (none)
通过如上信息可以知道我们的配置文件在这里:/usr/local/php71/etc/php.ini 。

在配置文件尾部增加如下代码:

extension = redis.so
如果要像上面这样配置,必须确定你已经正确把如下配置设置好:

extension_dir = "/usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303"
设置好之后。PHP 才能正确去扩展目录下搜索 Redis 扩展。不然,就会报错。

当然,你也可以这样设置扩展配置。

extension = "/usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303/redis.so"
2.3 验证安装是否成功
执行如下命令。

# php -m|grep redis
如果安装成功会输出如下内容:

redis
如果未安装成功,将不会有任何输出。

打赏