В папке localhost будет храниться содержимое главного хоста Apache-того, который будет доступен по адресу http://localhost.
В папке localhost следует создать папки cgi-bin и www:
В папке cgi-bin будут храниться CGI-сценарии, а в папке www – программы на PHP и разные документы. Обратите внимание CGI-сценарии – это не совсем то же самое, что PHP – скрипты. Поэтому они должны располагаться раздельно.
Для настройки Apache необходимо открыть файл D:\usr\Apache\conf\httpd.conf при помощи Блокнота или Notepad++. Это единственный файл, который нужно настроить. Прежде чем начать редактирование данного файла рекомендуется сделать его резервную копию (например, с названием: httpd.conf рез коп исх).
Приступим к настройке.
1. Первую опцию, которую мы установим, будет путь к Apache. Измените ее следующим образом: ServerRoot "/usr/Apache"
2. Далее установим число запросов, которое сервер может обрабатывать одновременно: ThreadsPerChild 15
3. Директиву BindAddress использовать не рекомендуется, поэтому оставьте ее закомментированной:
4. Раскомметируйте строку подключения модуля: LoadModule rewrite_module modules/mod_rewrite.so
5. В конец списка загружаемых модулей добавьте строку: LoadModule php4_module "/usr/php/sapi/php4apache.dll"
Эта строка подключает модуль PHP для правильной работы с Apache. Если его не подключить, то могут возникать проблемы при работе со скриптами.
6. После подключения модуля PHP добавьте две строчки:
#For the module mod_rewrite
RewriteEngine On
7. Далее идет раздел добавления модулей Apache - AddModule. Его необходимо поменять местами с разделом LoadModule. Т.е. раздел:
# Reconstruction of the complete module list from all available modules
# (static and shared ones) to achieve correct module execution order.
AddModule mod_setenvif.c
поместите перед словами:
#
# Dynamic Shared Object (DSO) Support
#
Перейдем ко второму разделу файла httpd.conf – конфигурация сервера по умолчанию.
8. В опции ServerAdmin следует указать адрес, на который следует направлять сообщения в случаи неправильной работы сервера:
ServerAdmin admin@localhost.ru
9. Опция ServerName задает имя сервера:
ServerName localhost
10. Опция DocumentRoot указывает каталог, в котором расположены web-страницы: DocumentRoot "/home"
Было:
Стало:
11. Опция <Directory> и </Directory> используется для применения опций к конкретному каталогу. Замените следующий блок:
<Directory "D:/usr/Apache/htdocs">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options Indexes FollowSymLinks MultiViews
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
на блок:
<Directory "/">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options Indexes FollowSymLinks Includes MultiViews
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
В этом блоке была настроена папку home. Давайте разберем значения опций.
● Директива Options определяет, какие особенности сервера являются доступными в данном каталоге:
- Indexes - если запрошенный URL соответствует папке, и в этой папке нет ничего соответствующего DirectoryIndex (например, index.html), то сервер выведет содержание данной папки;
- FollowSymLinks - разрешить переходы по символическим ссылкам (создаваемым командой ln);
- Includes - разрешить SSI (Server Side Includes);
- MultiViews - разрешить поддержку многих языков.
● Директива AllowOverride позволяет отменять, при помощи файлов .htaccess, ранее установленные директивы. Если данная директива установлена в None, то файл .htaccess игнорируется, если же в All, то все директивы .htaccess файла будут допускаться.
● Директивы Order allow,deny и Allow from all определяют, кто может получать, что бы то ни было с данного сервера.
12. Закомментируйте следующий модуль:
#<IfModule mod_userdir.c>
# UserDir "D:/usr/Apache/users/"
#</IfModule>
13. Далее для опции DirectoryIndex необходимо указать файлы, которые будут загружаться, когда происходит обращение к папке, а не к конкретному файлу:
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.shtml index.shtm
</IfModule>
14. В блоке:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
удалите строку: Satisfy All.
15. Далее следует отключить директиву UseCanonicalName On, т.е. поставить значение Off: UseCanonicalName Off
16. Если вы желаете, чтобы в сообщениях об ошибке высвечивался e-mail администратора, то замените в следующей опции On на Email:
ServerSignature EMail
17. Находим такую строку:
ScriptAlias /cgi-bin/ "D:/usr/Apache/cgi-bin/"
и заменяем ее другой строкой: ScriptAlias /cgi-bin/ "/home/cgi-bin/"
Этот каталог cgi-bin, в котором должны располагаться ваши CGI - скрипты. Он был создан в директории home.
18. Установите следующие опции для папки cgi-bin:
<Directory "/home/cgi-bin/">
AllowOverride All
Options ExecCGI
</Directory>
19. Ищем строку AddType application/x-tar .tgz, она расположена после настроек приоритета языков. Перед этой строкой необходимо добавить блок подключения php:
#AddType application/x-httpd-php phtml php3 php
#ScriptAlias /__php_dir__/ "/usr/php/"
#Action application/x-httpd-php "/__php_dir__/php.exe"
Первая строка указывает расширения файлов, которые должны обрабатываться PHP интерпретатором.
Во второй строке связывается настоящий путь к PHP и псевдоним, а в третьей указывается файл интерпретатора.
Эти строки пока следует закомментировать, иначе могут возникнуть ошибки. После настройки PHP, комментарии нужно будет снять.
20. Далее настраивают SSI — очень мощный и в то же время очень простой инструмент, способный помочь при создании и поддержке сайта. С помощью SSI-директив, их еще называют SSI-вставками, можно включать в страницу другие файлы, результаты работы программ, значения системных переменных и пр. Преимущества этой технологии особенно проявляются, когда нужно поддерживать достаточно большой по объему сайт, который имеет определенную структуру и повторяющиеся по всему сайту элементы. Для подключения SSI находят строки, снимают с них комментарии и изменяют, как показано ниже: AddHandler cgi-script .cgi
Затем надо раскомметировать и изменить:
AddType text/html .shtml .shtm
AddHandler server-parsed .shtml .shtm
Было:
Стало:
Этими директивами настраиваем SSI. Apache будет обрабатывать файлы с указанными расширениями процессором SSI. Это наиболее стандартный ход. Впрочем, вместо .shtml можно написать .html или .phtml - главное, чтобы расширение было идентично расширению, которые использует для обозначения использующих SSI файлов провайдер.