В зависимости от версии Apache и вашего дистрибутива, конфигурационные файлы Apache могут находиться в следующих каталогах: /etc/apache, /etc/apache2, /etc/httpd или /etc/httpd2. Основные конфигурационные файлы называются httpd.conf, httpd2.conf или apache.conf и apache2.conf. Название каталогов и файлов, содержащих слово "apache", характерно для дистрибутивов Debian и Ubuntu, а содержащих слово "httpd" - для Mandriva/Fedora. В любом случае найти конфигурационные файлы не сложно: ищите или apache, или httpd - и не промахнетесь!
Первым делом откройте конфигурационный файл (для определенности будем считать, что он называется httpd2.conf) и найдите директиву:
#ServerName new.host.name
Нужно ее раскомментировать и указать имя сервера, которое будут задавать пользователи в строке браузера. Данное имя должно быть зарегистрировано в DNS-сервере вашей сети (или указано в файле /etc/hosts каждого компьютера сети). Обычно здесь указывается имя компьютера, например: ServerName user-desktop
После этого можно будет обращаться к серверу по адресу http://user-desktop/.
Понятно, что для полноценной настройки сервера одной директивы ServerName недостаточно.
Директивы и их описание
ServerName имя - задает имя Web-сервера, имя должно быть зарегистрированным на DNS-сервере, то есть обычно это доменное имя сервера
ServerAdmin e-mail - задает e-mail администратора сервера
ServerRoot каталог - определяет каталог с конфигурационными файлами сервера
PidFile файл - определяет имя файла, в котором будет храниться PID исходного процесса Web-сервера. Обычно изменять эту директиву не нужно
DocumentRoot каталог - Позволяет задать каталог, в котором хранятся документы Web-сервера - это корневой каталог документов. Обычно это /var/www
StartServers N, MaxSpareServers N, MinSpareServers N, MaxClients N - директивы, непосредственно влияющие на произ-водительность сервера
KeepAlive On I Off, KeepAliveTimeout N - управляют постоянными соединениями
Directorylndex список -задает имена файлов, которые могут использоваться в качестве главной страницы (индекса). Значение по умолчанию index.html index.cgi index.pl index.php index.xhtml
HostnameLookups On I Off - если директива включена (on), то IP-адрес клиента перед записью в журнал будет разрешен (то есть Web-сервер вычислит доменное имя клиента перед записью информации о попытке доступа в журнал). Выключение (off) этой опции позволяет повысить производительность сервера, поскольку не нужно тратить время на разрешение IP-адресов в доменные имена.
ErrorLog файл - задает журнал ошибок
TransferLog файл - задает журнал обращений к серверу
Timeout N - тайм-аут в секундах (время, на протяжении которого сервер будет ждать возобновления прерванной попытки передачи данных)
User пользователь
Group группа - директивы user и Group задают имя пользователя и группы, от имени которых запускается Web-сервер
FancyIndexing on I off - eсли пользователь в запросе не укажет имя документа, а только каталог, но в нем не окажется главной страницы, заданной директивой Directorylndex, сервер передаст пользователю оглавление каталога. Данная директива определяет, в каком виде будет передано оглавление каталога: в более красивом, со значками каталогов и описаниями файлов (значение on), или в более простом (off)
Addlcon картинка список - если FancyIndexing включена, то Addlcon позволяет связать графическую картинку с типом файла, например Addlcon /images/graphics.gif .gif, .jpeg, .bmp, .png, .tiff
Defaultlcon картинка - позволяет задать картинку по умолчанию (Addicon,FancyIndexing)
ErrorDocument N файл - позволяет задать файл, содержащий сообщение об ошибке, для ошибки с номером N, например:
ErrorDocument 404 /errors/file_not_foimd.html
Directory, Limit, Location, Files - это блочные директивы
Директивы Directory, Limit, Location, Files
С помощью блочной директивы Directory можно установить параметры отдельного каталога. Внутри директивы Directory могут использоваться директивы AllowOverride, Limit, Options. Вот пример определения параметров корневого сервера:
<(знак меньше)Directory /(знак больше)>
AllowOverride None
Options None
<(знак меньше)/Directory(знак больше)>
Значения None ДЛЯ обеих директив (AllowOverride И Options) считаются
самыми безопасными. None для AllowOverride запрещает использование файлов .htaccess, которые могут переопределять директивы конфигурационного файла Apache. К тому же, AllowOverride None позволяет повысить производительность сервера.
Допустимые опции каталога (значения директивы Options)
None - запрещены все опции
All - все опции разрешены
Indexes - если указана эта опция, при отсутствии файла, заданного DirectoryIndex, будет выведено оглавление каталога. Если options установлена в None (или indexes не указана в списке опций), то оглавление каталога выводиться не будет
Includes - pазрешает использование SSI (Server Side Includes)
IncludesNoExec - более безопасный режим SSI: разрешает SSI, но запрещает запускать из включений внешние программы
ExecCGI - разрешает выполнение CGI-сценариев
FollowSymLink - разрешает использование символических ссылок. Довольно опасная опция, поэтому лучше ее не использовать
Блочная директива Limit позволяет ограничить доступ. Внутри этой директивы можно использовать директивы order, deny и allow (вообще есть еще и директива require, но она очень редко используется). Директива order задает порядок выполнения директив deny и allow:
# сначала запретить, потом разрешить
order deny, allow
# сначала разрешить, потом запретить
order allow, deny
Директивы allow и deny нужно использовать так:
# запрещаем доступ всем
deny from all
# разрешаем доступ только нашей сети
allow from firma.ru
Директива Location очень похожа на директиву Directory. ТОЛЬКО если Directory ограничивает доступ к каталогу, то Location предназначена для ограничения доступа к отдельным URL сервера:
<(знак меньше)Location URL(знак больше)>
директивы ограничения доступа
<(знак меньше)/Location(знак больше)>
(т.к. не отображается все, что заключено в "<" и ">" в скобках пишу эти словосочетания, которые надо просто убрать)
К директивам ограничения доступа относятся order, deny, allow.
Директива Files предназначена для ограничения доступа к отдельным файлам:
<(знак меньше)Files файл(знак больше)>
директивы ограничения доступа
<(знак меньше)/Files(знак больше)>
Вы можете указать как отдельный файл, так и регулярное выражение, которому должны соответствовать файлы:
# запрещаем доступ к файлу privat.html всем, кроме нашей сети
<(знак меньше)Files privat.html(знак больше>
order deny, allow
deny from all
allow from firma.ru
<(знак меньше)/Files(знак больше)>
Еще как пример:
# запрещаем доступ к файлам .ht* всем
<(знак меньше)Files ~ "^\.ht"(знак больше)>
Order allow,deny
Deny from all
<(знак меньше)/Files(знак больше)>
Первым делом откройте конфигурационный файл (для определенности будем считать, что он называется httpd2.conf) и найдите директиву:
#ServerName new.host.name
Нужно ее раскомментировать и указать имя сервера, которое будут задавать пользователи в строке браузера. Данное имя должно быть зарегистрировано в DNS-сервере вашей сети (или указано в файле /etc/hosts каждого компьютера сети). Обычно здесь указывается имя компьютера, например: ServerName user-desktop
После этого можно будет обращаться к серверу по адресу http://user-desktop/.
Понятно, что для полноценной настройки сервера одной директивы ServerName недостаточно.
Директивы и их описание
ServerName имя - задает имя Web-сервера, имя должно быть зарегистрированным на DNS-сервере, то есть обычно это доменное имя сервера
ServerAdmin e-mail - задает e-mail администратора сервера
ServerRoot каталог - определяет каталог с конфигурационными файлами сервера
PidFile файл - определяет имя файла, в котором будет храниться PID исходного процесса Web-сервера. Обычно изменять эту директиву не нужно
DocumentRoot каталог - Позволяет задать каталог, в котором хранятся документы Web-сервера - это корневой каталог документов. Обычно это /var/www
StartServers N, MaxSpareServers N, MinSpareServers N, MaxClients N - директивы, непосредственно влияющие на произ-водительность сервера
KeepAlive On I Off, KeepAliveTimeout N - управляют постоянными соединениями
Directorylndex список -задает имена файлов, которые могут использоваться в качестве главной страницы (индекса). Значение по умолчанию index.html index.cgi index.pl index.php index.xhtml
HostnameLookups On I Off - если директива включена (on), то IP-адрес клиента перед записью в журнал будет разрешен (то есть Web-сервер вычислит доменное имя клиента перед записью информации о попытке доступа в журнал). Выключение (off) этой опции позволяет повысить производительность сервера, поскольку не нужно тратить время на разрешение IP-адресов в доменные имена.
ErrorLog файл - задает журнал ошибок
TransferLog файл - задает журнал обращений к серверу
Timeout N - тайм-аут в секундах (время, на протяжении которого сервер будет ждать возобновления прерванной попытки передачи данных)
User пользователь
Group группа - директивы user и Group задают имя пользователя и группы, от имени которых запускается Web-сервер
FancyIndexing on I off - eсли пользователь в запросе не укажет имя документа, а только каталог, но в нем не окажется главной страницы, заданной директивой Directorylndex, сервер передаст пользователю оглавление каталога. Данная директива определяет, в каком виде будет передано оглавление каталога: в более красивом, со значками каталогов и описаниями файлов (значение on), или в более простом (off)
Addlcon картинка список - если FancyIndexing включена, то Addlcon позволяет связать графическую картинку с типом файла, например Addlcon /images/graphics.gif .gif, .jpeg, .bmp, .png, .tiff
Defaultlcon картинка - позволяет задать картинку по умолчанию (Addicon,FancyIndexing)
ErrorDocument N файл - позволяет задать файл, содержащий сообщение об ошибке, для ошибки с номером N, например:
ErrorDocument 404 /errors/file_not_foimd.html
Directory, Limit, Location, Files - это блочные директивы
Директивы Directory, Limit, Location, Files
С помощью блочной директивы Directory можно установить параметры отдельного каталога. Внутри директивы Directory могут использоваться директивы AllowOverride, Limit, Options. Вот пример определения параметров корневого сервера:
<(знак меньше)Directory /(знак больше)>
AllowOverride None
Options None
<(знак меньше)/Directory(знак больше)>
Значения None ДЛЯ обеих директив (AllowOverride И Options) считаются
самыми безопасными. None для AllowOverride запрещает использование файлов .htaccess, которые могут переопределять директивы конфигурационного файла Apache. К тому же, AllowOverride None позволяет повысить производительность сервера.
Допустимые опции каталога (значения директивы Options)
None - запрещены все опции
All - все опции разрешены
Indexes - если указана эта опция, при отсутствии файла, заданного DirectoryIndex, будет выведено оглавление каталога. Если options установлена в None (или indexes не указана в списке опций), то оглавление каталога выводиться не будет
Includes - pазрешает использование SSI (Server Side Includes)
IncludesNoExec - более безопасный режим SSI: разрешает SSI, но запрещает запускать из включений внешние программы
ExecCGI - разрешает выполнение CGI-сценариев
FollowSymLink - разрешает использование символических ссылок. Довольно опасная опция, поэтому лучше ее не использовать
Блочная директива Limit позволяет ограничить доступ. Внутри этой директивы можно использовать директивы order, deny и allow (вообще есть еще и директива require, но она очень редко используется). Директива order задает порядок выполнения директив deny и allow:
# сначала запретить, потом разрешить
order deny, allow
# сначала разрешить, потом запретить
order allow, deny
Директивы allow и deny нужно использовать так:
# запрещаем доступ всем
deny from all
# разрешаем доступ только нашей сети
allow from firma.ru
Директива Location очень похожа на директиву Directory. ТОЛЬКО если Directory ограничивает доступ к каталогу, то Location предназначена для ограничения доступа к отдельным URL сервера:
<(знак меньше)Location URL(знак больше)>
директивы ограничения доступа
<(знак меньше)/Location(знак больше)>
(т.к. не отображается все, что заключено в "<" и ">" в скобках пишу эти словосочетания, которые надо просто убрать)
К директивам ограничения доступа относятся order, deny, allow.
Директива Files предназначена для ограничения доступа к отдельным файлам:
<(знак меньше)Files файл(знак больше)>
директивы ограничения доступа
<(знак меньше)/Files(знак больше)>
Вы можете указать как отдельный файл, так и регулярное выражение, которому должны соответствовать файлы:
# запрещаем доступ к файлу privat.html всем, кроме нашей сети
<(знак меньше)Files privat.html(знак больше>
order deny, allow
deny from all
allow from firma.ru
<(знак меньше)/Files(знак больше)>
Еще как пример:
# запрещаем доступ к файлам .ht* всем
<(знак меньше)Files ~ "^\.ht"(знак больше)>
Order allow,deny
Deny from all
<(знак меньше)/Files(знак больше)>