cancel
Showing results for 
Search instead for 
Did you mean: 

Installing REDIS with Magento 1.8.1 not working

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Installing REDIS with Magento 1.8.1 not working

I've been struggling with this one (of course!) for a while. Can't wrap my brain around it.

Magento just won't connect to the REDIS server. Since i'm getting not errors but a "there has been an error processing your request message" I was forced to put "Mage::setIsDeveloperMode(true);" in the index.php (in the magento root) to view the error.

This is the error i'm not getting:

Connection to Redis failed after 2 failures.

#0 /usr/share/nginx/html/lib/Credis/Client.php(412): Credis_Client->connect()
#1 /usr/share/nginx/html/lib/Credis/Client.php(674): Credis_Client->connect()
#2 /usr/share/nginx/html/lib/Credis/Client.php(573): Credis_Client->__call('select', Array)
#3 /usr/share/nginx/html/app/code/community/Cm/Cache/Backend/Redis.php(125): Credis_Client->select(0)
#4 /usr/share/nginx/html/lib/Zend/Cache.php(153): Cm_Cache_Backend_Redis->__construct(Array)
#5 /usr/share/nginx/html/lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('Cm_Cache_Backen...', Array, true, true)
#6 /usr/share/nginx/html/app/code/core/Mage/Core/Model/Cache.php(137): Zend_Cache::factory('Varien_Cache_Co...', 'Cm_Cache_Backen...', Array, Array, true, true, true)
#7 /usr/share/nginx/html/app/code/core/Mage/Core/Model/Config.php(1348): Mage_Core_Model_Cache->__construct(Array)
#8 /usr/share/nginx/html/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('core/cache', Array)
#9 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(401): Mage::getModel('core/cache', Array)
#10 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(295): Mage_Core_Model_App->_initCache(Array)
#11 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(337): Mage_Core_Model_App->baseInit(Array)
#12 /usr/share/nginx/html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#13 /usr/share/nginx/html/index.php(88): Mage::run('', 'store')
#14 {main}

I'm using a copy of CentOS 6.5 running on VMplayer.

I've have everything setup with:

NGINX > PHP-FPM > MAGENTO 1.8.1 > MYSQL > REDIS

Here's the version of what's i'm running:

nginx-1.6.2-1.el6.ngx.x86_64
redis-2.8.19-1.el6.remi.x86_64
php-pecl-redis-2.2.5-1.el6.x86_64
mysql-server-5.1.73-3.el6_5.x86_64
php-mysql-5.3.3-40.el6_6.x86_64
php-fpm-5.3.3-40.el6_6.x86_64

My NGINX configuration:

user nginx nginx;

worker_processes  2;
pid               /var/run/nginx.pid;
events {
    worker_connections  1024;
}

