Как соединить php и mysql с помощью docker-compose? - PullRequest
0 голосов
/ 15 сентября 2018

Я создал простой файл для проверки соединения php и mysql .

<?php
$link = mysqli_connect("port", "root", "123456", "mysql");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "</br>";

    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "</br>";

    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL. "\n";
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL. "\n";

mysqli_close($link);
?>

В первой строке я должен записать реальный портномер instand для «порта», но я не знаю, какой у меня номер порта.

Мой docker-compse.yml похож на следующий:

version: '3'
services:
    nginx:
        image: nginx:latest
        ports:
            - "3002:80"
        volumes:
            - "./conf.d:/etc/nginx/conf.d"
            - "./workshop:/workshop"
        networks:
            - app_net
        container_name: "compose-nginx"
    php:
        build:
            context: .
            dockerfile: ./php-mysqli/Dockerfile
        volumes:
            - "./workshop:/workshop"
        networks:
            - app_net
        container_name: "compose-php"
    mysql:
        image: mysql:5.7
        environment:
            - MYSQL_ROOT_PASSWORD=123456
        networks:
            app_net:
                ipv4_address: 10.10.10.1
        container_name: "compose-mysql"
networks:
    app_net:
        driver: bridge
        ipam:
            config:
                - subnet: 10.10.0.0/16

Похоже, я почти закончил, я уже подключил nginx и php.

Но я не знаю, как соединить php и mysql, может ли кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 15 сентября 2018

Первым аргументом mysqli_connect должно быть имя хоста вашего сервера БД (не порта), которое в docker-compose является именем службы. Итак, вам нужно:

mysqli_connect('mysql', ...)

Согласно документам порт является аргументом 5. По умолчанию используется значение 3306, поэтому вам не нужно его передавать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...