使用docker-compose编写常规的lnmp容器,pdo连接mysql失败。
问题的核心是yii2 是通过pdo的方式去连接数据的。但是我们通过容器去搭建lnmp环境时,nginx , php , mysql 这三个服务是独立的三个容器,彼此隔离。所以在yii2中连接mysql服务器的时候不能写"localhost" 或者 "127.0.0.1"等主机,而是你的容器名 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8c025a080f5 nginx:latest "nginx -g 'daemon of…" 2 weeks ago Up 15 minutes 0.0.0.0:80->80/tcp nginx fafd4fd5c5e1 mysql:5.7 "docker-entrypoint.s…" 2 weeks ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql 005721049e99 php:7.2-fpm "docker-php-entrypoi…" 2 weeks ago Up 15 minutes 0.0.0.0:9000->9000/tcp php 我的mysql 容器的容器名就叫mysql 那么我们yii2中的配置文件就应该如下写: return [ 'class' => 'yii\db\Connection',