http {
        include                 /etc/nginx/mime.types;
        default_type            application/octet-stream;

        include /etc/nginx/custom.d/http_level/*.conf;

        error_log              /var/log/nginx/error.log  error;

        log_format      custom  '{ "@timestamp": "$time_iso8601", "webserver_remote_addr": "$remote_addr", "webserver_remote_user": "$remote_user", "webserver_body_bytes_sent": $body_bytes_sent, "webserver_request_time": $request_time, "webserver_status": "$status", "webserver_request": "$request", "webserver_request_method": "$request_method", "webserver_http_referrer": "$http_referer", "webserver_http_user_agent": "$http_user_agent" }';


        access_log             /var/log/nginx/access.log custom;

        server_tokens           off;

        proxy_read_timeout      7200;
        fastcgi_read_timeout    7200;

        server_names_hash_bucket_size 128;

        sendfile                on;
        tcp_nopush              on;
        tcp_nodelay             on;
        keepalive_timeout       120;
        client_max_body_size    120m;

        gzip on;
        gzip_vary on;
        gzip_types text/javascript text/css application/xml application/x-javascript application/javascript;

        variables_hash_max_size 1024;
        variables_hash_bucket_size 128;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  # don’t use SSLv3 ref: POODLE



        upstream php53_mydomain_com_www_mydomain_com {
            server 127.0.0.1:9000;
        }


        # mydomain_com_www_mydomain_com
        map $http_host $magento_multistore_key_mydomain_com_www_mydomain_com {
                default default;
                www.mydomain.com en_us;

        }

        map $http_host $magento_multistore_type_mydomain_com_www_mydomain_com {
                default store;
                www.mydomain.com store;

        }

        server {
            listen              127.0.0.1:80;
            server_name         mydomain.com www.mydomain.com;
            root                /usr/share/nginx/html/;



        include /etc/nginx/custom.d/server_level/*.conf;



            location ~* ^/(server-status|whm-server-status) {
                stub_status on;
                access_log   off;
                allow 10.10.221.2;
                allow 10.10.221.3;
                allow 192.168.209.129;
                allow 10.10.17.108;
                allow 127.0.0.1;
                deny all;
            }

            location /php-fpm-status {
                access_log   off;
                allow 10.10.221.2;
                allow 10.10.221.3;
                allow 192.168.209.129;
                allow 127.0.0.1;

                fastcgi_pass php53_mydomain_com_www_mydomain_com;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }

            # Direct download
            location ~* ^/(js|static|skin|media|images)/ { expires 1w; }
            location /errors/ { }
            location ~* ^/errors/.*\.xml$ { deny all; }
            location ~* ^/errors/.*\.phtml$ { deny all; }

            # Deny
            location ~* /(\.ht|\.svn|\.git) { deny all; }
            location ~* ^/(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { deny all; }

            # 503 error page
#           error_page 500 502 503 504 /503.html;
#           fastcgi_intercept_errors on;
#           location = /503.html { }

            autoindex off;

            location / {
                try_files $uri $uri/ /index.php?$args;
                index index.php index.html;
                access_log off;
            }

            location ~* \.(jpeg|jpg|gif|png|css|js|ico|swf)$ {
                try_files $uri $uri/ /get.php;
                expires 1w;
                access_log off;
            }

            location @proxy {
                try_files $uri =404; # if reference to php executable is invalid return 404
                expires off;
                fastcgi_pass php53_mydomain_com_www_mydomain_com;
                fastcgi_keep_conn on;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;


                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            }

            location ~\.php$ {
                try_files $uri =404; # if reference to php executable is invalid return 404
                expires off;
                fastcgi_pass php53_mydomain_com_www_mydomain_com;
                fastcgi_keep_conn on;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param MAGE_RUN_CODE $magento_multistore_key_mydomain_com_www_mydomain_com;
                fastcgi_param MAGE_RUN_TYPE $magento_multistore_type_mydomain_com_www_mydomain_com;
            }
        }
}

My REDIS config has the usual bind 127.0.0.1 on port 6379 (i've verified that it's listening, and it is)

[root@www cache]# netstat -anp | grep -i 6379
tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      47642/redis-server  
unix  3      [ ]         STREAM     CONNECTED     26379  7905/Xorg           @/tmp/.X11-unix/X0

And finally my magento local.xml file:

<session_save><![CDATA[files]]></session_save>
<cache>
  <backend>Cm_Cache_Backend_Redis</backend>
  <backend_options>
    <server>127.0.0.1</server> <!-- or absolute path to unix socket -->
    <port>6379</port>
    <persistent></persistent> <!-- Specify unique string to enable persistent connections. E.g.: sess-db0; bugs with phpredis and php-fpm are known: https://github.com/nicolasff/phpredis/issues/70 -->
    <database>0</database> <!-- Redis database number; protection against accidental data loss is improved by not sharing databases -->
    <password></password> <!-- Specify if your Redis server requires authentication -->
    <force_standalone>0</force_standalone>  <!-- 0 for phpredis, 1 for standalone PHP -->
    <connect_retries>1</connect_retries>    <!-- Reduces errors due to random connection failures; a value of 1 will not retry after the first failure -->
    <read_timeout>10</read_timeout>         <!-- Set read timeout duration; phpredis does not currently support setting read timeouts -->
    <automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default -->
    <compress_data>1</compress_data>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
    <compress_tags>1</compress_tags>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
    <compress_threshold>20480</compress_threshold>  <!-- Strings below this size will not be compressed -->
    <compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf, lz4 (as l4z) and snappy -->
    <use_lua>0</use_lua> <!-- Set to 1 if Lua scripts should be used for some operations -->
  </backend_options>
</cache>

Please tell me i'm not going crazy Smiley Happy

Thanks for helping,

3 REPLIES 3

Re: Installing REDIS with Magento 1.8.1 not working

No one huh? Smiley Sad

Re: Installing REDIS with Magento 1.8.1 not working

Hi Rennes007

 

Did you check to see if you can access Redis-Cli on your server? At a glance if Redis is installed correctly your config looks ok.

Re: Installing REDIS with Magento 1.8.1 not working

CentOS has SELinux enabled by default. We ran into problem where it was blocking php-fpm <-> redis communication.

You want to see SELinux rules (You should see rule violation in /var/log/audit.log) or disable SELinux all together (that was option I went with, but since this is security enhencment this might not be the best idea to completelly disable it)