PHP 5 - установка и конфигурация под наши нужды в режиме mod_php для Apache

Поставим 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 добавим (вполне можем сделать это в кoнце файла) сточки:

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
phpinfo();
?>

и видим всю информацию о 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, а также советую запомнить вот это прекрасное место.