Ich baue eine Compose-Datei, die nginx, php, mysql und phpmyadmin erstellt.Docker Keine MySQL-Verbindung zu Nginx
Alles funktioniert für sich. PHPmyAdmin kann mit dem mysql Container kommunizieren. Nginx kann mit PHP-Container sprechen.
Aber es scheint, dass nginx oder php nicht in der Lage ist, mit mysql zu sprechen. Wenn etwas Ausführung wie
mysql_connect('localhost','florian','pw')
es gibt zurück:
Uncaught Error: Call to undefined function mysql_connect()
Hier mein Docker-compose.yml ist
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
Welche Version von PHP verwenden Sie? Mysql Erweiterung wurde von PHP7 entfernt. Verwenden Sie PDO oder mysqli – frz3993
Können Sie von Ihrem Host auf MySQL zugreifen? – apokryfos
Sie können keine Verbindung zu localhost herstellen, wenn Ihre MySQL-Instanz in einem anderen Container ausgeführt wird. Zunächst müssen Sie beide Container im Netzwerk des Andockers verbinden, wenn Sie das Standardnetzwerk nicht verwenden möchten. Jetzt können Sie eine Verbindung zum MySQL-Container herstellen, indem Sie den Containernamen (in diesem Fall mysql) oder die IP-Adresse verwenden. –