MAMP 中的 Mysql 和 redis 都是 unix socket 時的配置方法

blueidea發表於2021-04-05

使用了一圈,感覺開發環境最方便的,還是用 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 協議》,轉載必須註明作者和本文連結

相關文章