Lighttpd: различия между версиями
lor>Cetjs2 м (Откат правок 163.172.227.165 (обсуждение) к версии Mandala) |
Admin (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
| |
Текущая версия от 21:39, 27 февраля 2023
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"
}
}