小编far*_*rld的帖子

无法在php中连接到postgres-docker-container中的db

我有一个带有apache2的debian wheezy服务器.该数据库是一个docker容器 - 标准postgres:9.1,端口5432暴露给localhost:5434,数据文件夹位于通过-v选项连接的自己的容器中.

数据容器

docker run --name db-data -v/data -e PGDATA =/data -it --entrypoint/bin/bash postgres:9.1

数据库容器

docker run -d --name db -e POSTGRES_USER = name -e POSTGRES_PASSWORD = pwd -e PGDATA =/data -p 5434:5432 - volumes-from db-data postgres:9.1

我使用一个简单的PHP脚本来测试连接:

$db = pg_connect("host=localhost port=5434 dbname=name user=name password=pwd connect_timeout=5");
if ($db) {
  echo pg_options($db);
} else {
  echo "error";
}
Run Code Online (Sandbox Code Playgroud)

当我通过这个脚本运行时php info.php,我在短暂的等待时间后得到了以下错误:

PHP警告:pg_connect():无法连接到PostgreSQL服务器:超时在第2行的/var/www/start/info.php中过期

  • 我可以通过VPN和pgadmin从远程和本地通过telnet localhost 5434连接.
  • nmap -p 5434 localhost返回,此端口已打开.
  • 我安装了php5-pgsql.
  • docker logs ...即使在完全调试模式下也没有条目

我真的很感激任何输入!

php database postgresql docker

5
推荐指数
0
解决办法
1231
查看次数

标签 统计

database ×1

docker ×1

php ×1

postgresql ×1