Я совершенно новый для докеров, и я пытаюсь создать стек LEMP с компоновкой докеров. Все мои контейнеры запущены, но я не могу подключить мой контейнер php к моему контейнеру mysql. У меня есть Докер-compose.yml, который выглядит следующим образом:Не могу получить мой контейнер php для подключения к контейнеру mysql.
version: '2'
services:
nginx:
image: evild/alpine-nginx:1.9.15-openssl
container_name: lemp_nginx
restart: always
links:
- php:php
volumes:
- ./html:/var/www/html/:ro
- ./nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf:ro
- ./nginx/conf.d:/etc/nginx/conf.d:ro
ports:
- 80:80
- 443:443
php:
build:
context: .
dockerfile: Dockerfile.php-fpm
container_name: lemp_php
restart: always
volumes:
- ./html:/var/www/html
depends_on:
- db
links:
- db:db
db:
image: mariadb:latest
container_name: lemp_mariadb
restart: always
volumes:
- db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: wp
MYSQL_DATABASE: wp
volumes:
db-data:
driver: local
Тогда в моей ./html папку я создал файл index.php со следующим содержанием, чтобы проверить подключение к базе:
<?php
$dbuser = 'root';
$dbpass = 'wp';
$dbhost = 'db';
$connect = mysqli_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
echo "Connected to DB!";
Результат: Предупреждение: mysqli_connect(): (HY000/1045): Доступ запрещен для пользователя 'root'@'172.18.0.3' (с использованием пароля: YES) в /var/www/html/index.php on line 7 Невозможно подключиться к 'db'
$ dbhost должно быть «localhost», я думаю? – Tester
Не работает: «Предупреждение: mysqli_connect(): (HY000/2002): Нет такого файла или каталога в /var/www/html/index.php в строке 7 Невозможно подключиться к« localhost » Это может ' t быть localhost, потому что в php-контейнере нет правильной работы mysql? – hazmah0
Хорошо, теперь я прочитал ваше редактирование. Ошибка отказа в доступе означает работу с подключением, но есть/есть некоторые проблемы с разрешением – Tester