Поставимо PHP 5.1.2. Де його дістати? Здрастє, природно на PHP.net. Вибираємо найближче до себе дзеркало і качаємо собі ZIP. Поки хитає зробимо відповідний каталог під все це діло за адресою /webservices/php/5/ — це робиться спеціально, що-б (на всякий випадок) ми в будь-який момент могли поставити іншу версію PHP і між ними переключатися.

Отже, у каталог /webservices/php/5/ ми разархивируем всі файли. Нічого складного. Все більш менш нормальні люди, які знають англійську мову читають install.txt і слідуючи інструкціям для відповідних версій операційної системи і HTTP сервера. Нам актуальне Apache 2.0.x on Microsoft Windows. Там є позначка, що можливо, свіженький Apache 2 з MPM не буде нормально працювати з PHP 5. У мене працює, але якщо у вас будуть проблеми, можете відрубати всю цю красу за допомогою директиви Win32DisableAcceptEx.

PHP 5 я віддаю перевагу ставити як модуль для Apache 2 — воно трохи безпечніше.

Згідно з рекомендаціями, ми додамо шлях до нашої інсталяції PHP в системний PATH. Для Windows XP йдемо в Control Panel і запускаємо System, в закладці Advanced вибираємо Environment Variables. Там,в розділі System variables вибираємо в режимі редакції системну змінну Path, додаємо туди /webservices/php/5/ (з потрібним символом диска і потрібними слешами). Залишилася дрібниця — перезавантажити систему.

Тепер нам потрібно вибрати конфігурацію PHP. З собою PHP приносить 2 версії конфігурації php.ini-dist і php.ini-recommended. Творці рекомендують використовувати php.ini-recommended — він налаштований для безпеки і швидкості роботи. Дуже раджу переглянути його і коментарі в ньому. Я ж віддаю перевагу php.ini-dist, з дрібними змінами. Обидва конфігураційних файлу дуже добре документовані, і наполегливо рекомендую вам з усім цим ознайомитися. У перший я його ложу в директорію /webservices/apache/Apache2/conf — я поділяю конфігурації пов’язані з модулем та іншими випадками.

Дрібні зміни в php.ini (в php.ini я використовую «/» слеші — воно прекрасно розуміє):
error_reporting з E_ALL & ~E_NOTICE на E_ALL розробляєте проекти що б в такому режимі не було ніяких повідомлень про помилки.

include_path роблю так, що б воно могло брати PEAR — include_path = “.;/webservices/php/5/PEAR/» (не забудьте виправити слеші і символ диска).

upload_tmp_dir треба вказати директорію для тимчасовий файлів, які закачують користувачі. Там вони будуть лежати, поки ви їх не обробите з move_uploaded_file або unlink. Для всього цього зробимо каталог /tmp і вкажемо його для ключа upload_tmp_dir.

extension_dir вказую шлях до каталогу з модулями PHP «/webservices/php/5/ext/».

У розділі [mail function] вказуємо SMTP-сервер провайдера для ключа SMTP та адресу електронної пошти, щоб ключа sendmail_from.

У розділі [Session] для session.save_path вкажемо тугіше директорію /tmp — нам цього вистачить для розробки.

У відомому нам httpd.conf додамо (цілком можемо зробити це в кінці файлу) точки:

LoadModule php5_module «/webservices/php/5/php5apache2.dll» — Подгружаем модуль

AddType application/x-httpd-php .php — улазываем що .php файли PHP обробляє процесор
і

PHPIniDir «/webservices/apache/Apache2/conf» — вказуємо де лежить php.ini

Зробимо apache.exe -t і бачимо Syntax OK. Пробуємо запустити наш сервер. В який-небудь з наших каталогів, доступних через HTTP протокол, кладемо файл phpinfo.php з таким змістом (швидше за все ми покладемо його в наш www.example.com чи default віртуальний сервер/хост):

і бачимо всю інформацію про PHP. Це чистий, тільки з вбудованими модулями, PHP 5.

Але, для розробки нам потрібно на багато більше — підключимо кілька модулів: php_mbstring, php_curl, php_exif, php_gd2, php_mysql, php_pgsql, php_sqlite, php_mysqli. Ось тільки, перевірте, чи є такі DLL в директорії /webservices/php/5/ext/, а якщо ні, скачайте Collection of PECL modules і розархівуйте їх у директорію /webservices/php/5/ext/.
З версією PHP 5.1 відразу йде і модуль PDO, і тим, хто любить або хоче ним користуватися або ознайомитися, може собі його легко включити, достатньо підключити: php_pdo і відповідні до нього бібліотеки (наприклад, php_pdo_mysql для підтримки MySQL). Я особисто роблю велику ставку на PDO в майбутньому. Рестартуем наш Apache і знову дивимося на phpinfo.php — бачимо що нами вибрані модулі вже завантажилися.

Ось і все — у нас стоїть PHP як модуль Apache 2. Більш докладно про все ви можете прочитати на сайті PHP.net, а також раджу запам’ятати ось це прекрасне місце.