DataLife Engine > Сеть > Настраиваем Apache - FAQ по Apache

Настраиваем Apache - FAQ по Apache


3 мая 2008. Разместил: podpole
В: Что такое Apache и зачем он нужен?

О: Apache - это web-сервер, один из наиболее распространенных, безопасных и удобных во всем мире. Если вы создаете свой динамичный сайт с использованием языков программирования (например, таких как Perl или PHP) или просто пишете сайт с использованием директив SSI, то без него Вам не обойтись. Конечно, если вы работаете дома с простыми страничками, которые написаны на HTML, то сервер Вам пока не нужен. Пока ;) Существуют версии как под Windows так и под Unix-платформы.
В: Где взять и сколько стоит Apache?

О: Apache можно скачать по адресу http://www.apache.org . Распространяется бесплатно. Там же находится полная электронная документация. На момент написания этих строк стабильной версией была 1.3.24. Готовится версия 2.0 (для Win). Некоторые уже используют во всю бетта-версию. Для тех, кто работает под Windows, доступны для загрузки дистрибутивы в виде exe- или msi-файла (MSI - Microsoft System Installer), для Unix-платформ файлы имеют расширение .tar.gz
В: Как установить Apache?

О: Под Windows установка не составляет никакого труда. Скачиваете дистрибутив и запускаете установку, как у любой другой программы. Те же окошки, те же диалоги.
Только спросит про то, как будет называться ваш сервер, хост и прочую дребедень.
Если вы ставите его для домашнего пользования, то на это можно не обращать особого внимания. Все просто. Главное - последующая настройка, но об этом ниже. (хотя говорят, что для версии 2.0 это не потребуется, все настроится автоматически). Чуть не забыл. Обязательно должен быть установлен протокол TCP-IP (даже если вы работаете без подключения к интернету).
Apache может быть установлен как служба (WinNT/2000), чтобы в дальнейшем, при каждом включении/выключении компьютера, старт и останов сервера происходил автоматически. То же самое, только вручную, можно делать с помощью пунктов меню Start/Stop из меню Пуск/Программы/Apache или из командной строки, набрав:
NET START apache
NET STOP apache.
Раньше при старте сервера появлялось черное досовское окошко и торчало в панели, пока работает сервер. Теперь при старте оно быстро показывается и исчезает, но сервер работает. Проверить можно, набрав в строке браузера адрес: http://localhost/ . В браузере отобразится специальная страничка со ссылкой на документацию по Apache.
На Unix-платформе установка проходит так:
gunzip apache_1.3.x.tar.gz
tar xvf apache_1.3.x.tar
cd apache_1.3.x
./configure -with-layout=RedHat (если у вас Linux RedHat)
В: Поставил сервер, но мои файлы и скрипты не обрабатываются

О: А для этого надо настроить сервер. Прежде всего надо остановить сервер (см. выше), пройти в ту директорию, где у Вас установлен Apache, найти там файл httpd.conf и открыть его Notepad или другим текстовым редактором. То же самое можно проделать через Пуск/Программы/Apache Web Server. Там где-то есть пункт Edit configuration. Открывшийся файл разбит на определенные разделы и содержит кучу строк с пояснениями и следующими за ними директивами Apache. Значок # обозначает начало комментария. Некоторые директивы уже раскомментированы, многие нет.
Первое, что необходимо сделать это найти директиву DocumentRoot. В ней указан путь к папке, в которой Вы должны хранить свои проекты, файлы, странички, скрипты и прочее. Только после того как поместите туда свои файлы, Вы сможете просмотреть их в браузере, набрав что-то типа: http://localhost/mypage.php
Но не торопитесь. Это еще не все. Если Вам не нравится путь указанный в директиве DocumentRoot, то можете определить свой.
Далее. Надеюсь Вы не забыли установить на Ваш компьютер интерпретатор PHP?
Исправили необходимые директивы в файле httpd.conf? Если нет, то бегом в FAQ по PHP.
Если все уже установлено и исправлено, сохраняем файл и стартуем сервер. При отсутствии ошибок в файле httpd.conf сервер спокойно запустится. Если есть ошибки, то будет указан номер строки где произошла ошибка. Вернитесь и исправьте.
В: А как заставить Apache обрабатывать SSI-директивы?

