Сайт о телевидении

Сайт о телевидении

» » Конфигурационные файлы Apache. Apache: установка и настройка веб-сервера

Конфигурационные файлы Apache. Apache: установка и настройка веб-сервера

Раньше в нашей серии по основам Linux мы рассматривали основы работы с веб-сервером Apache. Он является самым широко используемым в мире веб-сервером в Интернете (по состоянию на июль 2015 года, доля Apache составляла 38%, IIS - занимал 26%, а Nginx - 15%). Поэтому чем больше вы о нем знаете и понимаете как он работает, тем больших успехов вы достигнете при его взломе.

Сегодня мы рассмотрим основы настройки сервера Apache. Как мы писали раньше, конфигурирование и настройка почти всех приложений в Linux или Unix осуществляется через конфигурационные файлы, которые представляют собой обычный текст. Apache здесь не является исключением. Поэтому в этой статье мы сосредоточимся на конфигурационном файле apache2.conf, который находится в директории /etc/apache2.

Шаг 1. Запустите Apache2

Давайте начнем с того, что запустим Apache2. Сделаем это через графическую оболочку окружения Kali, перейдя в Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, как показано на скриншоте ниже.

Или запустите его через командную строку, набрав в терминале следующую команду

Kali >service apache2 start

Это запускает демон Apache2, и с этого момента веб-сервер должен обрабатывать наш контент в Интернете.

Шаг 2. Проверьте работоспособность сервера

Чтобы проверить, работает ли наш сервер Apache, давайте просто перейдем в браузере по localhost или 127.0.0.1. Если вы видите страницу как на скриншоте ниже, то это означает, что сервер работает нормально!

Шаг 3. Откройте файл конфигурации

Чтобы настроить Apache, нам нужно перейти в директорию /etc/apache2.

Kali > cd /etc/apache2

Выведем на экран список всех файлов в этой директории:

Kali > ls -l

Как видите, в этой директории есть несколько файлов и поддиректорий. Сейчас нас интересует только файл apache2.conf, но обратите внимание, что у нас есть файл ports.conf и папка sites_available, которые нам понадобятся чуть позже, также здесь есть несколько других файлов конфигурации и папок.

Мы можем открыть apache2.conf в любом текстовом редакторе, но здесь мы будем использовать Leafpad. Файл можно открыть, просто набрав в консоли:

Kali > leafpad /etc/apache2/apache2.conf

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

Шаг 4. ServerRoot

Давайте прокрутимся вниз, пропустив все комментарии, и найдем строку #70, где начинается раздел глобальных настроек. Здесь мы видим настройки ServerRoot. Это вершина дерева директорий, в которой сервер Apache хранит все связанные с работой сервера файлы. Строка #84 определяет ServerRoot. Мы можем просто раскомментировать эту строку, если хотим установить /etc/apache2 в качестве ServerRoot. Мы рекомендуем вам это сделать.

Шаг 5. Timeout

В следующем разделе у нас располагаются переменные, которые определяют значения параметров: Timeout, KeepAlive, MaxKeepAliveRequests и KeepAliveTimeout.

  • Timeout : это время, в течение которого сервер должен выполнить запрос пользователя. Его значение по умолчанию - 300, а это означает, что сервер должен обработать каждый запрос в течение 300 секунд или 5 минут. Это, определенно, слишком долго и это значение можно установить в 30 секунд.
  • KeepAlive : это означает, что сервер остается живым (держит соединение) для нескольких запросов от одного и того же клиента. По умолчанию установлено значение «On» (включено). Это означает, что клиентам не нужно создавать новое соединение для каждого запроса к нашему серверу. Такой подход позволяет экономить ресурсы сервера.
  • MaxKeepAliveRequests : это значение определяет максимальное количество секунд, допустимое между запросами, полученными от установленного соединения с одним клиентом. Если мы установим это значение в 0, то количество времени не ограничено.
  • KeepAliveTimeout : Это количество времени между запросами, для определения того, что соединение еще живо (установлено).

Мы предлагаем вам оставить все значения по умолчанию, кроме параметра «Timeout». Каждая ситуация отличается, и вам может потребоваться изменить эти значения по умолчанию для того, чтобы адаптировать производительность сервера к конкретной среде.

Шаг 6. Пользователь и группы Apache2

Давайте опять прокрутим вниз несколько строк в файле apache2.conf, пока не дойдем до строки #177. Здесь мы можем установить пользователя и группы Apache2. Обратите внимание на комментарий к строке #177. Там указано, что мы можем установить эти переменные в файле envvars (переменные окружения). Оставим этот вопрос для будущих статей, но пока просто имейте в виду, что и User (пользователь) и Group (группа) являются переменными, значения которых берутся из файла /etc/apache2/envvars.

И, наконец, последний раздел, имеющий огромное значение для безопасности Apache, начинается со строки #193. Этот раздел дает гарантии, что веб-клиенты не смогут получить доступ к файлам.htaccess и.htpasswd.

Шаг 7. Логирование

В следующем разделе описано, как Apache управляет логами (журналами).

В первом подразделе мы обращаемся к параметру HostNameLookups. Эта директива сообщает Apache2, должен ли он выполнять поиск DNS, когда он записывает в лог установленное соединение. Со значением по умолчанию «Off» (выключено) Apache2 работает намного лучше.

Шаг 8. Доступные сайты

Теперь посмотрим на директорию site_available (доступные сайты) и, самое главное, на тот файл, который находится в ней по умолчанию. Его часто называют файлом виртуальных хостов (Virtual Hosts) по умолчанию. Откройте этот файл, набрав в консоли:

Kali > leafpad /etc/apache2/site_available/default

Как видите, в этом файле есть три критических области. Первая строка определяет, какой порт слушает веб-сервер. Здесь определено, что он слушает любой интерфейс на 80-м порту (*: 80). Вторая строка определяет адрес электронной почты, на который нужно слать уведомления в случае возникновения проблем с сервером. По умолчанию там стоит адрес Если вы являетесь системным администратором, то здесь вы можете указать ваш адрес электронной почты. Третий элемент может быть самым важным - DocumentRoot. Он определяет, где будет размещаться контент для этого виртуального хоста, значением по умолчанию является директория /var/www. Мы предлагаем вам оставить все в том виде, в котором это было определено разработчиками.

Шаг 9. Порты

Наконец, мы можем перейти в файле apache2.conf еще ниже до строки #248 — «include port.conf». Эта директива просто сообщает Apache о необходимости перейти в файл port.conf, чтобы найти те порты, которые он должен прослушивать.

Теперь, если мы откроем файл port.conf, то увидим, что он настроен на прослушивание 80-го порта (строка #9). В следующем разделе, который начинается со строки 11, проверяется, включен ли модуль mod_ssl.c, и если он включен, то открывается 443-й порт (строка 17).

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

Timeout - указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:


Параметр значение

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать.htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

DocumentRoot - устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных..ru.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах.htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Настройка сервера Apache через htaccess

Файлы.htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из.htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None , чтобы могли работать все настройки нужно AllowOverride All .

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего.htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением.conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

Например:

vi /etc/apache2/sites-available/test.site.conf

Хостинг сайтов

Можно реализовать четырьмя способами:

    По умолчанию в папке /var/www/html. Доступом является http://localhost/

    Настройки основного хостинга. Например, http://localhost/phpmyadmin

    В любой папке с помощью модуля виртуальных хостов. Например, http://mysite/

    В папке пользователя public_html (модуль userdir). Например, http://localhost/~username

Установка

Для установки Apache выполните в терминале:

sudo apt-get install apache2

Настройка

Для применения изменений в настройках необходимо перезапустить демон Apache: sudo service apache2 restart

В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf .

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf

Настройки модулей расположены в директории /etc/apache2/mods-available . Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod или a2dismod . Пример подключения модуля:

sudo a2enmod < mod-name>

Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available . Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf или a2disconf . Пример подключения файла со своими настройками:

sudo a2enconf < config-name>

Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available . Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite . Пример подключения виртуального хоста:

sudo a2ensite < site-name>

Кодировка по умолчанию

Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):

AddDefaultCharset UTF-8

Виртуальные хосты

Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf . По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf . Вы можете использовать этот виртуальный хост в качестве примера.

Пример настройки виртуального хоста:

#Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 #Разрешение на перезапись всех директив при помощи.htaccess AllowOverride All

Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.

После создания файла настроек допишите в /etc/hosts имя вашего хоста:

127.0.0.1 host1.server1

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

sudo a2ensite host1.server1

Отключается хост аналогично утилитой a2dissite:

sudo a2dissite host1.server1

Модули

mod_userdir

Модуль mod_userdir позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html

mkdir ~/ public_html

Чтобы включить mod_userdir , выполните:

sudo a2enmod userdir

и добавьте необходимого пользователя в группу www-data:

sudo adduser $USER www-data

после чего перезагрузите Apache:

Страницы будут доступны по адресу http://localhost/~username, где username - имя пользователя.

CGI

Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi командой

sudo a2enmod cgi

По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin , но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf .

Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста

Настройка HTTPS в Apache

Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.

Создание ключа и ssl-сертификата

Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.

