【发布时间】:2019-10-19 20:40:34
【问题描述】:
我现在正在学习 PDO,我发现在我的 Ubuntu 18.04LTS 上的 LEMP docker 堆栈(Nginx、php-fpm、MariaDB、phpMyadmin)中学习它会更好。
这是我的 php 文件:
<?php
try {
$mydb = new PDO('mysql:host=database;dbname=mysql;charset=utf8', 'root', 'admin');
} catch (Exception $e) {
die('Error : ' . $e->getMessage());
}
?>
如您所见,我尝试在我的 php 代码中创建一个 PDO 以从我的数据库中恢复一些数据。
但是每次我在浏览器(Firefox 69.0.2)上收到该消息时:
Error : could not find driver
我在这里看到了那个帖子:"Docker can't connect to mariadb with PHP"。这个问题和我的很相似,但对我没有用。
注意:php-fmp 和 Nginx 可以完美地协同工作。 MariaDB 和 phpMyAdmin 也是如此。
这是我的docker-compose.yml 文件:
version: "3"
services:
nginx:
image: tutum/nginx
ports:
- "7050:80"
links:
- phpfpm
volumes:
- ./nginx/default:/etc/nginx/sites-available/default
- ./nginx/default:/etc/nginx/sites-enabled/default
- ./logs/nginx-error.log:/var/log/nginx/error.log
- ./logs/nginx-access.log:/var/log/nginx/access.log
phpfpm:
image: php:fpm
links:
- database:mysql
ports:
- "7051:9000"
volumes:
- ./public:/usr/share/nginx/html
database:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: admin
ports:
- "7052:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
links:
- database:mysql
ports:
- "7053:80"
environment:
PMA_HOST: mysql
PMA_USER: root
PMA_PASSWORD: admin
PMA_ARBITRARY: 1
如果可以在不构建我自己的 Dockerfile 的情况下解决这个问题,那就太好了。 但如果我必须,我会的。这不是问题。
【问题讨论】:
标签: php mysql docker-compose mariadb fpm