О: Надо кое-что исправить в httpd.conf. Сначала остановите сервер. Откройте httpd.conf и найдите следующие директивы:
AddType text/html .shtml
AddHandler server-parsed .shtml
Уберите комментарии перед ними. Затем найдите блок, начинающийся с и заканчивающийся . В нем в строку Options Indexes ... добавьте Includes. Сохраняем файл, запускаем Apache, все должно работать.
В: Что за файл .htaccess?

О: Это файл гибкой настройки. С помощью него можно переопределить многие директивы из файла httpd.conf. Этот файл не доступен пользователю из браузера. Его действие распространяется только на директорию, в которой он лежит, на все файлы и папки в ней.
Этот файл поможет вам быстро и без останова сервера произвести его перенастройку.
Синтаксис такой же как и в файле httpd.conf.
В: Как сделать так, чтобы Apache не показывал содержимое моих каталогов в браузере?

О: В файле httpd.conf надо найти блок, начинающийся с и заканчивающийся , исправить Options -Indexes. Или просто положить в директорию с вашим проектом файл .htaccess, в котором указать Options -Indexes.
В: Хочу чтобы при заходе на мой сайт первым открывался файл не с именем index.html, а другой

О: Пожалуйста. В нужную директорию кладете .htaccess и пишите в нем:
DirectoryIndex myfile.php
например.
В: Как сделать, чтобы доступ к определенному каталогу (папке) был запаролен?


О: Для этого необходимо на компьютере, где установлен Apache найти файл htpasswd.exe.
Обычно он находится в папке bin той директории, куда Вы установили Apache.
С помощью него мы создадим специальный скрытый от посторонних глаз файл с логином и зашифрованным паролем .htpass. (название может быть другим, но точка впереди обязательна!)
Запускать его надо из командной строки, указывая правильный путь до него, типа:
С:Program FilesApache GroupApachebinhtpasswd -bc .htpass UserName YourPass
Данной командой мы создали файл .htpass в той же папке, где хранится утилита htpasswd.
В файле .htpass теперь хранятся имя юзера UserName и его пароль YourPass в зашифрованном виде, разделенные двоеточием.
Если необходимо создать файл .htpass в другой директории, то путь к ней надо указать перед именем создаваемого файла, после ключей b и c. Что они означают? Ключ c говорит утилите, что надо создать новый файл по указанному далее пути и с указанным именем. Ключ b необходим, чтобы утилита ожидала пароль после ввода имени юзера. Если хотите добавить потом в этот же файл .htpass логины и пароли других юзеров, то ключ c указывать не надо.
После создания файла с паролями надо положить его в какую-нибудь директорию, которая находится вне дерева Вашего web-проекта и не будет доступна пользователям из браузера.
Теперь создайте файл .htaccess в котором напишите что-то похожее на следующее:

AuthType Basic
AuthName "BackOffice"
AuthUserFile /var/www/access/.htpass
require valid-user

Теперь поясню. AuthType - это метод аутентификации. AuthName - имя защищаемой области, которое вы выбираете сами. AuthUserFile - ваш путь до файла .htpass (начинается с того момента где заканчивается путь DocumentRoot. Естественно у вас он может быть другим). Require valid-user - говорит, что доступ возможен любому санкционированному юзеру. Если у Вас есть юзер с именем, например, admin и надо дать доступ только ему, то следует написать require user admin. После того как все сделано, поместите файл .htaccess в ту директорию проекта, которую Вы хотите закрыть паролем.


В: Хочу, чтобы вместо стандартной страницы с ошибкой 404 в браузер загружалась моя страничка

О: Это сделать очень просто. В корень Вашего web-проекта положите (если его еще там нет) файл .htaccess, в котором напишите следующее:
ErrorDocument 404 /404.html
где 404.html - это Ваш файл для ошибки 404. Не забудьте в этом файле прописать все пути от корня, т.е. . Таким образом можно создать файлы-замены для любой ошибки.