php5.ru
   » Самоучитель PHP  » Статьи  » PHP5 HomeMail

Самоучитель PHP: Глава 2. Установка и настройка Apache+PHP

Содержание главы
  1. Установка Apache
    1. - в ОС Windows
    2. - в ОС семейства Unix
  2. Установка PHP
    1. - в ОС Windows
    2. - в ОС семейства Unix
  3. Настройка Apache+PHP
  4. Установка PHP5

Прежде, чем приступить к изучению PHP, неплохо бы его установить. И, конечно же, понадобится веб-сервер - остановимся на Apache 1.3 как на самом популярном и стабильном в связке с PHP.

Если вы решили использовать Apache 2, настоятельно рекомендуется собирать его с prefork MPM - см. документацию.
Также (это касается пользователей Windows) не стоит соблазняться удобством установки готовых комплектов, типа "Денвер-2": все, конечно, "заработает само", но при необходимости изменить файлы конфигурации - а это вам обязательно понадобится - отсутствие опыта самостоятельной установки вам совсем не поможет. Как вариант - можете установить Apache+PHP вручную, разобраться, как все настраивать, ну а потом деинсталлировать плоды своих трудов и установить тот же "Денвер", если он вам так нравится. :)

Мы рассмотрим установку Apache+PHP в ОС Windows (рассматривая только "настоящие" ОС - NT/2000/XP/2003) и Unix (в частности, Linux и FreeBSD).

Apache+PHP... "А как же MySQL?" - спросит продвинутый пользователь... А MySQL мы установим попозже - пока он нам не нужен.

I. Установка Apache

I-1. Установка Apache в ОС семейства Windows

  1. Скачайте Windows-дистрибутив - Apache 1.3.xx Win32 Binary (Self extracting) - с ближайшего к вам зеркала:
    httpd.apache.org
  2. Убедитесь, что логин, под которым вы работаете, входит в группу Administrators
  3. Убедитесь, что 80-й TCP-порт не занят каким-либо другим сервисом или приложением, например, Microsoft IIS. Если 80-й порт занят, измените порт в настройках IIS-a (или другого сервиса) на другой, или же отключите или деинсталлируйте данное приложение.
    При желании, вы можете самостоятельно установить PHP под Microsoft IIS (следуя инструкции в install.txt), запустить простой скрипт, посмотреть, как это все тормозит, после чего снести IIS и установить Apache. :)
  4. Запустите скачанный файл... Ну под винду-то вы софт ставить, надеюсь, умеете? :) Когда спросит, запускать ли Apache сервисом (для всех пользователей) - выбирайте "сервисом" (это настройка по умолчанию).

I-2. Установка Apache в ОС семейства Unix

Классически, в Unix программное обеспечение устанавливается путем сборки из исходников:

  • Скачиваем и распаковываем дистрибутив с httpd.apache.org с помощью броузера типа lynx/links или команды fetch/wget, например:

    $ fetch http://apache.rin.ru/dist/httpd/apache_1.3.31.tar.gz
    $ tar xzf apache_1.3.31.tar.gz

  • Конфигурируем Apache:

    $ cd apache_1.3.31
    $ ./configure

    Для тонкой настройки Apache, следует изучить файл INSTALL и указать необходимые параметры в строке ./configure. Впрочем, как правило, настройки по умолчанию вполне подходят.
  • Компилируем Apache:

    $ make

  • Устанавливаем Apache:

    $ su - заходим под суперпользователем (root), если все предыдущие операции производили из-под своего обычного логина)
    # make install

На этапе configure, вероятно, вы увидите ошибки, связанные с отсутствием в системе необходимых библиотек. Их необходимо скачать и установить в соответствии с инструкциями, находящимися в файлах INSTALL дистрибутивов (обычно - это та же последовательность ./configure && make && make install). Это дело довольно долгое и занудное, посему уже давно большинство Unix-систем включают в себя то или иное более удобное средство установки программного обеспечения.

FreeBSD

FreeBSD включает специальное средство для установки программного обеспечения - порты (ports), представляющие собой набор скриптов, автоматически скачивающих, настраивающих, компилирующих и устанавливающих программные продукты, включая необходимые для запуска библиотеки (dependences - зависимости). Я здесь не буду расписывать подробно, как в FreeBSD работать с портами - это описано в FreeBSD Handbook и множестве книг. Предположим, что в вашей системе библиотека портов установлена и обновлена.

  • Переходим в каталог порта Apache:
    $ cd /usr/ports/www/apache13
  • Запускаем из-под root'а команду сборки и установки Apache (дистрибутив скачается автоматически):
    $ su
    # make install
  • Если нужно автоматически запускать Apache при загрузке - прописываем в /etc/rc.conf:
    apache_enable="YES"

