MAMP 中的 Mysql 和 redis 都是 unix socket 时的配置方法
使用了一圈,感觉开发环境最方便的,还是用 MAMP RPO。毕竟都是原生的,用 homestead,sail 这类环境,多多少少有点不适应。
但默认的MAMP 为了安全,都是使用本地套接字连接 ( Unix socket )。
/Applications/MAMP/tmp/mysql/mysql.sock
/Applications/MAMP/tmp/redis.sock
按常规配置都不能连接上数据库和 redis 。查了一圈资料基本也找不到答案,没法子。读源代码,试出了答案。
对于 mysql 需要在 connection 里增加 unix_socket 项目。修改 /config/database.php
'connections' => [
'mysql' => [
...
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
]
]
对于 redis 要在 connection 里加 scheme 项目和 path 项目
'redis' => [
'default' => [
...
'scheme'=>'unix',
'path' => '/Applications/MAMP/tmp/redis.sock',
]
]
经过这个配置后,就可以直接通过套接字连上了。当然,生产环境这样用,也会更安全。
本作品采用《CC 协议》,转载必须注明作者和本文链接
进入了 laravel9 以后,如果 REDIS_CLIENT= phpredis 。那么配置方法,就更特殊了,又是一阵好找。
这次,直接在 .env 里加配置
CACHE_DRIVER=redis
REDIS_HOST=/Applications/MAMP/tmp/redis.sock
REDIS_PORT=-1
注意 port 是 -1 。
数据库只需要在 .env 里增加配置
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock