Литвек - электронная библиотека >> Нина Владимировна Савельева >> PHP и др. >> Курс "Язык программирования PHP" >> страница 4
1.15.  Сообщение о невозможности автоматически настроить Apache для работы с PHP
Это значит, что нужно настраивать сервер Apache для работы с PHP вручную.


Сначала следует выбрать, как мы хотим установить PHP, поскольку он поставляется в двух видах: CGI-скрипт (php.exe) или набор SAPI-модулей (например, php4isapi.dll), используемых сервером. Последний вариант обладает новыми возможностями, однако из-за недостаточной проработанности может функционировать недостаточно надежно, особенно на платформах старше Windows 2000 (может появляться куча ошибок 500, могут возникать сбои в других серверных модулях, таких как ASP). Так что, если нужна абсолютная стабильность – надо выбирать установку PHP в виде CGI выполнимого приложения.


Если мы хотим установить PHP как серверный модуль, то в файле конфигурации сервера (httpd.conf) нужно написать:


LoadModule php4_module

c:/php/sapi/php4apache.dll

AddType application/x-httpd-php .php .phtml

AddModule mod_php4.c


Если мы устанавливаем PHP как cgi-программу, то в httpd.conf нужно написать:


ScriptAlias /php/ "c:/php/index.html"

AddType application/x-httpd-php .php .phtml

Action application/x-httpd-php "/php/php.exe"


В этом случае могут возникнуть проблемы с безопасностью. Рекомендуется исправить директорию, где лежит исполняемый файл интерпретатора (c:\php\), на что-нибудь менее очевидное (например, на c:\abc_php\). Мы советуем устанавливать PHP как серверный модуль.


Еще нужно отредактировать файл php.ini (в папке c:\Windows), чтобы PHP «знал», где находится корневая директория сервера, где пользовательские директории, а где его собственные библиотеки расширений. За это в файле php.ini отвечают соответственно переменные doc_root, user_dir и extension_dir. Зададим их таким образом:


doc_root = "c:\Program Files\Apache

Group\Apache\htdocs"

user_dir = "c:\users"

extension_dir = "c:\php\extensions"


Кроме того, можно выбрать расширения, которые будут загружаться при запуске PHP. В реализацию PHP под Windows изначально входит очень мало расширений. Чтобы загрузить расширение, нужно раскомментировать в php.ini соответствующую ему строчку 'extension=php_*.dll'. Например, чтобы загрузить расширение для работы с MSSQL, нужно раскомментировать строку 'extension=php_mssql.dll'. Некоторые расширения требуют дополнительных библиотек. Поэтому рекомендуется скопировать дополнительные библиотеки в системную директорию (из папки c:\php\dlls). При первой установке следует настроить и протестировать PHP без расширений.


Для того чтобы настройки, выполненные в конфигурационных файлах сервера и PHP вступили в силу, нужно перезапустить сервер.


Проверим, работает ли PHP. Для этого создадим тестовый файл (1.php) в директории пользователя (c:\users\nina) со следующим содержанием:


<?php

echo"<h1>Привет всем!</h1>";

?>


Запустим этот файл через браузер, набрав http://localhost/~nina/1.php. Если что-то не так, то на экран будет выведен текст этого файла. Если все хорошо, то наш скрипт должен обработаться сервером и вывести большими буквами строку «Привет всем!».


Установка PHP под Linux


Как и в случае с Windows, для Linux существует два способа установки PHP: используя пакеты и непосредственно компилируя исходный код PHP, который можно скачать с http://www.php.net. Мы остановимся на первом варианте и рассмотрим установку PHP+Apache на примере дистрибутива AltMaster2.2 (http://altlinux.ru).


Для того чтобы установить apache, необходимо выбрать одноименный пакет. Это можно сделать, например, с помощью менеджера пакетов Synaptic. Воспользовавшись меню «Пакет -> Установить» (рис. 1.16) нужно выбрать интересующие пакеты. После этого необходимо перейти к установке выбранных пакетов с помощью меню «Действия -> Выполнить». После установки Apache имеет смысл перезагрузиться или выполнить следующую команду:


/etc/init.d/httpd start

# /etc/init.d/httpd start

Starting httpd:

[ OK ]


Это приведет к запуску сервера и можно будет увидеть по адресу http://localhost почти такую же страницу, как и при установке Apache под Windows. Возможным отличием будет присутствие логотипа AltLinux.


Курс
Рис. 1.16.  Выбор пакета для установки Apache под Linux

После установки Apache можно приступить к установке непосредственно PHP. Опять же можно использовать PHP с помощью CGI и через модуль Apache. В первом случае достаточно пакета php и необходимых для его установки пакетов. Во втором случае необходимо дополнительно установить пакет mod_php. (рис. 1.17).


Курс
Рис. 1.17.  Выбор пакетов для установки PHP под Linux

Менеджер пакетов Synaptic – это оболочка к программе apt-get, более подробно о ней можно узнать с помощью команды man apt-get. Воспользуемся утилитой apt-get для установки пакета mod_php. Команда apt-get build-dep mod_php установит пакеты, которые нам необходимы для инсталляции mod_php. Команда apt-get install mod_php завершит установку:


Как видно из приведенного листинга, скрипт установки самостоятельно перезагрузил сервер Apache. Также он самостоятельно внес изменения в конфигурационный файл Apache, полный путь до которого: /etc/httpd/conf/httpd.conf


В httpd.conf добавлена строка:


Include conf/addon-modules/mod_php4.conf


Содержимое файла mod_php4.conf


LoadModule php4_module

usr/lib/apache/libphp4.so

AddModule mod_php4.c

AddType application/x-httpd-php

.php .php4 .php3 .phtml

AddType application/x-httpd-php-source .phps

AddHandler application/x-httpd-php

.php .php4 .php3 .phtml


Как видно, изменения в httpd.conf подобны изменениям, которые мы вносили при установке под Windows.


Теперь можно воспользоваться тестовым файлом для проверки работоспособности PHP+Apache. Создадим test.php со следующим содержанием:


<?php

echo"<h1>Привет всем!</h1>";

?>


Корень сервера находится /var/www/html/. Можно создать каталог test и разместить там файл test.php. Вызвав этот файл из браузера по его адресу (http://localhost/test/test.php), получим страничку с текстом «Привет всем».


В заключение отметим, что процесс установки PHP с помощью пакетов в других дистрибутивах Linux принципиально не отличается от рассмотренного нами. Процесс установки из исходного кода в них же подробно описан. Стоит отметить, что «ручная» компоновка позволит настроить PHP под конкретные нужды, также возможен выигрыш в производительности.


Дистрибутив Денвер


Мы достаточно подробно рассмотрели установку и настройку PHP для платформ Linux и Windows. Для тех, кто не желает вникать в устройство PHP и требуемых для его работы компонентов, существуют готовые дистрибутивы, содержащие все наиболее распространенные расширения PHP. Один из самых известных – дистрибутив Денвер (http://dklab.ru/chicken/web/). Инструкции по его установке можно прочитать на сайте разработчиков. Отметим только, что его установка достаточно проста и не требует особых навыков. Этот дистрибутив можно рекомендовать для начинающих программистов, желающих научиться работать с PHP. Для