Docker compose docker使用nginx php和mysql编写简单示例
有人能帮我连接我的PHP和MySQL吗 我确实设法建立并运行了它,用MySQL Workbench连接到DB,但当我尝试从PHP文件进行PDO连接时,由于某种原因失败了 docker composeDocker 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
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,但这并不奇怪,我已经要睡觉了。如果你还需要帮助,明天打电话给我。