РНР 5 в подлиннике

Страница 67 из 554


Гпава 5. Установка РНР и MySQL

137

I Листинг 5.2. Файл /usr/local/apache/conf/php5_mod.conf

## Подключение РНР 5 в виде модуля Apache. # Указание z: в начале пути ОБЯЗАТЕЛЬНО для Windows 9х! LoadModule php5_module "z:/usr/local/php5/php5apache.dll" AddHandler application/x-httpd-php php

Теперь подключим этот файл к Apache. Для этого добавим в httpd.conf строку.

Include conf/php5_mod.conf

Конечно, после всех изменений необходимо перезапустить Apache. Пути поиска конфигурационного файла php.ini

Но подождите! Если вы сделаете все так, как описано выше, то выясните, что сервер не обнаруживает ваш файл php.ini, а использует стандартные настройки по умолчанию. К сожалению, он не догадывается искать его в том же каталоге, что и php5apache.dll. А значит, необходимо указать местоположение файла явно.

Нам придется внести изменения в написанную ранее программу /etc/Run.bat. А именно, достаточно вставить в начало каждого из этих файлов команду:

set PHPRC=\usr\local\php5

Она добавит переменную окружения phprc, содержащую путь до каталога РНР — как раз там и расположен наш php.ini. Интерпретатор РНР проверяет ее значение при запуске и, таким образом, сможет обнаружить свой конфигурационный файл.

Пути поиска библиотек

Но и это еще не все. Если вы сейчас сохраните изменения в php.ini и попробуете запустить сервер ' (при условии, что подключена библиотека расширения php_mysql.dll), то, вероятно, получите несколько сообщений Windows, например, "Не найдена библиотека libmysql.dll". Это происходит из-за того, что расширения (в данном примере php_mysql.dll) сами могут требовать подключения некоторых DLL-модулей (libmysql.dll). То есть, библиотеки должны располагаться в месте, где их могут найти библиотеки расширений. Все такие "места" задаются в Windows при помощи переменной окружения path, которая по умолчанию содержит только системные пути вроде C:\WINDOWS и C:\WINDOWS\SYSTEM32. Можете посмотреть, что в настоящий момент хранится у вас в path, набрав в командной строке:

С:\>path

Вы увидите, что пути разделяются в строке при помощи точки с запятой.

Все DLL-файлы, которые могут потребоваться расширениям, уже входят в дистрибутив и располагаются в том же каталоге, что и ЕХЕ-файлы РНР. Следовательно, чтобы РНР заработал, необходимо добавить полный путь к этому каталогу в пути поиска path. Для этого добавим в Run.bat строку:

set PATH=%PHPRC%;%РАТН%

Как видите, мы используем не явное указание пути, а ранее установленное значение переменной phprc — ведь php.ini располагается в том же каталоге, что и необходимые библиотеки.

138

Часть II. Выбор и настройка инструментария

Внимание!

В РНР 4 и ранних версиях РНР 5 все сопутствующие DLL-файлы располагались в подкаталоге dlis, а не в той же папке, что php.exe и php5ts.dll. Следовательно, в пути поиска нужно добавлять именно каталог dlls.

Теперь уже запускать сервер напрямую (apache.exe) нельзя: в этом случае не будут установлены необходимые переменные окружения. Отныне легальный старт Apache только через Run.bat.

Внимание!

Конечно, можно пойти и другим путем: не менять пути поиска библиотек, а скопировать сами библиотеки в каталог/, который уже присутствует в путях поиска— например, в C:\WINDOWS\SYSTEM32. Кому-то такое решение может показаться хорошим, однако, мы не считаем, что "замусоривание" системной папки — лучший выход. Кроме того, представьте, что будет, если вы решите установить новую версию РНР, а библиотеки повторно скопировать забудете. РНР станет использовать старые модули и... Однажды один из авторов этой книги промучился несколько часов, пока сообразил, что странное зависание РНР, изредка возникающее, имеет причиной именно старую версию библиотеки в системном каталоге.

Вид итогового файла Run.bat приведен в листинге 5.3.

| Листинг 5.3. Файл /etc/Run.bat

@echo off

:: Программа для запуска всех серверов: Apache и MySQL, call Boot.bat Z:

: Установка пути поиска php.ini.

set PHPRC=\usr\local\php5

set PATH=%PHPRC%;%PATH%

: Запуск Apache.

cd \usr\local\apache

start apache.exe

: Добавьте сюда команды для запуска других серверов

Внимание!

Теперь уже запускать Apache нужно только при помощи файла /etc/Run.bat. Чтобы не путаться, рекомендуем вообще удалить все ярлыки запуска и остановки Apache из меню Пуск.

Возможные ошибки и совместимость

К сожалению, при установке в виде модуля Apache РНР работает не так стабильно, как при установке в режиме CGI.

Одна из ошибок, с которой столкнулись авторы этой книги, — неправильная работа Apache с виртуальным диском Z:. А именно, иногда самопроизвольно текущий каталог на диске Z: вдруг "сам собой" сменяется на C:\WebServers. В результате пути вроде /usr/Iocal/apache перестают работать — ведь они теперь отсчитываются от кор-



  • Самолет Москва Бургас подробно.

  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006