Для создания ключа и сертификата вводим команду:

Openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.

На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter , соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) :» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.

После ответа на все вопросы в директории должны появиться два новых файла - server.pem (ключ) и server.crt (сертификат).

Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? :) Поэтому снимаем пароль с ключа:

cp server.key{ ,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig

Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:

sudo cp server.pem / etc/ ssl/ certs/ sudo cp server.key / etc/ ssl/ private/ sudo chmod 0600 / etc/ ssl/ private/ server.key

Настройка Apache

Для начала необходимо активировать mod_ssl:

sudo a2enmod ssl

А затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf).

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key

Теперь просто перезагрузите Apache:

sudo service apache2 restart

И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.

Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP , то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias . Если он не включён - включаем:

sudo a2enmod alias sudo service apache2 restart

Затем изменяем файл /etc/apache2/sites-enabled/000-default , отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.

Apache - наиболее используемый интернет-сервер на линукс системах. Интернет-сервера используются для выдачи интернет-страниц по запросу клиентских компьютеров. Клиенты обычно запрашивают и просматривают интернет-страницы используя приложения интернет-браузеров, таких как Firefox, Opera, Chromium или Mozilla.

Пользователи вводят единообразный указатель ресурсов (URL) для определения интернет-сервера по его полностью квалифицированному доменному имени (FQDN) и пути до требуемого ресурса. Например, чтобы увидеть домашнюю станицу интернет-сайта Ubuntu, пользователь должен ввести только FQDN:

Www.ubuntu.com

SymLinksIfOwnerMatch - Следует по символическим ссылкам если целевой файл или каталог имеет того же владельца, что и ссылка.

Настройки httpd

Этот раздел раскрывает некоторые основные конфигурационные настройки сервиса httpd .

LockFile - инструкция LockFile устанавливает путь к блокирующему файлу (lockfile) когда сервер скомпилирован с опцией USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT. Он должен сохраняться на локальном диске. Стоит оставить значение по умолчанию если только каталог журналов не расположен на NFS ресурсе. В противном случае исходное значение стоить изменить на каталог локального диска с правами на чтение только для root.

PidFile - инструкция PidFile устанавливает файл, в который сервер записывает ID своего процесса (pid). Этот файл должен быть доступен на чтение только root. В большинстве случаев этот параметр стоит оставить без изменений.

User - инструкция User устанавливает userid (ID пользователя), используемый сервером для ответа на запросы. Эта настройка определяет права доступа сервера. Любые файлы, недоступные этому пользователю, также будут недоступны для посетителей вашего сайта. По умолчанию используется пользователь «www-data».

Group - инструкция Group аналогична директиве User. Group устанавливает группу под которой сервер будет отвечать на запросы. Значение по умолчанию также «www-data».

Модули Apache2

Apache2 - модульный сервер. Это означает, что только самая базовая функциональность включена в ядро сервера. Расширенные возможности доступны через модули, которые могут быть загружены в Apache2. По умолчанию базовый набор модулей включается в сервер на этапе компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули могут быть скомпилированы отдельно и добавлены в любое время с использованием инструкции LoadModule . В противном случае Apache2 должен быть перекомпилирован для добавления или удаления модулей.

Ubuntu компилирует Apache2 с возможностью динамической загрузки модулей. Конфигурационные директивы могут быть включены по условию присутствия соответствующего модуля в блоке .

Вы можете установить дополнительные модули Apache2 и использовать их с вашим интернет сервером. Например, запустите следующую команду в терминале для установки модуля авторизации MySQL:

Sudo apt-get install libapache2-mod-auth-mysql

Ищите дополнительные модули в каталоге /etc/apache2/mods-available.

Используйте утилиту a2enmod для включения модуля:

Sudo a2enmod auth_mysql sudo service apache2 restart

Аналогично a2dismod выключит модуль:

Sudo a2dismod auth_mysql sudo service apache2 restart

Настройка HTTPS

Модуль mod_ssl добавляет важную возможность для сервера Apache2 - возможность шифрованных соединений. Таким образом, когда ваш браузер соединяется с использованием SSL , используется префикс https:// в начале адреса URL в строке навигации.

Модуль mod_ssl доступен в пакете apache2-common. Выполните следующую команду в терминале для включения этого модуля:

Sudo a2enmod ssl

Настройки по умолчанию для HTTPS находятся в файле /etc/apache2/sites-available/default-ssl. Чтобы Apache2 предоставлял HTTPS, также требуются файлы ключа и сертификата. Изначальная настройка HTTPS использует сертификат и ключ, созданные пакетом ssl-cert. Они подходят для тестирования, но должны быть заменены на сертификат, соответствующий вашему сайту или серверу. Для информации по созданию ключей и получению сертификатов смотрите раздел Сертификаты .

