Настройка сокета по умолчанию php PDO ⇐ Php
-
Anonymous
Настройка сокета по умолчанию php PDO
Можно ли настроить php, PDO или, возможно, Apache, чтобы указать местоположение сокета Unix по умолчанию? Я использую php PDO для локального доступа к Postgresql с помощью сокета. Postgresql — это:
прослушивание сокета Unix "/tmp/.s.PGSQL.5432"
Указание местоположения сокета в строке подключения PDO не работает. Это прямо из руководства по PHP.
$dsn = "pgsql:host=/tmp;port=5432;dbname=$db";
Примеры DSN PDO_PGSQL
Это объясняется и решается в предыдущем вопросе.
Сбой сокета PHP PDO Unix для Postgresql
Одно из предложенных решений работает.
$dsn = "pgsql:host=localhost;port=5432;dbname=$db";
Я предпочитаю это решение, которое также предлагается.
$dsn = "pgsql:dbname=$db";
Это не удается, поскольку сокет ищется в /var/run/postgresql/:
$ curl http://localhost/lamp/index.php SQLSTATE[08006] [7] не удалось подключиться к серверу через сокет «/var/run/postgresql/.s.PGSQL.5432»: такого файла или каталога нет. Самое близкое, что я смог найти, — это изменить файл php.ini, но это не применимо к postgresql
Установить MySql по умолчанию
Фрагмент тестового кода (php 4.1.12)
$dsn = "pgsql:dbname=$db"; // устанавливаем соединение с базой данных вернуть новый PDO( $дсн, $пользователь, $пароль, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] );
Можно ли настроить php, PDO или, возможно, Apache, чтобы указать местоположение сокета Unix по умолчанию? Я использую php PDO для локального доступа к Postgresql с помощью сокета. Postgresql — это:
прослушивание сокета Unix "/tmp/.s.PGSQL.5432"
Указание местоположения сокета в строке подключения PDO не работает. Это прямо из руководства по PHP.
$dsn = "pgsql:host=/tmp;port=5432;dbname=$db";
Примеры DSN PDO_PGSQL
Это объясняется и решается в предыдущем вопросе.
Сбой сокета PHP PDO Unix для Postgresql
Одно из предложенных решений работает.
$dsn = "pgsql:host=localhost;port=5432;dbname=$db";
Я предпочитаю это решение, которое также предлагается.
$dsn = "pgsql:dbname=$db";
Это не удается, поскольку сокет ищется в /var/run/postgresql/:
$ curl http://localhost/lamp/index.php SQLSTATE[08006] [7] не удалось подключиться к серверу через сокет «/var/run/postgresql/.s.PGSQL.5432»: такого файла или каталога нет. Самое близкое, что я смог найти, — это изменить файл php.ini, но это не применимо к postgresql
Установить MySql по умолчанию
Фрагмент тестового кода (php 4.1.12)
$dsn = "pgsql:dbname=$db"; // устанавливаем соединение с базой данных вернуть новый PDO( $дсн, $пользователь, $пароль, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] );