Docker compose docker使用nginx php和mysql编写简单示例

Docker compose docker使用nginx php和mysql编写简单示例,docker-compose,Docker Compose,有人能帮我连接我的PHP和MySQL吗 我确实设法建立并运行了它,用MySQL Workbench连接到DB,但当我尝试从PHP文件进行PDO连接时,由于某种原因失败了 docker compose web: image: nginx:latest ports: - "80:80" volumes: - ./:/var/www - ./site.conf:/etc/nginx/conf.d/site.conf lin

有人能帮我连接我的PHP和MySQL吗 我确实设法建立并运行了它,用MySQL Workbench连接到DB,但当我尝试从PHP文件进行PDO连接时,由于某种原因失败了

docker compose

web:
    image: nginx:latest
    ports:
        - "80:80"
    volumes:
        - ./:/var/www
        - ./site.conf:/etc/nginx/conf.d/site.conf
    links:
        - php
php:
    image: php:7-fpm
    volumes:
        - ./:/var/www
    links:
        - db

db:
    image: mysql:5.7
    volumes:
     - /var/lib/mysql
    environment:
     - MYSQL_ROOT_PASSWORD=123456
     - MYSQL_DATABASE=database
    ports:
     - "3306:3306"
site.conf

server {
    index index.php index.html;
    server_name lara.test;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}
和index.php

<?php

$database = new PDO('mysql:host=localhost;dbname=database', "root", "123456");
echo "Connected to MySQL<br />";

?>

和错误消息:

致命错误:未捕获PDO异常:在中找不到驱动程序 /var/www/index.php:3堆栈跟踪:#0/var/www/index.php(3): PDO->_构造('mysql:host=loca…','root','123456')#1{main} 在第3行的/var/www/index.php中抛出

为了让这一切顺利进行,我错过了什么?

只要改变就行了

$database=new-PDO('mysql:host=localhost;dbname=database',“root”, "123456");

$database=newpdo('mysql:host=db;dbname=database',“root”,“123456”)


host
的名称必须与
docker compose
文件上数据库映像的名称相同。

Dude,PHP映像是空的。错误是不言自明的,MySQL驱动程序丢失了。创建自定义映像或使用其他映像。我尝试使用运行docker php ext install mysqli&\docker php ext install pdo_mysql来放置dockerfile,但这并不奇怪,我已经要睡觉了。如果你还需要帮助,明天打电话给我。