Для настройки Apache2 для HTTPS введите следующее:

Sudo a2ensite default-ssl

Каталоги /etc/ssl/certs и /etc/ssl/private используются по умолчанию. Если вы установили сертификат и ключ в другие каталоги, убедитесь что изменили соответственно опции SSLCertificateFile и SSLCertificateKeyFile.

С Apache2, теперь настроенным на HTTPS, перезапустим сервис для разрешения новых настроек:

Sudo service apache2 restart

В зависимости от того как вы выпускали свой сертификат, вам может потребоваться ввести кодовую фразу при старте Apache2.

Вы можете получить доступ к страницам защищенного сервера набрав https://your_hostname/url/ в адресной строке вашего браузера.

Права разделения записи

Чтобы более одного пользователя имели право записи в один и тот же каталог, необходимо дать право записи группе, которая их объединяет. Следующий пример предоставляет права на запись в каталог /var/www для группы «webmasters».

Sudo chgrp -R webmasters /var/www sudo find /var/www -type d -exec chmod g=rwxs "{}" \; sudo find /var/www -type f -exec chmod g=rws "{}" \;

Если доступ должен быть предоставлен более чем одной группе на каталог, используйте Списки управляемого доступа (ACL).

Конфигурирование Apache

Есть два способа настройки Web-сервера: изменить переменные, отвечающие за функционирование основного сервера, или создать виртуальный сервер. В нашем случае второй способ предпочтительнее. Но об этом немного позже, а пока разберемся с базовыми директивами, управляющими поведением сервера. Основная конфигурация Apache заключена в файле httpd.conf, расположенном в каталоге:

C:\usr\local\apache\conf\

Это обычный текстовый файл, и для его редактирования подойдет любой текстовый редактор - тот же «Блокнот», к примеру. Я не буду подробно рассказывать о каждой строчке в этом файле, а лишь о самых необходимых и нужных нам директивах. Отметьте, что знак ‘#’ является комментарием, и если вы хорошо читаете по-английски, то без труда сможете их разобрать, что, правда, не очень поможет, если у вас нет хотя бы общего представления о принципах функционирования Web-серверов и об Интернете в целом. А потому позвольте мне предложить вам свою помощь в настройке Apache. Вместе у нас получится быстрее и, что самое важное - правильно.

Файл конфигурации Apache состоит из трех больших секций:

  • Global Environment - директивы, управляющие настройками Apache в целом;
  • Main server configuration - директивы, управляющие настройками главного сервера;
  • Virtual Hosts - директивы, управляющие виртуальными серверами.

Секция общих настроек нас не интересует, так как вам вряд ли когда-нибудь придется изменять указанные там значения, а вот два других раздела мы разберем подробнее. Точнее, один из них - я расскажу о полезных директивах, используемых при настройках параметров основного сервера, поскольку при конфигурировании виртуальных хостов используются те же самые команды. С той лишь разницей, что не определенные параметры наследуются из настроек главного сервера. Итак, начнем…

ServerName - имя запущенного Web-сервера. Оно возвращается клиенту в HTTP-заголовке и идентифицирует Web-сервер, выполнивший запрос. При реальной работе сервера в Интернете имя должно уже существовать и быть прописанным в DNS. При локальной установке Web-сервера для отладки и тестирования сайтов это не принципиально - имя может быть любым. Кстати, именно это имя запрашивал инсталлятор перед установкой, так что, если желаете, можете сейчас его отредактировать. Значение параметра должно быть определено как минимум для главного сервера. В противном случае Apache просто не запустится.

ServerAdmin [email protected] - электронный адрес администратора, используемый в некоторых автоматически генерируемых сообщениях об ошибках Web-сервера, таких как отсутствие странички, к примеру. Параметр должен быть определен как минимум для главного сервера, иначе Apache также откажется запускаться.

ServerRoot “c:/usr/local/apache” - каталог, в котором был размещен Apache при установке. Если вы пожелаете переместить его в другое место, то данную строчку нужно будет скорректировать, как, впрочем, и все остальные строчки в файле, указывающие на данный каталог. Если вы установили Apache так, как я описывал выше, то данная строчка уже будет сконфигурирована верно и станет указывать на c:/usr/local/apache.

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

DocumentRoot “с:/usr/local/apache/htdocs” - адрес каталога, используемого для хранения HTML-страничек. По умолчанию данный параметр указывает на документацию Apache, поставляемую в дистрибутиве и расположенную в вышеуказанном каталоге.

