Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel Homestead Redis Port Forwarding

I'm having some trouble here trying to remotely connect to my local Homestead Redis server. I'm using both commandline (redis-cli) and RDM.

I'm able to connect with Postgresql with PgAdmin in this box, but Redis returns with:

Could not connect to Redis at 127.0.0.1:63790: Connection refused

My Redis config file "bind" directive is commented, so it should accept connections from all sources. I also tried to stop Redis and start it again, manually pointing to the config file, but without success.

In my Homestead.yaml config file, Redis port was not forwarded by default. According to Homestead's Documentation, I can set port forwarding like this:

ports:
    - send: 63790
      to: 6379
      protocol: udp

Well, I also tried that and restarted the server, but it didn't work.

Am I missing something?

like image 350
Rafael Beckel Avatar asked Jul 04 '15 19:07

Rafael Beckel


3 Answers

SSH to the machine and open /etc/redis/redis.conf.

Find line which starts with bind directive, comment it out and save the file. Then restart redis-server with sudo /etc/init.d/redis-server restart.

Thanks to that Redis will listen for all connections from all available interfaces. You don't need any extra port forwarding.

like image 53
WLN Avatar answered Nov 11 '22 20:11

WLN


For Homestead 0.4 above. Due to redis security setting, it bind only for 127.0.0.1

In this case, you need to bind extra IP address.

  1. SSH to you server.

$sudo vi /etc/redis/redis.conf

Scroll to the line bind 127.0.0.1 add extra IP address 192.168.10.10, it will look like this

bind 127.0.0.1 192.168.10.10

save and exit.

  1. Restart redis server and exit your server.

$sudo /etc/init.d/redis-server restart

That's all, you should be able connect to your Homestead redis from your host.

like image 34
Shiro Avatar answered Nov 11 '22 18:11

Shiro


Remove ports settings from your Homestead.yaml you won't need it.

Now by default redis in homestead vm is listening on its normal port, 6379.

You can ssh into your vm and check it:

vagrant@homestead:~$ ps -aux | grep redis
redis      996  0.1  0.4  35232  8752 ?        Ssl  01:53   0:00 /usr/bin/redis-server *:6379

To connect to the vm's redis instance from your local machine you need to use an IP address that is specified in your Homestead.yaml. By default it is 192.168.10.10:

redis-cli -h 192.168.10.10

If you have domain name set up in your local /etc/hosts for your app you can use it instead:

redis-cli -h homestead.app
like image 3
peterm Avatar answered Nov 11 '22 19:11

peterm