- Как установить веб-сервер Lighttpd в Linux
- Скачать пакет RPM / Deb Lighttpd
- Скачать Wget
- Ubuntu
- Debian
- Arch Linux
- CentOS
- Fedora
- OpenSUSE
- Исходный код
- Извлеките исходный код
- Скомпилируйте Lighttpd на Linux
- Ubuntu
- Debian
- Arch Linux
- Fedora
- OpenSUSE
- Пакеты для распространения
- Установка LLMP stack (Linux, Lighttpd, MySQL и PHP) на Ubuntu 12.04
- Что такое Lighttpd?
- Установка Lighttpd
- Установка PHP
- Установка MySQL
- Lighttpd (Русский)
- Contents
- Установка
- Настройка
- FastCGI
- php-fpm
- Перенаправление HTTP на HTTPS
- Сжатие исходящих данных
- Сжатие динамического контента
- Управление кешем браузера пользователя
- Виртуальные хосты
- Использование условий
- mod_simple_vhost
- mod_evhost
- Листинг директорий
- Ограничение доступа
- Аутентификация
- Методы
- Backends
- plain
- htpasswd
- htdigest
- Пример конфигурации
- Кодировка по умолчанию
- Проксирование
- Lighttpd как reverse proxy для отдачи статики
- Распределние нагрузки с помощью Lighttpd
- Производительность
- HTTP Keep-Alive
- Обработчик событий
- Обработчик сетевых соединений
- Максимальное количество соединений
- Примеры настроек для различных CMS
- phpMyAdmin
- Mediawiki
- texvc
- HTTPS login
- Drupal
- Вариант 1: server.error-handler-404
- Вариант 2: mod_rewrite
Как установить веб-сервер Lighttpd в Linux
Lighttpd является тонкой альтернативой веб-серверу Apache для серверных операционных систем Unix, Linux и Windows.
Его основная цель – быстро и безопасно доставлять веб-контент.
Веб-сервер Lighttpd удобен, особенно для тех, кому необходимо доставлять контент в Интернете в Linux, но при этом не обязательно иметь впечатляющий объем ЦП и ОЗУ.
Настройка веб-сервера Lighthttpd не похожа на настройку Apache или Nginx в Linux.
На веб-сайте разработки нет доступных пакетов.
Вместо этого, если вы хотите использовать его, вы должны загрузить пакет и установить его вручную.
Вот как это сделать.
Скачать пакет RPM / Deb Lighttpd
Некоторое время назад был пакет RPM Lighttpd для CentOS / RedHat Enterprise Linux.
Однако, похоже, что разработчики веб-сервера больше не распространяют их.
Итак, если вы хотите использовать Lighttpd, вам потребуется исходный код.
Скачать Wget
Чтобы загрузить исходный код, вам понадобится утилита загрузки wget.
Поскольку большинство серверных операционных систем не всегда включают эту программу, требуется установка.
Ubuntu
Debian
Arch Linux
CentOS
Fedora
OpenSUSE
После того, как вы загрузили утилиту загрузки wget на свой сервер Linux (или декстоп, который вы используете в качестве сервера), используйте команду CD и переместите сеанс терминала в каталог /tmp.
Загрузка в каталог / tmp (он же временный) гарантирует, что после запуска программного обеспечения оно не засоряет вашу файловую систему.
Исходный код
Теперь, когда терминал находится во временном каталоге, вызовите wget и возьмите релиз исходного кода lighttpd.
В качестве альтернативы, если у вас есть проблемы с выпуском TarGZ, разработчики имеют доступ к выпуску TarXZ.
Загрузка пакета веб-сервера lighttpd займет несколько секунд, в зависимости от вашего интернет-соединения.
Когда процесс завершится, перейдите к следующему разделу этого урока.
Извлеките исходный код
Теперь, когда код загружен на серверную систему Linux внутри временного каталога (/ tmp), пришло время извлечь код из его архива.
Извлечение файлов кода Lighttpd в Linux выполняется командой tar.
В терминале напишите tar с помощью переключателей «zxvf».
Это позволит вам извлечь и просмотреть содержимое архива TarGZ.
В качестве альтернативы, если вы загрузили архив TarXZ вместо TarGZ, вам нужно будет использовать команду tar с другим набором ключей.
В частности, «xvJf».
С извлеченным кодом, запустите команду CD и переместите терминал в новую папку.
Оттуда используйте ls и просмотрите содержимое каталога.
Скомпилируйте Lighttpd на Linux
Создание веб-сервера Lighttpd состоит из нескольких шагов. Это не слишком сложно, и начинается с установки необходимых зависимостей.
Ubuntu
Debian
Arch Linux
Fedora
OpenSUSE
С установленными зависимостями пришло время сканировать вашу систему и создать в ней файлы make.
Эти файлы создаются с помощью скрипта «configure».
Запуск и повторный запуск скрипта может занять несколько раз, особенно если он определяет, что в вашей системе отсутствуют файлы зависимостей.
В нашем руководстве мы сделаем все возможное, чтобы помочь вам установить зависимости, необходимые скрипту для правильной генерации файлов Make.
Однако это может не всегда работать.
Если у вас есть проблемы, проверьте документацию.
После того, как настройка завершена, наступает время для сборки установки с помощью команды Make.
Когда все будет сделано, нужно будет настроить сервер.
Для этого зайдите на официальный сайт.
Пакеты для распространения
По большей части Lighttpd не изо всех сил старается поддерживать специфичные для дистрибутива пакеты для своего веб-сервера.
По этой причине мы рассмотрели, как вы можете скомпилировать и собрать его из исходного кода.
Кроме того, загрузка исходного кода – это хороший способ убедиться, что вы можете получить последнюю версию программного обеспечения, независимо от того, какая у вас ОС Linux.
С учетом сказанного, некоторые дистрибутивы могут иметь пакет веб-сервера Lighttpd в своих основных источниках программного обеспечения.
Чтобы узнать больше, зайдите на pkgs.org. На странице вы увидите информацию о списке для нескольких пакетов Lighttpd.
Однако имейте в виду, что если вы устанавливаете дистрибутивные выпуски, они могут обновляться не так часто, как прямо от разработчиков.
Источник
Установка LLMP stack (Linux, Lighttpd, MySQL и PHP) на Ubuntu 12.04
Что такое Lighttpd?
Lighttpd – это один из наиболее популярных веб-серверов с открытым исходным кодом, который сосредотачивается на повышении производительности и снижении объема занимаемой памяти. В сочетании с широко используемым сервером баз данных MySQL и серверным языком сценариев PHP Lighttpd становится достойной альтернативой более ресурсоемкому LAMP stack.
В данном руководстве речь пойдет об установке Lighttpd, PHP и MySQL для быстрого запуска облачного сервера. При этом подразумевается наличие готового к работе Ubuntu VPS с привилегиями root. Чтобы получить инструкции по начальной настройке сервера Ubuntu, читайте эту статью.
Установка Lighttpd
Для установки Lighttpd используйте команду:
sudo aptitude install lighttpd
Теперь при направлении браузера на свой IP появится root-папка облачного сервера; если к адресу добавить index.lighttpd.html, будет выведена страница приветствия Lighttpd по умолчанию:
Данная страница предоставляет некоторую полезную информацию (например, где находятся важные конфигурации Lighttpd, скрипты CGI, журналы, и т.д.). Root-папка облачного сервера по умолчанию находится в /var/www (что важно для пользователей, привыкших к Apache), а конфигурационные файлы можно найти в /etc/lighttpd.
Основной конфигурационный файл Lighttpd – /etc/lighttpd/lighttpd.conf. В нем можно найти некоторые важные директивы:
В данном блоке кода можно найти загруженные lighttpd модули:
server.modules = (
«mod_access»,
«mod_alias»,
«mod_compress»,
«mod_redirect»,
# «mod_rewrite»,
)
Здесь можно указать другие модули, которые нужно загрузить. Но будьте осторожны: порядок загрузки модулей очень важен. За дополнительной информацией перейдите по данной ссылке.
Ниже можно установить root-документ облачного сервера (если использовать /var/www не очень удобно), пользователя сервера, группу, индексные файлы и многое другое.
Установка PHP
Для установки PHP серверу Lighttpd понадобится PHP FastCGI. Кроме того, нужно также установить пакет php-mysql для работы с MySQL. Чтобы установить обе зависимости, запустите команду:
sudo aptitude install php5-cgi php5-mysql
Чтобы PHP взаимодействовал с VPS, активируйте модуль с помощью следующих команд:
sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php
Аналогично Apache, данные команды создадут символическую ссылку с /etc/lighttpd/conf-enabled/ folder files в /etc/lighttpd/conf-available/ folder files.
Теперь можно перезагрузить Lighttpd, что активирует внесенные изменения.
sudo service lighttpd force-reload
Чтобы проверить, работает ли php, создайте пустой php-файл и вызовите функцию phpinfo() из него. Для создания файла:
И вставьте в него следующий код:
Сохраните изменения, закройте файл, а затем перейдите к нему в браузере. Это должно вывести всю информацию об установленном на данном VPS PHP, о модулях и т.п. Среди модулей должен появиться php-mysql (без него нельзя переходить к установке MySQL).
Установка MySQL
В завершение нужно установить сервер баз данных MySQL; для этого запустите следующую команду:
sudo aptitude install mysql-server
На данном этапе понадобится установить пароль root-пользователя MySQL. Для его активации используйте команду:
Запустите скрипт безопасной инсталляции (secure installation):
Теперь введите только что установленный пароль root-пользователя (если такого пароля нет, оставьте поле незаполненным), после чего будет предложено изменить этот пароль (что делать вовсе необязательно).
Затем рекомендуется ответить Yes на появившиеся вопросы, поскольку они удаляют некоторые тестовые базы данных и учетные записи, а главное – отнимают привилегии на базы данных у анонимных пользователей.
Готово! Можете приступить к работе с веб-сервером на основе LLMP.
Источник
Lighttpd (Русский)
Перевод этой статьи или раздела не отражает оригинальное содержание.
lighttpd — веб-сервер, разрабатываемый с расчётом на быстроту и защищённость, а также соответствие стандартам. В lighttpd есть поддержка сжатия отдаваемого содержимого «на лету», HTTP-аутентификации, перезаписи URL, SSL и автоматической балансировки нагрузки (нагрузка может автоматически распределяться по нескольким запущенным серверам lighttpd). Веб-сервер также поддерживает интерфейсы CGI, SCGI, FastCGI.
Contents
Установка
lighttpd доступ в extra репозитории
Настройка
Настройи lighttpd находятся в файле /etc/lighttpd/lighttpd.conf . Настройки по умолчанию позволяют проверить работоспособность сервера.
По умолчанию в качестве document-root сервера служит директория /srv/http/ .
Проверяем, существует ли пользователь http:
Если такого пользователя нет в системе, добавляем его командой:
Проверим правильность установки
Затем откройте в своём браузере адрес http://localhost и вы должны увидеть тестовую страницу.
Вы также можете добавить lighttpd в секцию DAEMONS в /etc/rc.conf , чтобы он загружался при старте системы.
Примеры конфигурационных файлов вы можете найти в /usr/share/doc/lighttpd/config/ .
Вы также можете включить все файлы настроек из /etc/lighttpd/conf.d/ одной командой:
При этом файлы будут включаться в порядке их следования в каталоге, что может привести к непредсказуемым результатам. В качетсве решения можно перед названием файла ставить цифры, например, 10-auth.conf , 20-fastcgi.conf , 21-fastcgi-php.conf .
Теперь нужно включить эти настройки в /etc/lighttpd/lighttpd.conf :
Этот модуль позволяет выполнять различные CGI программы. Пример конфигурации CGI модуля приведён ниже:
Включаем эти настройки в /etc/lighttpd/lighttpd.conf :
Файл без расширения, но имеет определённую правую часть URL:
FastCGI
Устанавливаем FastCGI командой:
Теперь у вас есть lighttpd с поддержкой fcgi.
Следующее содержимое нужно добавить в файл конфигурации
Включаем этот конфиг в /etc/lighttpd/lighttpd.conf строкой
Устанавливаем php и php-cgi
Проверяем, что php-cgi работает:
Если вы увидели похожий вывод, значит всё установлено правильно.
И что файлы доступны для чтения всем:
Чтобы lighttpd мог работать с php в /etc/lighttpd/conf.d/fastcgi-php.conf добавляем
Включаем этот конфиг в /etc/lighttpd/lighttpd.conf строкой
Проверяем работу php:
Затем откройте в своём браузере адрес http://localhost/phpinfo.php и вы должны увидеть страницу, содержащую информацию о php.
php-fpm
В качестве альтернативы php-cgi можно использовать php-fpm. Целесообразность использования php-fpm заключается в отсутствии в последних версиях lighttpd динамической регуляции количества php процессов.
Устанавливаем php-fpm и запускаем демон:
В /etc/lighttpd/conf.d/fastcgi-php.conf добавляем:
Аналогично предыдущему описанию включаем этот конфиг в /etc/lighttpd/lighttpd.conf строкой
SSI (Server Side Includes — включения на стороне сервера) — несложный язык для динамической «сборки» веб-страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML-документа.
Чтобы добавить поддержку SSI в Lighttpd добавляем следующие настройки в /etc/lighttpd/conf.d/ssi.conf :
Создаем директорию для хранения сертификатов:
Генерируем самоподписанный сертификат (пример команды):
Выставляем владельца и нужные права:
Теперь нужно включить SSL в настройках lighttpd (в /etc/lighttpd/lighttpd.conf ).
Чтобы включить SSL для всего HTTP-сервера (вам также нужно указать порт сервера 443):
Чтобы включить SSL в дополнение к HTTP:
Если вы хотите использовать другой сайт при переходе на HTTPS, вам нужно указать другую директорию в качестве document-root используя сокет (в данном случае 443 порт) в качестве условия:
Вы также можете использовать named-based виртуальным хостинг, чтобы реализовать несколько SSL серверов:
Перенаправление HTTP на HTTPS
mod_redirect должен быть включён:
Перенаправляем трафик для домена example.org:
Перенаправляем запросы на HTTPS для части сайта (в примере ниже — /secure ):
Перенаправляем весь трафик на HTTPS:
Сжатие исходящих данных
Сжатие исходящих данных уменьшает нагрузку на сеть и может улучшить общую пропускную способность веб-сервера.
На сегодня поддерживается только статичное содержимое.
Сервер автоматически договаривается какой метод сжатия использовать. Поддерживается gzip, deflate, bzip.
Ограничение на размер сжимаемых файлов: от 128 байт до 128 мегабайт.
Создаём нужную директорию и задаём владельца:
В /etc/lighttpd/conf.d/compress.conf вносим:
Включаем настройки /etc/lighttpd/conf.d/compress.conf в /etc/lighttpd/lighttpd.conf
В данном примере будут удалены все файлы, которые старше 10 дней.
Не забудьте установить владельцем каталога пользователя http.
Сжатие динамического контента
Для сжатия динамического контента (PHP) в /etc/php/php.ini нужно включить следующую директиву:
Управление кешем браузера пользователя
Для ускорения загрузки статических файлов можно управлять кешем браузера пользователя через заголовки Expires и Cache-Control. Для этого в Lighttpd используется mod_expire.
Можно также перечислить отдельные расширения файлов:
Альтернативу предыдущему листингу:
Виртуальные хосты
Использование условий
Первый способ заключается в изменении server.document-root в зависимости от содержимого заголовка «host».
mod_simple_vhost
Этот способ более прост и экономичен. В указанной директории хостинга имя каждого каталога соответствует аналогичному имени вируального хоста. Внутри каждого такого каталога находится dccroot вируального хоста.
Docroot для каждого вируального хоста строится из следующих трёх значений:
Абсолютный путь к docroot’у строится из:
в случае если путь не существует
В качестве примера приведём следующий:
Включаем конфигурацию из /etc/lighttpd/conf.d/simple_vhost.conf в /etc/lighttpd/lighttpd.conf :
Для создания виртуального хоста достаточно создать каталог в /srv/vhosts/ и сделать владельцем http:http. Например:
mod_evhost
Модуль evhost создаёт document-root, основываясь на шаблнах. Эти шаблоны представляют различные части запроса «host»:
- %% => % sign
- %0 => domain name + tld
- %1 => tld
- %2 => domain name without tld
- %3 => subdomain 1 name
- %4 => subdomain 2 name
- %_ => full domain name
С помощью этого моудля можно также организовать виртуальные хосты для поддоменов:
Листинг директорий
Чтобы включить листинг для всех каталогов в /etc/lighttpd/lighttpd.conf укажите следующую опцию:
Листинг включается для всех каталогов, в корне которых нет файлов перечисленных в директиве index-file.names.
Чтобы включить листинг для отдельного каталога укажите следующее:
Ограничение доступа
Для использования ограничения доступа необходим включить mod_access:
Ограничиваем доступ к файлам, заканчивающимся на «
Запрет доступа к сайту для определённого IP:
Ограничение доступа к каталогу /libraries :
Запрет доступа к каталогу /stats всех кроме IP адресов 200.19.1.5 и 210.45.2.7:
Запрет доступа к файлам jpg, jpeg, png если запрос приходит не с www.example.com (защита от прямых ссылок):
Аутентификация
Методы
lighttpd поддерживает два метода аутентификации:
- Basic метод передаёт имя пользователя и пароль по сети в открытом виде(закодированными в base64), что способствует возникновению проблемы безопастности в случае если соединение между клиентом и сервером не шифруется.
- Digest метод передаёт только хешированную информацию, что значительно повышает конфидециальность аутентификационных данных в незащищённых сетях.
Backends
В зависимости от метода lighttpd позволяет использовать различные методы хранения данных необходимых для аутентификации. Для basic аутентификации:
Для digest аутентификации:
plain
Файл содержит строки с именами пользователей и паролями в открытом виде. Имя пользователя и пароль разделяются двоеточием. Например:
htpasswd
Файл содержит строки с именами пользователей и зашифрованными с помощью crypt() паролями. Имя пользователя и пароль разделяются двоеточием.Например:
htdigest
Файл содержит строки с именами пользователей, realm’ом и зашифрованными с помощью md5() паролями. Имя пользователя, realm и пароль разделяются двоеточием. Например:
ldap backend обычно выполняет следующие действия для аутентификации пользователя
- анонимное соединение (при загрузке plugin’а)
- получение DN для фильтрации = username
- аутентификация на ldap сервере
- рассоединение
если четвёртый шаг проходит без ошибок, то пользователь считается авторизированным
Чтобы сгенерировать файл htpasswd введите команду:
Чтобы сгенерировать файл htdigest введите команду:
Пример конфигурации
Кодировка по умолчанию
Чтобы установить кодировку для статических файлов, нужно добавить charset=utf-8 в директиве mimetype.assign. Например:
Кодировка для листинга каталогов устанавливается директивой:
Кодировка для php файлов устанавливается в файле /etc/php/php.ini :
Проксирование
Lighttpd как reverse proxy для отдачи статики
Пример конфигурации при использовании виртуальных хостов:
Можно также перенапрвлять только скрипты с определённым расширением:
В качестве альтернативы можно использовать условие $HTTP[«url»]:
Распределние нагрузки с помощью Lighttpd
Для распределения нагрузки можно использовать следующие настройки:
Доступны следующие типы балансинга:
- fair — запрос обрабатывается менее нагруженным сервером
- round-robin — запросы обрабатывают сервера по очереди
- hash — гарантировано один и тот же uri будет обрабатываться конкретным сервером
Производительность
HTTP Keep-Alive
Отключение Keep-Alive может помочь вашему серверу, если вы страдаете от большого количества дескрипторов файлов. Значения по умолчанию:
Обработка 16 запросов на одно соединение, ожидание 5 секунд прежде, чем Lighttpd закроет соединение.
Если сервер обрабатывает несколько соединений сразу под высокой нагрузкой (предположим, 500 соединений одновременно в течение 24 часов), вы можете столкнуться с проблемой нехватки дескрипторов файлов
Это позволит высвободить соединения ранее, и освободит дескриптор файлов без вредные потери производительности.
Отключение Keep-Alive полностью является крайним случаем, если вы все еще хватает файловых дескрипторов:
Обработчик событий
Для Linux с ядром 2.6 и выше рекомендуется следующее значение:
Значение по умолчанию: poll (для Unix систем).
Обработчик сетевых соединений
Основный интерфейс для всех платформ — это системные вызовы read() и write(). Современные операционные системы имеют свои собственные системные вызовы, помогающие серверам передавать файлы так быстро, как это возможно. Чтобы установить обработчик сетевых сеодиненй используется директива server.network-backend:
- linux-sendfile рекомендуется для маленьких файлов.
- writev рекомендуется для очень больших файлов.
Максимальное количество соединений
Lighttpd — сервер, работающий в один поток. Его основной ресурс ограничивается количеством дескрипторов файлов, которые устанавливается 1024 по умолчанию в большинстве систем. Дескриптор файла — это просто число, которое представляет открытый файл или сокет. Каждый раз, когда процесс открывает новый файл или сокет, он определяет место для нового дескриптора файла. После закрытия файла или сокета эти дескрипторы используются повторно. Большая часть систем Unix накладывает ограничение на число одновременно открытых дескрипторов файлов. Эти ограничения касаются как одного процесса, так и всей системы.
Узнать ограничение дескрипторов файлов в вашей системе можно с помощью команды:
Если у вас сайт с большим трафиком, вы можете увеличить это ограничение:
Примеры настроек для различных CMS
phpMyAdmin
Устанавливаем необходимые пакеты:
Настройка поддержки php описана выше.
Раскоментируем следующие директивы в /etc/php/php.ini :
Также убедитесь, что директории phpmyadmin указаны в директиве open_basedir в /etc/php/php.ini
Затем конфигурируем Lighttpd:
Если вы хотите, чтобы phpMyAdmin был доступен только по защищённому протоколу добавьте следюущие настройки:
Вы также можете ограничить доступ к phpMyAdmin для определённых IP адресов:
Подключаем /etc/lighttpd/conf.d/phpmyadmin.conf к основному файлу настроек:
Теперь вы можете получить доступ к phpMyAdmin по адресу http://localhost/phpmyadmin или http://localhost/phpMyAdmin
Mediawiki
Устанавливаем необходимые пакеты:
Настройка поддержки php описана выше. УБедитесь, что необходимые директории перечислены в директиве open_basedir в /etc/php/php.ini
Задаём пароль для учётной записи root MySQL:
Создаём базу данных для wiki:
Создаём пользователя для новой базы:
- $
— пароль root MySQL. - $
— имя пользователя базы данных wiki. - $
— пароль пользователя базы данныз wiki.
Настраиваем Lighttpd (согласно нижеприведённые настройки wiki будет доступна по адресу http://mysite/wiki):
Подключаем /etc/lighttpd/conf.d/mediawiki.conf к основному файлу настроек:
Теперь вы можете перейти по адресу http://localhost/wiki для утсановки.
Если хотите использовать поддомен для wiki или Mediawiki будет единствуенной CMS на вашем сайте, то настройки Lighttpd будут выглядеть следующим образом:
texvc
Устанавлиаем необходимые пакеты:
Затем в файле /usr/share/webapps/mediawiki/LocalSettings.php добавляем:
HTTPS login
Если MediaWiki Установлена в папку wiki, то конфиг будет выглядеть следующим образом:
Drupal
УБедитесь, что необходимые директории перечислены в директиве open_basedir в /etc/php/php.ini
Вариант 1: server.error-handler-404
Вариант 2: mod_rewrite
Для того, чтобы в MODX заработали «Дружественные URL» в конфиг Lighttpd внесите следующие строки:
Также стоит запреттить доступ для всех в папку core.
Источник