UserDir “c:/usr/local/apache/users/” - каталог, используемый для хранения страничек пользователей, доступ к которым будет возможен по адресу:

Http://www.domain.com/~user/

Поскольку мы ставим Web-сервер для локальной отладки сайтов, а не для реальной работы в Интернете, то данную строчку вам менять не нужно.

DirectoryIndex index.html index.htm - параметр, определяющий имя файла, который будет искать Apache, если указан не полный URL. То есть такой, который заканчивается именем каталога, а не адресом конкретной странички. В том числе это относится и к файлу, который открывается по умолчанию при наборе основного URL. Например, если вы набрали в адресной строке:

Http://www.domain.com/links/,

то на самом деле Apache откроет страничку:

Http://www.domain.com/links/index.htm

Полный список файлов, которые могут быть найдены в директории, как раз и определяется этим параметром. Имена файлов отделяются друг от друга пробелом. При этом имеет значение порядок, в котором перечислены альтернативные имена: если в каталоге есть файлы с именем и index.htm, и index.html, то Apache откроет именно вторую страничку, поскольку в списке index.html стоит раньше, чем index.htm.

Alias /icons/ “c:/usr/local/apache/icons/” - команда создания алиасов, то есть ссылок, для любых каталогов. Например, вышеприведенная команда делает доступным содержимое каталога “c:/usr/local/apache/icons/” по адресу:

Http://www.domain.com/icons/

При этом сам каталог может находиться в любом месте файловой структуры и не обязательно являться подкаталогом ранее определенного каталога для размещения HTML-документов.

ScriptAlias /cgi-bin/ “c:/usr/local/apache/cgi-bin/” - данная команда аналогична предыдущей с той лишь разницей, что определяет реальное местоположение каталога с выполняемыми CGI-скриптами.

AddType text/html .html .htm - команда, определяющая тип mime для файла с заданным расширением. В данном случае мы присваиваем расширениям.html и.htm тип обычного гипертекста, и Apache будет интерпретировать его как html-код. Точнее, интерпретировать-то придется браузеру - Web-сервер лишь выдаст ему указание о том, что это гипертекст. А вот если этой строчки не будет, то Apache выдаст странички с таким расширением за обычные текстовые файлы.

AddHandler server-parsed .shtml - команда, определяющая обработчик (автоматически запускаемую программу) для файла с указанным расширением. В данном случае мы связываем расширение.shtml со встроенным обработчиком SSI-директив. И следовательно, все файлы, имеющее данное расширение, перед тем, как выдать страничку пользователю, будут проходить предварительную обработку. Если говорить более конкретно, то Apache заменит все SSI-вставки на соответствующие им значения.

ErrorDocument 404 /error404.html - директива, определяющая страничку, которая будет отослана пользователю при возникновении ошибки. В данном случае была определена страничка для самой распространенной 404-й ошибки. Данная директива не обязательна, и в случае ее отсутствия Apache сгенерирует стандартную страничку. Но согласитесь, что определить свою собственную страничку ошибки и, кроме того, сделать ее в едином стиле сайта гораздо привлекательнее. Путь к страничке ошибки может быть указан либо локально (тогда он должен обязательно начинаться от корня сайта), либо с приведением полного URL-странички.

ErrorLog logs/error.log - команда, определяющая имя файла, куда будут записываться все ошибки, возникающие при загрузке страничек или выполнении CGI-скриптов. При локальной отладке Web-сайтов - вещь крайне полезная. Так что если что-либо не ладится - Apache не запускается, Perl-скрипты не работают, графика на страничках не грузится, - этот файл может помочь вам разобраться в проблеме.

CustomLog logs/access.log common - директива, аналогичная предыдущей, но с тем отличием, что используется для протоколирования всех запросов к Web-серверу. На основе его анализа можно получить полный отчет о посещаемости сайта и популярности отдельных разделов.

Теперь разберемся с настройками прав доступа к файлам и каталогам, входящим в структуру Web-сайта. Из соображений безопасности нам необходимо для любого файла или каталога, используемого для хранения страничек или CGI-программ, установить определенный набор прав. Но вначале рассмотрим, каким же образом нам задать папку или файл(ы), которым мы присваиваем права. Делается это при помощи одной из следующих конструкций:

Для каталога:

Здесь перечисляются все директивы, управляющие доступом и опциями каталога

Для файла(ов):

Здесь перечисляются все директивы, управляющие доступом к файлу(ам)

Вместо directory и filename подставляются нужные значения. Возможно использование регулярных выражений, что позволяет задавать права для целой группы файлов и/или каталогов.

