Для linux.
Офсайт - http://www.lighttpd.net/
Версия статьи - 1.0
Версия сервера - 1.4.16-7
0. Что это такое
lighttpd - маленький быстрый веб-сервер. Включает в себя множество функций, включая работу со скриптами и программами cgi (php,perl и др.), поддержку виртуальных хостов, SSI, компрессию, файлы .htaccess и многое другое. Он потребляет мало ресурсов, прост в настройке.
Минус сервера - документация по настройке включена только в windows-версию, или я плохо искал. man-страниц по конфигу нет, а есть ли они где ещё - не знаю.
Кстати, почти всё, что касается настройки сервера в linux можно перенести и на windows-версию. Единственное примечание - в windows модуль fastcgi НЕ РАБОТАЕТ! Используйте стандартный модуль cgi.
1. Установка
Если у вас Fedora 7 - то взять последнюю версию можно из репозитариев в ФОСе (см. здесь).
То же касается и пользователей Ubuntu и Gentoo - репозитарии для них есть в ФОС. Но есть ли в них lighttpd - не знаю, не пробовал.
Качаем пакеты lighttpd и lighttpd-fastcgi (если планируете создавать php- или cgi-скрипты):
- Код: Выделить всё • Развернуть
yum -y install lighttpd lighttpd-fastcgi
За оба этих пакета отвечает 1 rpm-пакет - lighttpd-1.4.16-1.fc7.src.rpm - он с исходниками, поэтому с ним в lighttpd можно включить все нужные модули. Т.к. я ставил из репозитариев, у меня нет точных TTH, поэтому поищите в DC-клиентах по вышеприведённому имени пакета или просто по слову lighttpd. Или скачайте версию с официального сайта, сервер не так уж много весит.
2. Конфигурирование
Предположим, что сервер уже установлен. Он автоматически создаёт скрипт его запуска - /etc/init.d/lighttpd, т.е. его можно запускать через команду service. Файл конфигурации - /etc/lighttpd/lighttpd.conf (windows - C:\lighttpd\etc\lighttpd.conf).
Я приведу настройку для обычного домашнего сайта с php без форумов и особых наворотов.
Структура файла довольно проста. Говоря об опции, я буду указывать возможные её значения. Плюс ещё подробные комменты в самом файле.
server.modules - подключаемые модули lighttpd. Если вы ставите из rpm- или deb-пакета, то все эти модули будут установлены по умолчанию (кроме fastcgi, но о нём я уже говорил). После этой опции идёт список модулей. Большинство из них закомментированио (#). Модули mod_access и mod_access_log должны быть активированы всегда. Если у вас планируется использование php-скриптов, подключите модуль mod_fastcgi, если вы его установили, или модуль mod_cgi в обратном случае. В конце файла эти модули конфигурируются.
server.document-root - путь к каталогу с гипертекстовыми документами. Вы можете изменить путь на более вам удобный, например, "/home/dpx-infinity/wwwroot". Путь обязательно брать в кавычки. Это обязательная опция, её необходимо указать.
server.errorlog - путь к файлу лога ошибок. Также обязательно заключать в кавычки.
index-file.names - список имён файлов, которые будут выдаваться, если не запрошен какой-то конкретный файл. Например, если в этом списке указан "index.php", то, если такой файл существует и находится в корневом каталоге сервера (см. server.document-root), при запросе http://localhost/ он будет выведен.
mimetype.assign - список расширений файлов и соответствующим им mime-типов. Они нужны для удобства броузерной навигации. В этом списке есть большинство часто употребляемых типов, и мне не пришлось его изменять.
accesslog.filename - имя файла лога доступа к серверу. Туда будет записываться протокол доступа к серверу - кто что скачал/загрузил, их ip-адреса и другая полезная информация.
url.access-deny - к каким файлам (по расширению) нужно запретить доступ.
static-file.exclude-extensions - файлы с этим расширением не будут обрабатываться стандартными методами передачи файлов. Например, изначально здесь указаны расширения серверных сценариев (скриптов), которые обрабатываются модулями mod_fastcgi или mod_cgi.
#server.port - здесь можно поменять порт, который прослушивается сервером. По умолчанию - 80, поэтому строчка закомментирована. Уберите знак # и поставьте требуемое значение, если нужно. Но для запуска сервера с номером порта <1024 необходимы права суперпользователя.
#server.error-handler-404 - вы можете установить здесь путь к файлу, который сообщает пользователю об ошибке 404 (файл не найден). Я не пробовал, но возможно вместо 404 можно поставить другой номер и указать путь к соответствующему файлу. Путь отсчитывается относительно server.document-root.
#dir-listing.activate - если данная опция раскомментирована и в ней указано "enable", то при запросе каталога (не файла) при отсутствии в нём индексного файла (index-file.names) будет выдан список файлов в данном каталоге. По умолчанию - выключено (результат - ошибка 404).
#server.errorfile-prefix - эта опция нужна для более удобного управления страницами ошибок. Здесь указывается каталог и префикс файлов ошибок, например, если здесь указано "/var/www/errors/error-" то при запросе несуществующего файла (ошибка 404) будет выдан файл "/var/www/errors/error-404.html".
fastcgi.server - здесь идут настройки модуля fastcgi. Если вы пользуетесь php и установили модуль fastcgi, раскомментируйте всё, что касается этой опции. По умолчанию там заданы настройки для php, но можно добавлять ещё какие-либо настройки, например:
- Код: Выделить всё • Развернуть
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
)
)
".pl" =>
( "localhost" =>
(
"socket" => "/tmp/perl-fastcgi.socket",
"bin-path" => "/usr/bin/perl"
)
)
)
Достаточно изменить имя сокета и путь к интерпретатору.
cgi.assign - если вы не устанавливали fastcgi по каким-то причинам, вы можете воспльзовать встроенным сgi-модулем. Он проще в конфигурировании. Раскомментируйте строчки опции, и, если требуется, добавьте собственный интерпретатор, например:
- Код: Выделить всё • Развернуть
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
".php" => "/usr/bin/php-cgi" )
3. Заключение
После конфигурирования сохраните файл и перезапустите сервер ("sudo service lighttpd reload"), если он был запущен. Все изменения должны вступить в силу, и вы (и не только вы) сможете заходить на свой сайт.
Я здесь написал только об основных настройках сервера. Впоследствии эта статья будет обновляться.
Кстати, сайт http://vfose.ru/ работает именно на lighttpd
(c) Dark "DPX-Infinity" Phoenix