Apache & Linux

В наше время практически у каждого уважающего себя юзера с доступом в инет есть своя пага, и ты, наверное, не исключение. Безусловно тебе хочется, чтобы твой сайт модно смотрелся на серваке, а это означает, что ты хочешь постоянно лицезреть, как он выглядит после нового модного скрипта. Из всего этого можно сделать вывод, что тебе необходим локальный web-сервер с поддержкой выполнения cgi-приложений (aka perl-скриптов), php других прелестей веб-дизайна. В этой статье будет рассмотрена настройка популярного веб-сервера со всевозможными примочками (а именно Apache) под Linux, так как это самая простая операционная система из семейства *nix, а фанаты виндов пусть мучаются со всякими там ActivePerl'ами и периодическими подвисаниями их детища :).

Установка Apache'а нас совершенно не колбасит по причине его наличия во всех известных линухах (если же у тебя он каким-то образом таинственно пропал или тебе не терпится скачать версию посвежее и навешать всяких радостей на него, то рекомедуется посетить http://apache.org).

Конфиги находятся в /etc/httpd/conf/, нас интересуют httpd.conf, commonhttpd.conf. В первом из них расположились главные настройки web-сервера, в "Main Configuration Section" нас уже злобно предостерегают что-либо менять, пока мы не станем реальными гуру... Этот раздел должен выглядеть приблизительно так:

ServerType standalone ServerRoot /etc/httpd #ServerName localhost #LockFile /etc/httpd/httpd.lock PidFile /var/run/httpd.pid ScoreBoardFile /etc/httpd/httpd.scoreboard ErrorLog logs/error_log LogLevel warn ResourceConfig /dev/null AccessConfig /dev/null

Здесь можно ничего не трогать, конечно же кроме ServerName, где localhost смотрится не стильно (чтобы этот параметр заработал надо снять значок комментария "#" в начале этой строки). Дальше любопытна секция "Performance settings Section", в которой присутствуют параметры Timeout'а, функции KeepAlive (поддержка нескольких одновременных запросов подключения к нашему серверу), MaxKeepAliveRequests (максимальное количество таких запросов), KeepAliveTimeout, StartServers (количество инициализационных серверов), MaxClients (лимит клиентов, которые могут одновременно коннектиться).

Но все же апогей конфигурирования Apache'а достигается в commonhttpd.conf! Итак, рассмотрим важнейшие его свойства:

ServerAdmin root@localhost #e-mail, на который будут присылаться все траблы сервака DocumentRoot /var/www/nix #корневой каталог сервера Alias /pix /var/pix #пример алиаса каталога - при обращении на http://127.0.0.1/pix сервак будет обращаться к каталогу /var/pix твоего компа ScriptAlias /cgi-bin/ /var/www/nix/cgi-bin/ #пример алиаса каталога cgi-скриптов - аналогично, с Alias AddIconByType (TXT,/icons/text.gif) text/* #добавление различных иконок в каталоги сервера DefaultIcon /icons/unknown.gif #дефолтовая иконка, которая будет устанавливаться на файлы, к которым таковой нет AddDescription "tar archive" .tar #добавляет краткое описание к файлам данного формата

#пример добавления каталога с html-файлами < Directory /var/www/nix_new> AllowOverride All Options FollowSymLinks MultiViews Order allow,deny Allow from all < /Directory>

#пример добавления каталога с cgi-скриптами < Directory /var/mywww/nix/cgi-bin> AllowOverride All Options +ExecCGI -Includes -Indexes SetHandler cgi-script < /Directory>

#пример добавления файла с поддержкой iss < Location /new/index.shtml> Options +Includes < /Location>

#пример добавления каталога защищенных cgi-скриптов < Directory /var/www/nix/protected-cgi-bin> AllowOverride None Options ExecCGI Order deny,allow Deny from all Allow from 127.0.0.1 < /Directory>

После всех изменений осталось просто запустить httpd ( /etc/rc.d/init.d/httpd start ), а также (по желанию) занести в инициализацию Linux'а ( ntsysv ).