当已经安装编译了 PHP, 却发现少安装了一个模块, 就可以使用扩展模块去编译.
查看模块:/usr/local/php/bin/php -m
示例安装一个 redis 模块:
- # cd /usr/local/src
- # wget https://codeload.github.com/phpredis/phpredis/zip/develop
- # mv develop phpredis-develop.zip
- # unzip phpredis-develop.zip
- # cd phpredis-develop/
- # /usr/local/php7/bin/phpize // 为了生成 configure 文件
- Configuring for:
- PHP Api Version: 20160303
- Zend Module Api No: 20160303
- Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the 首次会报错说少了 autoconf 这个包
$PHP_AUTOCONF environment variable. Then, rerun this script.
- # yum install -y autoconf
- # /usr/local/php7/bin/phpize 此时就可以 ls 看到有 configure 这个文件了
- # ./configure --with-php-config=/usr/local/php7/bin/php-config
一般情况下只需要加这个选项就可以了.
- # make
- # make install // 会把 redis.so 的文件放到这个 20160303 目录下
- Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
此时 redis 模块还没有加载, 需要配置一下:
- # /usr/local/php7/bin/php -i |grep extension_dir // 查看扩展模块存放目录, 可在 php.ini 中自定义该路径.
- # vim /usr/local/php7/etc/php.ini // 增加一行配置, 可放在最后一行
- extension=redis.so
- # /usr/local/php7/bin/php -m |grep redis // 已经加载好了
- redis
通常扩展模块会放到这个目录下 / usr/local/php7/lib/php/extensions/
# cd /usr/local/src/php-7.1.6/ext
当你想编译一个扩展模块时, 如果它自带的源码包里的 ext 目录下有这个模块的目录, 那你就可以直接进这个模块的目录下去编译它.
进入目录,
然后 / usr/local/php7/bin/phpize
再加一条# ./configure --with-php-config=/usr/local/php7/bin/php-config
再# make && make install
然后进 / usr/local/php7/etc/php.ini 增加一行 extension=zip.so 的配置就可以加载出来了.
扩展
apache rewrite 教程 http://coffeelet.blog.163.com/blog/static/13515745320115842755199/ http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html
apache rewrite 出现死循环 http://ask.apelearn.com/question/1043
php 错误日志级别参考 http://ask.apelearn.com/question/6973
php 开启短标签 http://ask.apelearn.com/question/120
php.ini 详解 http://legolas.blog.51cto.com/2682485/493917
来源: http://www.bubuko.com/infodetail-2567683.html