Права, определенные для каталога, распространяются и на все подкаталоги, входящие в него, если только для какого-нибудь из подкаталогов права не были переопределены. Сейчас мы рассматриваем способ определения прав в основном конфигурационном файле, но для тех же целей можно использовать и локальные файлы.htaccess, которые размещаются в той папке, для которой требуется ограничить доступ. В ряде случаев это гораздо удобнее. Синтаксис написания команд в файле.htaccess полностью аналогичен синтаксису команд в файле httpd.conf.

Важно отметить, что конфигурирование поведения Web-сервера при помощи.htaccess возможно только в случае, если это разрешено в правах вышестоящего каталога. Но об этом я еще скажу, когда мы дойдем до соответствующей команды. А пока начнем разбирать по порядку все основные директивы, используемые для определения прав:

  • Options option_list - директива, определяющая дополнительные опции для конкретного каталога. Опции отделяются друг от друга пробелами. Основные из них следующие:
  • None - дополнительные опции для данного каталога не определены.
  • All - определены все возможные опции, за исключением MultiViews.
  • Indexes - опция, позволяющая использовать файлы по умолчанию - при неполном наборе адреса. Список файлов по умолчанию задается директивой DirectoryIndex, которая была описана в этой статье несколько выше. При отсутствии в данном каталоге файла по умолчанию Apache выдаст браузеру содержимое каталога.
  • Includes - опция, относящаяся к функционированию SSI и разрешающая использовать директиву Include. Для полноценного функционирования SSI опция должна быть включена.
  • IncludesNOEXEC - опция, подобная предыдущей, но запрещающая использовать во включениях SSI-команды запуска CGI-скрипта и .
  • ExecCGI - опция, разрешающая в данном каталоге запуск CGI-программ.
  • FollowSymLinks - опция, позволяющая Apache переходить по символьным ссылкам в системах UNIX. То есть страничка может находиться вне основного дерева, определенного для хранения html-документов.
  • AllowOverride - директива, разрешающая переопределять параметры доступа для нижележащих каталогов. То, о чем я говорил ранее. После данной команды должен быть указан список директив, разрешенных к переопределению. Например, AllowOverride All - разрешает переопределение любых прав, AllowOverride Options - разрешает переопределение опций для каталога, AllowOverride None - запрещает переопределение прав.
  • Order allow, deny - порядок наложения прав доступа к файлу или каталогу с определенных IP-адресов или доменных имен. Может использоваться маска для отсеивания целых сегментов сети. В данном случае вначале определяются сайты, доступ к которым разрешен, а потом те, к которым запрещен. В случае команды Order deny, allow - все наоборот.
  • Allow from - список IP-адресов или доменных имен, доступ с которых разрешен. Может быть использована маска - для разрешения доступа к сайту целой группе доменов. Например, Allow from .com - разрешает доступ со всех доменов, имеющих окончание.com. Allow from all - разрешает доступ к сайту из любой точки Интернета.
  • Deny from - список IP-адресов или доменных имен, доступ с которых запрещен. Так же, как и в предыдущем случае, может быть указана группа доменов или маска IP-адресов.

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

Теперь, когда Apache сконфигурирован и запущен в базовой конфигурации, а мы вооружены знаниями об основных директивах, нам не мешает добавить поддержку других технологий - в частности SSI. Если вы внимательно читали описание команд по конфигурированию Apache, то уже наверняка догадались, что данная технология SSI включается указанием следующих двух директив:

AddType text/html .shtml AddHandler server-parsed .shtml

Добавьте в секцию Document type файла конфигурации две эти строчки (или просто раскомментируйте их) и скорректируйте список файлов по умолчанию, добавив туда имя index.shtml:

DirectoryIndex index.htm index.html index.shtml

Дополнительно нам нужно определить для каталога с документами права на использование SSI-включений в страничках. Для этого необходимо найти и скорректировать секцию, определяющую права для корневого каталога документов. Она должна выглядеть так:

Options Indexes Includes AllowOverride All

Больше для поддержки технологии SSI ничего не требуется, так что перейдем к конфигурированию виртуального сервера.

Как я уже говорил раньше, виртуальные серверы более удобны для создания и отладки сайтов на локальном Web-сервере, чем использование для этой цели настроек основного Web-сервера. Во-первых, очень легко добавлять новые виртуальные серверы, во-вторых, все настройки, относящиеся к данному серверу, находятся в одном месте, а в-третьих, очень просто организовать одновременную поддержку нескольких проектов.

