Lighttpd
Lighttpd — легковесный и простой в настройке веб-сервер. Конфигурационный файл — /etc/lighttpd/lighttpd.conf.
Виртуальные хосты
$HTTP["host"] == "example.com" { server.document-root = "/var/www/example … } $HTTP["host"] == "example2.com" { server.document-root = "/var/www/example2" … }
Как сделать редирект на субдиректорию?
url.redirect = ( "^/$" => "/subfolder" )
Не забудьте удостовериться, что mod_redirect включён.
Как сменить кодировку?
Известная проблема Lighttpd. Прямого решения нет, но есть несколько костылей, например:
- Комментируем строчку include_shell "/usr/share/lighttpd/create-mime.assign.pl", отключив тем самым мешающий нам perl-скрипт.
- Дампим вывод скрипта в файл: perl /usr/share/lighttpd/create-mime.assign.pl | cat >>/etc/lighttpd/conf-available/dump.
- Прописываем нужную нам кодировку (заменяем ".htm" => "text/html", на ""text/html; charset=koi8-r", (вместо koi8-r подставьте нужную вам кодировку) и т. д.).
- Подключаем файл: include "conf-available/dump".
php-cgi сжирает слишком много памяти при работе через FastCGI
В /etc/lighttpd/conf-enabled/15-fastcgi-php.conf меняем параметры PHP_FCGI_CHILDREN и PHP_FCGI_MAX_REQUESTS на меньшие, в зависимости от нужд сайта. К примеру, со следующей конфигурацией работает «lorwiki.ru»:
"bin-environment" => ( "PHP_FCGI_CHILDREN" => "2", "PHP_FCGI_MAX_REQUESTS" => "100" ),
Как сделать URL в MediaWiki человекочитабельными?
Следуем гайду — https://www.mediawiki.org/wiki/Manual:Short_URL/wiki/Page_title_--_Lighttpd_rewrite--root_access:
url.rewrite-if-not-file = ( "^/wiki/(mw-)?config/?" => "$0", "^/wiki/([^?]*)(?:\?(.*))?" => "/w/index.php?title=$1&$2", "^/wiki/([^?]*)" => "/w/index.php?title=$1", "^/wiki$" => "/w/index.php", # to avoid 404 when the user types /wiki instead of /wiki/ )
В LocalSetting.php прописываем
$wgScriptPath = "http://example.com"; $wgScriptExtension = ".php"; $wgArticlePath = "/wiki/$1"; $wgUsePathInfo = true;
Разумеется, заменяем «example.com» своим доменом.
Не забудьте включить mod_rewrite (по умолчанию он отключен).
SSL-сертификаты
$SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/cert.pem" ssl.ca-file = "/etc/lighttpd/intermediate.crt" server.name = "domain.ru" server.document-root = "/var/www" }
Где /etc/lighttpd/cert.pem — путь к файлу, содержащему в себе ключ и сертификат (cat cert.crt ker.key > pem.pem), а /etc/lighttpd/intermediate.crt — путь к intermediate сертификату, если есть. В некоторых случаях их тоже приходится конкатенировать).
SNI
$SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/domain.ru.pem" ssl.ca-file = "/etc/lighttpd/intermediate.crt" server.name = "domain.ru" server.document-root = "/var/www" $HTTP["host"] == "subdomain1.domain.ru" { ssl.pemfile = "/etc/lighttpd/subdomain1.pem" ssl.ca-file = "/etc/lighttpd/intermediate.crt" server.name = "subdomain1.domain.ru" server.document-root = "/var/www/subdomain1" } $HTTP["host"] == "subdomain2.domain.ru" { ssl.pemfile = "/etc/lighttpd/subdomain2.pem" ssl.ca-file = "/etc/lighttpd/intermediate.crt" server.name = "subdomain2.domain.ru.ru" server.document-root = "/var/www/subdomain2" } }