PHP Redis擴(kuò)展無(wú)法加載的問(wèn)題解決方法
最近在工作中需要使用PHP訪問(wèn)Redis,從https://github.com/phpredis/phpredis下載了phpredis,并且按照官方的說(shuō)明進(jìn)行了安裝
phpize ./configure [--enable-redis-igbinary] make && make install
但是在重啟php-fpm的過(guò)程中,發(fā)生了如下的錯(cuò)誤,redis.so無(wú)法載入
[root@brand009 modules]# /usr/sbin/php-fpm /usr/sbin/php-fpm: /usr/lib64/libssl.so.10: no version information available (required by /usr/sbin/php-fpm) /usr/sbin/php-fpm: /usr/lib64/libcrypto.so.10: no version information available (required by /usr/sbin/php-fpm) /usr/sbin/php-fpm: /usr/lib64/libcrypto.so.10: no version information available (required by /usr/sbin/php-fpm) [29-Jun-2015 11:14:43] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: zend_new_interned_string in Unknown on line 0 <br /> <b>Warning</b>: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: zend_new_interned_string in <b>Unknown</b> on line <b>0</b><br /> <br />
試了網(wǎng)上一些解決方案,均無(wú)法解決問(wèn)題。
實(shí)在沒(méi)別的辦法,于是打算重裝php-fpm試試,遂去http://php-fpm.org/download/想下載個(gè)新版本的php-fpm,結(jié)果發(fā)現(xiàn)版本大于5.3.3的PHP內(nèi)部已經(jīng)集成了php-fpm,不用再另行安裝了。
于是用php --version查詢了一下PHP的版本,已經(jīng)是5.6.6了,
php --version PHP 5.6.6 (cli) (built: Mar 9 2015 13:27:38) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
突然恍然大悟,自己一直用的是安裝在另一個(gè)目錄的php-fpm,和PHP并不是配套的
查看這個(gè)php-fpm的版本,發(fā)現(xiàn)是5.3.3
$/usr/sbin/php-fpm -v PHP 5.3.3 (fpm-fcgi) (built: Oct 30 2014 20:14:56) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
而PHP內(nèi)部集成的php-fpm版本是5.6.6
$ /usr/local/php/sbin/php-fpm -v PHP 5.6.6 (fpm-fcgi) (built: Mar 9 2015 13:27:55) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
用PHP內(nèi)部集成的php-fpm重啟,成功!
root 18442 1 0 17:36 ? 00:00:01 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) nobody 30640 18442 0 18:04 ? 00:00:02 php-fpm: pool www nobody 31156 18442 0 18:05 ? 00:00:02 php-fpm: pool www nobody 32424 18442 0 18:08 ? 00:00:02 php-fpm: pool www
所以粗心害死人啊,以后在安裝程序的時(shí)候需要多加小心,盡量顯式的標(biāo)明軟件的版本,這樣就會(huì)少犯這樣的錯(cuò)誤,少走彎路了。
另外需要注意:
在php.ini中一定要配置extension_dir和extension,如:
extension_dir = "/usr/lib64/php/modules/" extension=redis.so
phpredis編譯出來(lái)的redis.so也需要拷貝到"/usr/lib64/php/modules/"中
"/etc/php.d/"中也要軟連接redis.so,并且要?jiǎng)?chuàng)建一個(gè)redis.ini文件,內(nèi)容如下:
$ cat /etc/php.d/redis.ini ; Enable redis extension module extension=redis.so
安裝phpredis還可以通過(guò)命令
pecl install redis
以上就是本次介紹的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的閱讀和對(duì)腳本之家的支持。
相關(guān)文章
php foreach循環(huán)中使用引用的問(wèn)題
本文來(lái)給大家介紹php foreach循環(huán)中使用引用問(wèn)題分析與注意事項(xiàng),希望此文章對(duì)各位同學(xué)會(huì)有所幫助2013-11-11淺談PHP設(shè)計(jì)模式之對(duì)象池模式Pool
對(duì)象池模式是一種提前準(zhǔn)備了一組已經(jīng)初始化了的對(duì)象『池』而不是按需創(chuàng)建或者銷(xiāo)毀的創(chuàng)建型設(shè)計(jì)模式。對(duì)象池客戶端會(huì)向?qū)ο蟪刂姓?qǐng)求一個(gè)對(duì)象,然后使用這個(gè)返回的對(duì)象執(zhí)行相關(guān)操作。當(dāng)客戶端使用完畢,它將把這個(gè)特定類(lèi)型的工廠對(duì)象返回給對(duì)象池,而不是銷(xiāo)毀掉這個(gè)對(duì)象。2021-05-05PHP中大于2038年時(shí)間戳的問(wèn)題處理方案
這篇文章主要介紹了PHP中大于2038年時(shí)間戳的問(wèn)題處理方案,需要的朋友可以參考下2015-03-03PHP弱類(lèi)型語(yǔ)言中類(lèi)型判斷操作實(shí)例詳解
這篇文章主要介紹了PHP弱類(lèi)型語(yǔ)言中類(lèi)型判斷操作,結(jié)合實(shí)例形式分析了php中針對(duì)數(shù)據(jù)類(lèi)型的轉(zhuǎn)換、判斷及函數(shù)使用技巧與注意事項(xiàng),需要的朋友可以參考下2017-08-08PHP面向?qū)ο髮W(xué)習(xí)之parent::關(guān)鍵字
在PHP中不能定義重名的函數(shù),也包括不能再同一個(gè)類(lèi)中定義重名的方法,所以也就沒(méi)有方法重載。下面這篇文章主要給大家介紹了PHP面向?qū)ο笾畃arent::關(guān)鍵字的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01PHP大小寫(xiě)問(wèn)題:函數(shù)名和類(lèi)名不區(qū)分,變量名區(qū)分
這篇文章主要介紹了PHP大小寫(xiě)問(wèn)題,php中變量名是區(qū)分大小寫(xiě)的,而函數(shù)名與類(lèi)名是不區(qū)分的2013-06-06