Я создаю файл компоновки, который создает nginx, php, mysql и phpmyadmin.Docker Нет подключения MySQL к Nginx
Все работает для себя. PHPmyAdmin может разговаривать с контейнером mysql. Nginx может разговаривать с контейнером php.
Но, похоже, что nginx или php не могут разговаривать с mysql. При выполнении что-то вроде
mysql_connect('localhost','florian','pw')
он возвращает:
Uncaught Error: Call to undefined function mysql_connect()
Вот мой докер-compose.yml
php:
build: php-docker/.
container_name: php
ports:
- "9000:9000"
volumes:
- /var/www/:/var/www/
nginx:
build: nginx-docker/.
container_name: nginx
links:
- php
ports:
- "80:80"
mysql:
build: mysql-docker/.
container_name: mysql
volumes:
- /var/mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: pw
MYSQL_USER: florian
MYSQL_PASSWORD: pw
MYSQL_DATABASE: db
phpmyadmin:
build: phpmyadmin/.
links:
- mysql:db
ports:
- 1234:80
container_name: phpmyadmin
environment:
PMA_ARBITRARY: 1
PMA_USERNAME: florian
PMA_PASSWORD: pw
MYSQL_ROOT_PASSWORD: pw
restart: always
Какую версию PHP вы используете? Расширение Mysql было удалено из php7. Использовать PDO или mysqli – frz3993
Можете ли вы получить доступ к MySQL с вашего хоста? – apokryfos
Вы не можете подключиться к localhost, если ваш экземпляр MySQL работает в другом контейнере. Во-первых, вам нужно подключить оба контейнера к сети докеров, если вы не будете использовать сеть по умолчанию. Теперь вы можете подключаться к контейнеру MySQL, используя имя контейнера (в данном случае mysql) или IP. –