PHP5.3 не работает с MySQL5.1 IIS7. Время истекло.
Вопрос
Я установил PHP5.3, MySQL5.1 и IIS7 в Windows 7, но php не хочет работать с MySQL.Я предполагаю, что это ошибка конфигурации или неполная установка с моей стороны.
- MySQL5.1 работает
- PHP5.3 работает, phpinfo() показывает информацию и что я включил MySQL
- IIS настроен и использует fastCgiModule для запуска PHP.
- IIS регистрирует обновления php.ini
- порт 3306 свободен от брандмауэра и открыт для всего мира
- php.ini настроен правильно
- Я добавил c:\php в PATH системы Windows.
Раньше я помню, как перемещал файл libmysql.dll в System32, но не похоже, что он поставляется с php5.3.1, поскольку драйвер теперь встроен. http://us3.php.net/manual/en/mysqlnd.install.php.
(Это доставляло мне столько хлопот, что я документировал свои выводы в своем блоге, как http://inteldesigner.com/2010/code/having-problems-getting-php5-3-to-work-with-mysql5-1 )
НУЖДАТЬСЯ:
- Мне нужно установить PHP вручную, я не хочу использовать быстрый установщик или более старую версию.
- Мне нужно заставить PHP5.3 работать с MySQL5.1, чтобы я мог установить Wordpress2.9 и Drupal7a.
Любые ссылки или предложения были бы замечательными, я уже все сделал на веб-сайте iis, ничего не работает.Я предполагаю, что они не обновили новое программное обеспечение.
ОШИБКИ/РЕШЕНИЕ:
Решение здесь: http://bugs.php.net/bug.php?id=50172 спасибо, зайдите на don.raman на форумах iis.net http://forums.iis.net/p/1164911/1933894.aspx
СИМПТОМЫ:
PHP-функция mysql_connect()
в связке с php5.3 блокирует сервер и возвращает ошибку 500.(проблема связана с IPv6, см. ссылку выше)
ТЕСТОВЫЙ КОД:
<?php
$con = mysql_connect("localhost","root","***");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// some code
mysql_close($con);
?>
ОШИБКИ:
Из браузера:
HTTP Error 500.0 - Internal Server Error
C:\php\php-cgi.exe - The FastCGI process exceeded configured activity timeout
Когда я бегу php -f c:\public_html\index.php
из командной строки я получил:
PHP Warning: mysql_connect(): [2002] A connection attempt failed because the co
nnected party did not (trying to connect via tcp://localhost:3306) in C:\public
_html\index.php on line 10
Warning: mysql_connect(): [2002] A connection attempt failed because the connect
ed party did not (trying to connect via tcp://localhost:3306) in C:\public_html
\index.php on line 10
PHP Warning: mysql_connect(): A connection attempt failed because the connected
party did not properly respond after a period of time, or established connectio
n failed because connected host has failed to respond.
in C:\public_html\index.php on line 10
Warning: mysql_connect(): A connection attempt failed because the connected part
y did not properly respond after a period of time, or established connection fai
led because connected host has failed to respond.
in C:\public_html\index.php on line 10
Could not connect: A connection attempt failed because the connected party did n
ot properly respond after a period of time, or established connection failed bec
ause connected host has failed to respond.
C:\Users\Kevin>
Решение
don.raman написал:
Пожалуйста, посмотрите http://bugs.php.net/bug.php?id=50172 для решения по этому поводу.
Другой альтернативой является использование PHP 5.2.12, в котором такого поведения нет.
я нашел это http://forums.iis.net/p/1164911/1933894.aspx и написал об этом.
Другие советы
У меня была ошибка my_sql_connect с Windows 7/Apache/MySql.Изменение параметра хоста с «localhost» на «127.0.0.1» также помогло мне.
Также для других хостов просто используйте IP-адрес вместо имени хоста (введите «ping» в командной строке, если вы хотите быстро найти его IP-адрес).
Сделай это:
- Идти к
C://Windows/System32/drivers/etc
- Отредактируйте файл с именем
host
Прежде чем что-либо делать, убедитесь, что у вас достаточно разрешений для его редактирования, щелкните его правой кнопкой мыши. Перейдите в СВОЙСТВА->БЕЗОПАСНОСТЬ->РЕДАКТИРОВАТЬ, затем выберите учетную запись пользователя, которую вы используете, и предоставьте ей полный контроль, установив флажок «Полный доступ», затем Применить->ОК
Открыть host
файл с помощью блокнота или любого другого текстового редактора стандарта ANSI и раскомментируйте строку # 127.0.0.1 localhost
удалив #
и сохраните.