Правильная настройка Apache 2.2 + PHP 5.3 (Win)

Если у вас после установки последних Apache 2.2 с PHP 5.x (или PHP 4.x) вылазит ошибка:
"httpd.exe: Syntax error on line # of …/conf/httpd.conf: Cannot load …/php/php5apache2.dll into server: The specified module could not be found."
то вам нужно сделать следующее…

Но сначала небольшой коммент: После очень долгого поиска нашел решение только на одном сайте, все остальные предлагали старые способы решения этой проблемы, которые нифига не эффективны для новых версий.

1. Сначала скачиваем самый последний снимок (snapshot) дистрибутива PHP. Обязательно в архиве ZIP (НЕ установщик .msi) и обязательно VC6 (почему - читай ниже). Свеженький snapshot для Windows можно скачать ТУТ.
Цитата с сайта разработчиков (выделил главное) для лучшего всасывания:

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed
Do NOT use VC9 version with apache.org binaries
These binaries are NOT intended for production use; please use the binaries at PHP Windows downloads.

2. Далее распаковываем его в папку C:\PHP

3. После копирования ZIP архива PHP в C:\PHP, надо либо из имени php.ini-production, или php.ini-development убрать “-production” или “-development”, чтобы имя файла было php.ini и настроить его "под себя".

4. Затем правим конфиг Апача httpd.conf следующим образом:

LoadFile "C:/PHP/php5ts.dll"
LoadModule php5_module
C:/PHP/php5apache2_2.dll

<IfModule php5_module>

<Location />
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</Location>

</IfModule>

UPD. Не забываем в конфиг-файл апача (httpd.conf) поправить/дописать строку PHPIniDir “C:/PHP/php.ini” для того, чтобы апач знал где искать инструкции по php.

И напоследок список версии apache2handler для PHP 5:

php5apache.dll - Apache 1.3.x module.
php5apache2.dll- Apache 2.0.x module.
php5apache2_2.dll - Apache 2.2.x module

Спасибо сайту http://www.devside.net/


Также рекомендую следующие записи:


Понравилась статья? Подпишись на обновления по RSS, E-mail или добавляйте меня в Twitter.

Комментарии (12)


Павел пишет:
11.03.2010 в 17:39

Большое спасибо, Ваши рекомендации очень помогли!



Алексей пишет:
11.03.2010 в 21:16

Всегда пожалуйста



Евгений пишет:
09.04.2010 в 03:51

Всё работает. Спасибо. Кавычки только нужно вручную перебить (LoadFile “C:/PHP/php5ts.dll”
), если будете копировать напрямую с этой страницы в httpd.conf



komsomolec пишет:
11.08.2010 в 03:23

Прежде чем писать инструкции, надо проверить, не забыты ли шаги! После копирования ZIP архива PHP в C:/PHP, надо либо из имени php.ini-production, или php.ini-development убрать "-production" или "-development", чтобы на выоде был php.ini!! Без него ничего нормально работать не будет! Внимательнее, пожалуйста!!



Алексей пишет:
11.08.2010 в 10:04

komsomolec, благодарю за конструктивную критику и ваше замечание



komsomolec пишет:
11.08.2010 в 17:15

А я Вас благодарю за указание на правильную версию PHP для Апача. И хоть бы эти товарищи где-нибудь повидней написали, блин! :( Вечно мучаешься с какими-нибущдь идиотскими ошибками, еле еле исправляешь их, а потом узнаешь, что не то устанавшливал :(
И это еще ладно. Теперь самый интересный момент.
Заходим на одну из инструкций по установке связки: http://www.codenet.ru/webmast/apache/Apache-PHP-Perl-Mysql/ .
И в примечании видим, что крайне рекомендуется устанавливать апач версии 1.3.*, связка апача 2.* и пхп названа, чуть ли, не экспериментальной.



Алексей пишет:
11.08.2010 в 20:07

Про идиотские ошибки - это да, сам намучился) А вот статья из вашей ссылки достаточно старая (2005 г.) и инфа в ней устарела, поэтому и такая рекомендация.



Рустем пишет:
06.09.2010 в 05:40

Спасибо за статью! Два дня бился над установкой с инсталяторов ))
Хочу добавить от себя:
при установке по вашему методу php почему-то не реагировал на php.ini (как будто его нет совсем)
Оказывается он не там его искал (c:\windows)
лечится: в апач-конфиг (httpd.conf) дописываем строку PHPIniDir "C:/PHP/php.ini" и всё ))



Алексей пишет:
06.09.2010 в 23:06

Рустем, обычно под виндой конфиг php.ini кидают в c:\windows, по крайней мере видел не один мануал с этим указанием. Я же также предпочитаю через C:/PHP/php.ini
P.S. Поправил текст поста



Максим пишет:
22.09.2010 в 21:21

Алексей, подскажите, а где Вы взяли файл php5ts.dll? в дистрибутиве VC6 я его не нашел, только в VC9, но к сожалению он не принес ожидаемого результата.



Алексей пишет:
27.09.2010 в 11:40

Максим, простите за долгий ответ - но у меня нет ответа на ваш вопрос. Давно это было - сейчас не смогу проверить(



Славик пишет:
18.02.2011 в 00:01

Спасибо огромное! обычно таким не заморачиваюсь но тут не поленился отписаться. два дня с этой проблемой мозг себе насиловал, переустанавливал по нескольку раз апач и пхп
насчет php5ts.dll я скачивал отдельно, точной ссылки не скажу но думаю вас не затруднит набить в гугле скачать php5ts.dll


Оставить комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>