У меня есть Dockerfile, который получает образ php5.5, а затем устанавливает пару расширений (freetds-dev sendmail libpng-dev zlib1g-dev unixodbc tdsodbc nano)
.Затем добавляет freetds.conf, а также apache-default conf.
Затем у меня есть docker-composer.yml, который создает файл docker, но также принимает выполненный образ microsoft/mssql-server-linux
.
Я отключаю MSSQL и могу подключить его через PHPStorm, но не могу подключиться к нему с помощью PHP.
Это моя строка подключения:
$dsn = "dblib:host=127.0.0.1:1433;dbname=table;";
$pdo = new PDO($dsn, "sa", "yourStrong(!)Password", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_STRINGIFY_FETCHES => true,
]);
Она не будет подключаться, ивыдает ошибку
SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9)' in /var/www/html
.
Я знаю, что используемые драйверы установлены правильно, потому что я могу найти их при использовании phpinfo();
.
Это в моем freetds.conf
[mssql]
host = 127.0.0.1
port = 1433
tds version = 7.0
Это мой docker-compose:
version: "3"
services:
php:
container_name: php55
build: ./php
links:
- mssql
ports:
- "8086:80"
- "8089:443"
volumes:
- ./www:/var/www/html
mssql:
container_name: mssql
image: microsoft/mssql-server-linux:latest
ports:
- "1433:1433"
environment:
ACCEPT_EULA: Y
SA_PASSWORD: yourStrong(!)Password
Чего мне не хватает?