Записки самоучки

Май 28, 2007

Танцы с бубнами вокруг настройки сервера Windows 2003+Apache 2.2.4+PHP 5.2.2+MySQL 5.0.41

Filed under: Apache,Глюки,MySQL,PHP — 4matic @ 4:56 пп

Занимался настройкой веб-сервера. Давно не тратил столько времени на настройку!

Все сделал как обычно. Скачал свежие релизы. Установил каждый из продуктов. Начал настраивать совместную работу. И тут началось веселье.

При попытке установить расширения для работы с СУБД  получилось вот что. расширение для работы с MSSQL встало без капризов, а вот при попытке подключить расширение mysqli получил ошибку invalid access to memory location. Не буду рассказывать о всех танцах с бубнами на протяжении 4 часов, просто расскажу, в чем проблема и как решил.

Имею привычку разворачивать PHP и прописывать PHPRC=»C:\PHP\» в системных переменных окружения. И потом все подключаемые библиотеки хранить в  C:\PHP\. Так вот после гугиления нашел на одном форуме скромное замечание о том, что не смотря на то, что в документации PHP предлагает делать те действия, которые я и выполнил, в некоторых релизах Windows подключение библиотек для работы PHP по путям отличным от C:\Windows или C:\Windows\System32 происходит некорректно. Почему — этого науке не известно.

Как решил проблему. Просто перекинул файлы libmysql.dll и php5ts.dll в папку C:\Windows\System32 и проблема почти решилась. Почти, потому что возникили еще одни грабли. Имею привычку (дурную???) использовать libmysql.dll не из релиза PHP, а из релиза MySQL. Так вот, клиент от MySQL не захотел подключать расширение mysqli, а родной PHP-шный запустился без проблем. Т.е. пришлось в папку C:\Windows\System32 кидать libmysql.dll, которая шла вместе с PHP, а не MySQL.

P.S. Неприятно, что после того, как MySQL перестал оперативно выпускать бинарники для Windows, вообще перестали обновлять библиотеки API PHP.

Блог на WordPress.com.