1. 查看是否安裝redis庫
查看是否安裝redis庫了。可以通過下面2種方式查看。
phpinfo()是否能輸出redis的加載信息
在命令行執行`php -m` 輸出gd
2. 安裝redis庫
2.1 安裝redis庫(源碼安裝)
下載phpredis3.1.2
wget https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz
解壓後在phpredis3.1.2目錄下執行
tar -zxvf 3.1.2.tar.gz && cd phpredis-3.1.2/
phpize extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/redis.so #路徑根據實際
注:如果沒有phpize,需要安裝php-dev,可以執行apt-get install php-dev
./configure --with-php-config=/usr/local/php-5.6.30/bin/php-config #php-config爲已安裝php的腳本文件。用於獲取所安裝的php配置的信息
make && make install
一般情況下安裝完成後會在/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目錄下生成redis.so
配置php.ini,添加一行
extension = redis.so
2.2 重啓php
ps -ef | grep php-fpm | awk ‘{print $2}’| xargs kill ; /usr/local/php/sbin/php-fpm
2.3 重啓nginx
/usr/local/nginx/sbin/nginx -s restart
3. 問題小結
3.1 重啓php報錯
NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php-5.6.30/lib/php/extensions/no-debug-non-zts-20131226/redis.so‘ - /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/redis.so: undefined symbol: zend_new_interned_string in Unknown on line 0
產生問題
1) 在編譯安裝redis庫時沒有指定–with-php-config= /usr/local/php-5.6.30/bin/php-config ,或指定錯誤。
解決方法
刪除整個文件,重新解壓編譯安裝。注意,如果在已編譯的文件上繼續編譯,安裝後會不生效,所以最好是刪除文件,重新解壓編譯。