我在ubuntu上用php 5.6.28 的源代码编译了一个版本,但是对接redis失败。
总是提示 Fatal error: Class 'Redis' not found in /alidata/www/web/function.php on line 206
我编译时configure命令是这样的
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-mysql=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--with-mysqli=mysqlnd \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-ftp \
--enable-mbstring \
--enable-exif \
--disable-ipv6 \
--with-pear \
--with-curl \
--with-openssl
代理服务器用nginx 到 php-fpm,我用 apt-get 安装过了 php5-redis,php.ini 的extension也改了,还是不行。
extension_dir=/usr/local/php/lib/php/extensions
extension=redis.so
phpinfo是这样的
使用 php-fpm -i 查询,发现php.ini没有加载成功,失败原因匪夷所思,明明我在这个目录下是有php.ini的啊!
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
看你的更新感觉extension地址不对。
比如我的默认的扩展地址是(这个不需要你改):/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212
查一下你的扩展地址。
这地址下是应该要有 redis.so文件的。
修改php.ini,最后重启php-fpm 即可
php-fpm -m 才是现实 cgi模式下的扩展安装情况
php -m 是cli模式下的,注意区分,有些安装环境 二者的 php.ini文件路径不一致,要注意。
从phpinfo 信息来看,你的php.ini 路径是 /usr/local/php/etc/php.ini
按通用的安装扩展方法安装后,修改php.ini,最后重启php-fpm 即可。