Но перед тем как конфигурировать виртуальный сервер, давайте создадим все необходимые каталоги. Я рекомендую для Интернет-проектов использовать структуру каталогов, представленную ниже. Вы можете в качестве основного выбрать любой другой диск, но я для объяснений по-прежнему буду использовать диск C.

  • c:\web\ - каталог, используемый для Интернет-проектов;
  • c:\web\project\ - каталог для нашего проекта, который мы так и назовем - project;
  • c:\web\project\website\ - здесь будут размещены странички сайта;
  • c:\web\project\cgi-bin\ - здесь могут размещаться CGI-скрипты на Perl;
  • c:\web\project\logs\ - этот каталог будет содержать лог-файлы Web-сервера.

Как уже было сказано выше, директивы, определенные в секции виртуального хоста, переопределяют глобальные значения. Но для начала нужно разобраться, каким образом определить сам виртуальный хост. Это делается при помощи одноименной директивы VirtualHost. Ниже приведен фрагмент, описывающий виртуальный сервер для нашего проекта. Добавьте его в самый конец конфигурационного файла - именно там находится секция для определения виртуальных хостов. А затем я дам подробные разъяснения по каждой строчке:

ServerAdmin [email protected] ServerName project DocumentRoot “c:/web/project/website” ScriptAlias /cgi-bin/ “c:/web/project/cgi-bin/” ErrorLog c:/web/project/logs/error.log CustomLog c:/web/project/logs/access.log common

Сделали? Прекрасно, переходим к комментариям! Итак, в первой строчке я определил IP-адрес, по которому будет осуществляться доступ к виртуальному хосту. Поскольку локальный Web-сервер привязан к IP-адресу 127.0.0.1, то логично для виртуальных хостов воспользоваться следующими по порядку IP-адресами: 127.0.0.2, 127.0.0.3, 127.0.0.4 и т.д.

Во второй и третьей строчках переопределены е-mail администратора и имя сервера. Эти директивы указывать не обязательно, но они позволяют нам более удобно организовать работу с Web-сервером, в частности сделать так, чтобы обращаться к серверу можно было не по IP-адресу, а по определенному в этой секции имени хоста, но об этом я расскажу чуть позже.

Далее следует важная строчка, определяющая местоположение документов для нашего сайта. Формат записи полностью аналогичен базовому серверу. Точно так же переопределены алиасы к CGI-скриптам и пути к лог-файлам. Заметьте, что в качестве значений мы использовали каталоги, которые создали несколькими абзацами выше.

После добавления виртуального хоста Apache необходимо перезапустить - чтобы изменения вступили в силу. Наш виртуальный хост теперь будет доступен по адресу 127.0.0.2. Если что-либо не получается и сервер отказывается запускаться, то посмотрите, что написано в файле error.log. Скорее всего, там будет указано на ошибку в синтаксисе конфигурационного файла.

Помните, я обещал рассказать о том, каким образом сделать так, чтобы можно было обращаться к серверу еще и по имени? Вот и настало время. В конфигурации Web-сервера нам уже ничего менять не нужно, а придется подправить внутренний файл Windows, определяющий соответствие локальных IP-адресов и доменных имен. В зависимости от того, в какой системе вы работаете, этот файл может находиться в разных местах или не существовать вовсе (в этом случае его нужно будет создать вручную). Файл называется hosts и расположен в каталоге:

C:\windows\ - для машин с сиcтемой Win9x/Mе

C:\windows\system32\driver\etc\ - для машин с системой WinNT/2000

В этом каталоге также может находиться файл hosts.sam (расширение от слова sample - «пример»), который можно переименовать в hosts, если последний отсутствует. Файл hosts является обычным текстовым файлом в формате ASCII и имеет очень простой формат: каждая строчка состоит из локального IP-адреса и соответствующего ему доменного имени. Для нашего случая данный файл должен выглядеть следующим образом:

127.0.0.1 localhost apache 127.0.0.2 project

Заметьте, что в первый строчке я определил два имени для одного IP-адреса. Обращение к такому серверу возможно по любому из этих имен. Альтернативные имена должны отделяться друг от друга пробелами.

Для тестирования нашего виртуального сервера и сконфигурированной технологии SSI нам необходимо написать тестовую страничку. Для этого в любом текстовом редакторе создайте файл следующего содержания:

Тестирование технологии SSI

и сохраните его под именем index.shtml. Также создайте файл test.inc со следующим содержимым:

Поздравляю, технология SSI работает!

Перепишите оба файла в каталог с:\web\project\website\, который сконфигурирован как каталог для документов нашего проекта, и наберите в адресной строке браузера:

Http://project/

Если вы увидели в браузере поздравление, то все в порядке: SSI работает, а кроме того, функционирует и новое расширение по умолчанию - index.shtml. Если у вас что-то работает некорректно, еще раз внимательно перечитайте последние несколько абзацев и убедитесь, что вы все сделали правильно.

