Проблема именованных каналов в PHP
Я пытаюсь протестировать веб-сайт на локальном компьютере с установленной Windows 7. Я хочу использовать именованные каналы для подключения к серверу MySQL, но mysql_connect()
Кажется, выдает ошибку:
[2002] No connection could be made because the target machine actively (trying to connect via tcp://localhost:3306)
По какой-то причине он все еще использует TCP. Я тестирую с помощью простого скрипта PHP (5.3):
<?php
mysql_connect("localhost", "root", "password") or die();
echo "It works!";
?>
Клиент MySQL работает нормально. Это просто проблема с PHP (обратите внимание: использование TCP вместо этого работает).
Вот что у меня есть в my.ini:
[client]
pipe
socket=mysql
[mysqld]
skip-networking
enable-named-pipe
socket=mysql
Я попытался установить эти переменные в php.ini:
pdo_mysql.default_socket = mysql
mysql.default_socket = mysql
mysqli.default_socket = mysql
1 ответ
Похоже, что это ошибка, затрагивающая двоичные файлы VC9. Смотрите: http://bugs.php.net/bug.php?id=48082 (если ссылка не работает, попробуйте эту кешированную версию). По мнению andrey@php.net:
Патч работает над.
Поддержка будет в следующей минорной версии PHP, будь то 5.4 или что-то еще.
5.3.x этого не получит, так как это классифицируется как новая функция.
Как человек, который задал этот вопрос, я хотел бы отметить, что я использовал веб-сервер Apache. На странице загрузок PHP для Windows написано, что двоичные файлы VC9 не должны использоваться с Apache (я не знал в то время), но это, кажется, отдельная проблема, поскольку у пользователей IIS также была такая же проблема, если вы посмотрите на сообщение об ошибке.