PHP 扩展模块安装
编译 httpd 时, 有涉及动态和静态模块, PHP 也一样有静态与动态之分, 之前所涉及到的 PHP 安装都全部为静态, 并没有任何动态的模块, 所谓动态, 就是一个独立存在的. so 文件, 在 httpd 中 PHP 就是以动态模块的形式被加载的 PHP 一旦编译完成后, 要想再增加一个功能的话, 要么重新编译 PHP, 要么直接编译一个扩展模块 (生成一个. so 文件), 然后在 php.ini 中配置一下, 就可以被加载使用了
1 查看 PHP 加载的模块
- [root@zlinux ~]# /usr/local/php/bin/php -m
- [PHP Modules]
- bz2
- Core
- ctype
- date
- dom
- ereg
- exif
- fileinfo
- filter
- gd
- hash
- iconv
- json
- libxml
- mbstring
- mcrypt
- mysql
- mysqli
- openssl
- pcre
- PDO
- pdo_mysql
- pdo_sqlite
- Phar
- posix
- Reflection
- session
- SimpleXML
- soap
- sockets
- SPL
- sqlite3
- standard
- tokenizer
- xml
- xmlreader
- xmlwriter
- zlib
- [Zend Modules]
2 安装一个 PHP 扩展模块 (redis 模块)
- [root@zlinux ~]# cd /usr/local/src/
- [root@zlinux src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
- [root@zlinux src]# mv develop phpredis-develop.zip
- [root@zlinux src]# unzip phpredis-develop.zip
- [root@zlinux src]# cd phpredis-develop/
- [root@zlinux phpredis-develop]# /usr/local/php/bin/phpize // 目的是生成 configure 文件
- Configuring for:
- PHP Api Version: 20131106
- Zend Module Api No: 20131226
- Zend Extension Api No: 220131226
- Cannot find autoconf. Please check your autoconf installation and the
- $PHP_AUTOCONF environment variable. Then, rerun this script.
- // 报错 Cannot find autoconf, 需要安装一些 autoconf
- [root@zlinux phpredis-develop]# yum install -y autoconf
- [root@zlinux phpredis-develop]# /usr/local/php/bin/phpize
- Configuring for:
- PHP Api Version: 20131106
- Zend Module Api No: 20131226
- Zend Extension Api No: 220131226
- [root@zlinux phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config
- [root@zlinux phpredis-develop]# make
- [root@zlinux phpredis-develop]# make install
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
- //make install 会把编译好的 redis 放到这个目录下, 该目录为扩展模块存放目录
- [root@zlinux phpredis-develop]# /usr/local/php/bin/php -i | grep -i extension_dir
- extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226
- sqlite3.extension_dir => no value => no value
- // 查看扩展模块目录, 也可以在 php.ini 中修改目录
- [root@zlinux phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
- opcache.so redis.so
3 修改 PHP 配置文件, 使扩展模块生效
- [root@zlinux phpredis-develop]# vim /usr/local/php/etc/php.ini // 添加以下内容
- extension = redis.so
- [root@zlinux phpredis-develop]# /usr/local/php/bin/php -m | grep redis // 查看是否加载了 redis
- redis
来源: http://www.bubuko.com/infodetail-2520246.html