官方扩展
在 Linux 下通过源码安装 PHP,一般都不会把所有的官方扩展都装上。面我之前看官网手册介绍,这些官方扩展都必须要
在编译期间的./configure
配置阶段加上--with-*
等参数进行安装的。以至于我一度认为万一用到这些未安装的官方扩展时
都要重装一下 PHP。
刚才重装 Linux 时顺带配了下 PHP 环境,才发现原来这些官方扩展也可以跟第三方扩展一样单独编译的。看来还是基础不够牢, 对一些概念理解不到位才会造成这个误解。
在 PHP 的源码目录中有一个ext
目录,该目录放的就是官方扩展。既然有源码,一切都好办了,按照一般的扩展安装步骤处理即可:
- 进入扩展目录:
cd ext
; - 运行
phpize
,生成configure
文件,如果系统安装了多个版本的 PHP,注意调用对应版本的phpize
; - 运行
./configure --with-php-config=/path/to/php-config
; make
编译;make test
进行测试,注意,这一步如果出现错误可以先忽略,只要可以正确安装扩展即可;- 源码安装可能会找不到 PHP 的配置文件,这时候运行
php -i | grep php.ini
查看了下配置文件所在的目录,然后把 PHP 源码目录中的php.ini-*
复制到配置文件目录:cp php.ini-* /path/to/php.ini
,php.ini-*
特指某一配置文件; - 在
php.ini
添加正确的扩展目录以及extension=*.so
,*.so
特指某一个扩展; - 重启服务器;
第三方扩展
pecl 安装
PECL 是 PHP 官方提供的扩展仓库,里面的扩展相对比较有保障,当然只是相对。使用 pecl 工具可以方便地了解安装这些扩展。
以下命令用来安装 pecl 工具。
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar
$ pecl
...
一般情况下使用pecl search
和pecl install
即可,第一个命令用于搜索扩展,第二个命令用于安装扩展。有时候由于版本限制,需要安装指定扩展,可以先在http://pecl.php.net搜索扩展主页,查看版本列表,指定版本安装,如pecl install channel://pecl.php.net/redis-5.3.1
。
源码安装
源码安装的步骤跟官方扩展的差不多,主要的不同就是需要自己下载扩展库的源码包。