Apache установлен и настроен - переходим к инсталляции и конфигурированию PHP.

Установка PHP4 под Windows

Устанавливать будем последнюю доступную на момент написания данной статьи версию PHP, а именно PHP4.0.4pl1. Адрес, по которому ее можно скачать, указан в конце данной статьи. Архив с данным дистрибутивом PHP также расположен на компакт-диске, прилагаемом к журналу.

Дистрибутив представляет собой обычный ZIP-архив, и его достаточно распаковать в нужную папку. Руководствуясь теми же соображениями, которые я приводил при создании каталога для установки Apache, распакуем дистрибутив PHP в папку:

C:\usr\local\php4\

Перейдите в указанный каталог, найдите там файл php.ini-dist и, переименовав его в php.ini, скопируйте в корневой каталог Windows (обычно это c:\windows). Данный файл содержит все настройки, управляющие поведением PHP, и представляет собой обычный текстовый файл. Поскольку конфигурация по умолчанию вполне нам подходит, то на данный момент в этом файле ничего исправлять не нужно.

Теперь необходимо настроить Apache и PHP для совместной работы. Есть два основных способа установки PHP - как обычной CGI-программы и как модуля Apache. Мы рассмотрим оба и начнем с конфигурирования PHP как обычной CGI-программы.

Установка PHP как CGI-программы

Основную работу по настройке придется провести над файлом конфигурации Apache. Если вы уже успели закрыть файл httpd.conf, то откройте его снова и добавьте туда несколько строчек, относящихся к функционированию PHP. Вначале нам необходимо определить новый тип файла и сопоставить его с расширениями, используемыми PHP. Для этого добавляем в секцию «Document types» следующую строчку:

Теперь необходимо назначить обработчик для данного типа файлов, поэтому добавьте сразу после определения типа следующий фрагмент:

Options ExecCGI

И наконец, мы добавим в список индексных файлов значение index.php. Для этого найдите и подкорректируйте следующую строчку:

Все нужные настройки PHP выполнены, и можно протестировать работоспособность PHP. Для этого создадим тестовый файл следующего содержания:

Тестирование технологии PHP

и сохраним его под именем test.php в каталоге с:\web\project\website\, который мы ранее определили для хранения HTML-файлов нашего проекта. Теперь, набрав в браузере строчку:

Http://project/test.php

Http://127.0.0.2/test.php,

мы должны увидеть текст поздравления. Если все в порядке, то с конфигурированием PHP можно закончить. В противном случае внимательно проверьте описанные выше директивы в файле httpd.conf. И еще не забудьте перезапустить Apache перед проверкой.

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

Установка PHP как модуля Apache

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

C:\usr\local\php4\sapi\php4apache.dll

Скопируйте этот файл уровнем выше - в основной каталог PHP:

C:\usr\local\php4\

Теперь нужно настроить некоторые переменные в конфигурационном файле Apache. Как и при установке PHP в виде CGI-программы, необходимо добавить в секцию Document types определение нового типа документа:

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

А также подкорректировать строчку, содержащую список индексных файлов:

DirectoryIndex index.html index.htm index.shtml index.php

Теперь самое важное - конфигурируем загрузку модуля. Найдите в конфигурационном файле секцию “Dynamic Shared Object (DSO) Support” и добавьте в нее следующую строчку:

LoadModule php4_module “с:/usr/local/php4/php4apache.dll”

Конфигурирование можно считать оконченным. Осталось только протестировать работоспособность PHP. Не забудьте только сначала сохранить файл и перезапустить Apache. Для тестирования можно воспользоваться уже написанным ранее скриптом test.php. Наберите в браузере строчку:

Http://project/test.php

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

И небольшое замечание для тех, кто уже конфигурировал PHP как CGI-программу, а теперь пробует установить его как модуль, не забудьте удалить из конфигурационного файла Apache секцию, связывающую обработчик типа файла с CGI-программой. Ведь в данном случае всей обработкой php-файлов занимается уже внешний модуль. Я имею в виду вот этот фрагмент:

ScriptAlias “/__php_dir__/” “c:/usr/local/php4/” Action application/x-httpd-php “/__php_dir__/php.exe” Options ExecCGI

Вот на этом мы и закончим нашу статью, оставив описание основных конструкций PHP до следующего раза. Я придерживаюсь мнения, что учиться легче на реальных примерах, а не на абстрактных построениях, поэтому в следующий раз совместим приятное с полезным и, изучая конструкции PHP, напишем полнофункциональный скрипт - гостевую книгу.

КомпьютерПресс 7"2001