Собственно, вот и всё. ;)

При необходимости тонкой настройки изучите Makefile и добавьте необходимые параметры после команды make install (например, make install WITH_APACHE_SUEXEC=yes - для поддержки suexec).

Red Hat Linux и другие RPM-based дистрибутивы (ASP, Mandrake...)

Red Hat Linux включает менеджер пакетов RPM. Подход к установке из RPM принципиально другой - .rpm-пакеты содержат уже скомпилированные бинарники. Это дает выигрыш во времени (компилировать ничего не нужно), однако, лишает возможности собрать программу так, как вы хотите.

Для установки Apache из rpm необходимо загрузить .rpm-файл Apache 1.3 (откуда - ищите сами гуглем: Apache Software Foundation (apache.org) не распространяет RPM-ки) и запустите: rpm -Uvh apache*

Gentoo Linux

Gentoo Linux - являющийся по сути своей "BSD-style Linux" - содержит portages - систему портов, похожую на используемую в FreeBSD. Установка производится с помощью команды emerge, например:

$ cd /usr/portage/net-www/apache
$ su
# emerge apache-1.3.31.ebuild

Не запускайте просто emerge apache - это приведет к установке Apache 2.

Для автоматического запуска Apache при загрузке, введите

# rc-update add apache default

Другие дистрибутивы Linux

Другие дистрибутивы Linux (Debian, Slackware, ...) содержат собственные менеджеры пакетов - обратитесь к документации. В любом случае (даже в случае другой Unix OS) вы можете скомпилировать и установить Apache вручную - как описано выше.

II. Установка PHP

II-1. Установка PHP в ОС семейства Windows

Скачайте со страницы www.php.net/downloads.php ZIP-архив Windows Binaries (PHP 4.x.x Zip package).

Не качайте "PHP 4.x.x installer" - там отсутствуют многие необходимые файлы!

Распакуйте архив в C:\PHP (или в любое другое место - но в дальнейшем будет предполагаться, что вы выбрали именно C:\PHP). Скопируйте файл php4ts.dll в каталог C:\WINDOWS\SYSTEM32 (или соответствующий). Скопируйте файл php.ini-dist в каталог C:\WINDOWS и переименуйте его в php.ini.

II-2. Установка PHP в ОС семейства Unix

Процесс установки PHP аналогичен установке Apache, за исключением того, что при сборке PHP вам понадобится указать гораздо больше конфигурационных опций.

При ручной сборке из исходников - для этого необходимо скачать и распаковать исходный код с www.php.net/downloads.php - сначала запустите ./configure --help и изучите список параметров сборки (весьма внушительный).

В любом случае, понадобится параметр --with-apxs=/путь/к/apxs - это необходимо для сборки модуля Апача mod_php. Например, если Apache установлен в /usr/local, то параметр будет выглядеть следующим образом: --with-apxs=/usr/local/sbin/apxs.

После конфигурирования, запустите make, и make install.

Чем больше вы используете опций, подключающих различные расширения, тем больше понадобится вручную скачивать и устанавливать необходимые библиотеки. Лучше, конечно, воспользоваться менеджером пакетов или портов вашей ОС.

Независимо от выбранного способа, после успешной установки, скопируйте php.ini-dist в php.ini:
cd /usr/local/etc
cp php.ini-dist php.ini

(в зависимости от ОС, вместо /usr/local/etc может использоваться каталог /etc и т.д.).

FreeBSD

PHP удобно устанавливать из портов FreeBSD.

Воспользовавшись командой su для получения прав суперпользователя, перейдем в каталог /usr/ports/lang/php4.

Есть два варианта сборки PHP из портов - интерактивный и с помощью параметров команды make.

В первом случае, просто запустим команду make install. После того, как make скачает и распакует дистрибутив php, на экране появится окно со списком возможных опций конфигурирования - просто поставьте "крестики" против нужных.

У интерактивного способа, при всем его удобстве, есть недостаток - выбранные однажды параметры нельзя сохранить для использования той же конфигурации повторно. Можно указать все нужные параметры в командной строке, например make install WITH_MYSQL=YES WITH_GD=YES. Список возможных опций находится в файле /usr/ports/lang/php4/scripts/php4_options (этим файлом, кстати, и пользуется скрипт, выводящий окно в интерактивном режиме).

Update: недавно (видимо, с большого похмела) мейнтенер порта PHP решил все переделать. И не только решил (увы). Теперь сборка PHP со статической линковкой расширений (т.е. компиляция PHP и выбранных расширений в один so-файл) из портов невозможна. Либо ручками, либо - если динамические (shared) расширения устраивают - cd /usr/ports/lang/php4, make install, cd /usr/ports/lang/php4_extensions, make install. Для php5 - аналогично. Соответствующие строки extension=.. в php.ini пропишутся автоматически. Впрочем, при использовании PHP как Apache-модуля, динамические расширения ничуть не медленнее статических, так что не стоит особо расстраиваться по этому поводу. :)

Red Hat Linux и другие RPM-based дистрибутивы (ASP, Mandrake...)

Поскольку, как уже говорилось, Red Hat-пакеты содержат уже скомпилированные бинарники, вам следует отыскать в интернете готовый rpm с наиболее подходящей вам конфигурацией, и установить его, воспользовавшись командой rpm.

Gentoo Linux

Gentoo-portage PHP (модуля Apache) находится в /usr/potrage/dev-php/mod_php. Для указания параметров configure используйте переменную USE (неполный список возможных значений USE в Gentoo Linux: www.gentoo.org/dyn/use-index.xml). Можно отредактировать etc/make.conf, но удобнее так:
# USE="gd mysql pdf xml xslt -X" emerge mod_php
В этом случае, переменная USE устанавливается только на время выполнения команды emerge. ("-X" - для гарантии, что ни одна библиотека не потащит за собой XFree86).

После установки, файл php.ini (а точнее - симлинк на него) находится в /etc/apache/conf.

III. Настройка Apache+PHP

Если это еще не сделала программа установки из пакетов/портов, добавьте в файл конфигурации Apache httpd.conf следующие строки:

  • Для OS Windows:
    LoadModule php4_module C:/php/sapi/php4apache.dll
  • Для OS Unix:
    после последней директивы LoadModule
    LoadModule php4_module libexec/apache/libphp4.so
  • Для всех ОС:
    после последней директивы AddModule
    AddModule mod_php4.c
    Внутри блока <IfModule mod_mime.c>
    AddType application/x-httpd-php .php
    В строке DirectoryIndex пропишите index.php:
    DirectoryIndex index.php index.html

Подключение расширений

В Windows, для подключения расширений следует раскомментировать соответствующие строки extension=... в php.ini, не забыв прописать путь к ним в строке extension_dir=.. (обычно они находятся в c:\php\extensions для php4 и в c:\php\ext для php5).

В Unix (если только вы не указывали атрибут shared параметров --with... при сборке), расширения подключаются путем пересборки php.

Настройки php.ini

Если вы попали на эту статью не случайно (с гугля, сообразив, что для скачанного форума или чата нужен веб-сервер), а собираетесь изучать PHP - установите значения указанных переменных именно так. И не спорьте. :) Что, зачем и почему - я объясню позже.

register_globals = off
magic_quotes_gpc = off
magic_quotes_runtime = off
error_reporting = E_ALL       - и именно так, никаких E_ALL & ~E_NOTICE и пр.!
display_errors = on

Запуск Apache

Теперь все готово к запуску Apache. В Windows:
> net start apache

В Unix:
# apachectl start

IV. Установка PHP5

Apache+PHP5 устанавливается точно так же, как и Apache+PHP4 - просто везде замените в этой инструкции PHP4 на PHP5 (в т.ч и в именах файлов и конфигурационных директивах).

В частности, для Windows/Apache/PHP5, в httpd.conf необходимо прописать:
LoadModule php5_module C:/php5/php5apache.dll
AddModule mod_php5.c
AddType application/x-httpd-php .php
Предыдущая глава:
"Основы веб-программирования"
Оглавление Следующая глава:
"Основы синтаксиса PHP"
 

Самоучитель PHP

Основы веб-программирования
Установка и настройка Apache+PHP
Основы синтаксиса PHP
Формы

Ссылки

PHP.RU
Главный портал рунета по PHP.
PHP FAQ
ответы на часто задаваемые новичками вопросы
PHPClub
популярный российский ресурс, посвященный PHP
XPoint
форум профессиональных web-разработчиков
Другие ссылки »
Copyright © 2003-14 php5.ru

Все расположенные на сервере материалы являются собственностью их авторов. Любое воспроизведение, копирование или коммерческое использование этих материалов должно согласовываться с авторами материалов.
Заявление об ограничении ответственности

Michael Zelensky project