HowTo: Lighttpd + FastCGI
Автор: AlkoGekS
Сидя на работе, решил заморочиться и перевести всё с Apache на Lighttpd, так как слышал про него много хороших отзывов, плюсами из которых в первую очередь была быстрота. Ну и к тому же по статье Лиссяры у меня почему то не получилось завести FastCGI на Apache =) Значить сам Бог велел.
Итак приступаем. Ставить соответственно будем из портов.
Перед этим не забываем обновить их, так как совсем недавно версия сервера была обновлена.
#portsnap fetch update
Обновились, следующим шагом переходим в папку с сервером и устанавливаем его.
lexx# whereis lighttpd
lighttpd: /usr/ports/www/lighttpd
lexx# cd /usr/ports/www/lighttpd && make install clean
Вылезает окошко с опциями, я поставил его без опций: “IPV6, OPENLDAP, OPENSSL, VALGRIND, WEBDAV”
Все остальное выбрал.
После окончания установки лезем править конфиг
lexx# cd /usr/local/etc/
lexx# cp ./lighttpd.conf.sample ./lighttpd.conf
lexx# ee ./lighttpd.conf
Сразу бросается в глаза то, что сам конфигурационный файл не такой уж и большой как к примеру файл апача.
Еще одно мое наблюдение: Некоторые опции отсутвствую в примерах, например для mod_alias. Но все по порядку.
Привожу свой файл lighttpd.conf который полностью рабочий (только опции которые важны для работы, все остальное у меня закоментировано):
## список всех модулей
server.modules = (
“mod_rewrite”,
“mod_redirect”,
“mod_alias”,
“mod_access”,
# “mod_cml”,
# “mod_trigger_b4_dl”,
# “mod_auth”,
# “mod_status”,
# “mod_setenv”,
“mod_fastcgi”,
# “mod_proxy”,
# “mod_simple_vhost”,
# “mod_evhost”,
# “mod_userdir”,
# “mod_cgi”,
# “mod_compress”,
# “mod_ssi”,
# “mod_usertrack”,
# “mod_expire”,
# “mod_secdownload”,
# “mod_rrdtool”,
“mod_accesslog” )## Алиасы сервера: к примеру http://www.mysite.ru/phpmyadmin/
alias.url += ( “/phpmyadmin/” => “/usr/local/www/phpMyAdmin/” )## Корневая папка сервера
server.document-root = “/usr/local/www/”## Лог ошибок. Автоматически не создается
server.errorlog = “/var/log/lighttpd.error.log”# Пример http://www.mysite.ru/index.php
index-file.names = ( “index.php”, “index.html”,
“index.htm”, “default.htm” )## Где то читал что это важная опция =)
server.event-handler = “freebsd-kqueue”# Расширения
mimetype.assign = (
“.pdf” => “application/pdf”,
“.sig” => “application/pgp-signature”,
“.spl” => “application/futuresplash”,
“.class” => “application/octet-stream”,
“.ps” => “application/postscript”,
“.torrent” => “application/x-bittorrent”,
“.dvi” => “application/x-dvi”,
“.gz” => “application/x-gzip”,
“.pac” => “application/x-ns-proxy-autoconfig”,
“.swf” => “application/x-shockwave-flash”,
“.tar.gz” => “application/x-tgz”,
“.tgz” => “application/x-tgz”,
“.tar” => “application/x-tar”,
“.zip” => “application/zip”,
“.mp3″ => “audio/mpeg”,
“.m3u” => “audio/x-mpegurl”,
“.wma” => “audio/x-ms-wma”,
“.wax” => “audio/x-ms-wax”,
“.ogg” => “application/ogg”,
“.wav” => “audio/x-wav”,
“.gif” => “image/gif”,
“.jar” => “application/x-java-archive”,
“.jpg” => “image/jpeg”,
“.jpeg” => “image/jpeg”,
“.png” => “image/png”,
“.xbm” => “image/x-xbitmap”,
“.xpm” => “image/x-xpixmap”,
“.xwd” => “image/x-xwindowdump”,
“.css” => “text/css”,
“.html” => “text/html”,
“.htm” => “text/html”,
“.js” => “text/javascript”,
“.asc” => “text/plain”,
“.c” => “text/plain”,
“.cpp” => “text/plain”,
“.log” => “text/plain”,
“.conf” => “text/plain”,
“.text” => “text/plain”,
“.txt” => “text/plain”,
“.dtd” => “text/xml”,
“.xml” => “text/xml”,
“.mpeg” => “video/mpeg”,
“.mpg” => “video/mpeg”,
“.mov” => “video/quicktime”,
“.qt” => “video/quicktime”,
“.avi” => “video/x-msvideo”,
“.asf” => “video/x-ms-asf”,
“.asx” => “video/x-ms-asf”,
“.wmv” => “video/x-ms-wmv”,
“.bz2″ => “application/x-bzip”,
“.tbz” => “application/x-bzip-compressed-tar”,
“.tar.bz2″ => “application/x-bzip-compressed-tar”,
# default mime type
“” => “application/octet-stream”,
)## Лог доступа. Тоже не создается автоматически, следовательно создаем вручную
accesslog.filename = “/var/log/lighttpd.access.log”# Расширения для fastcgi
static-file.exclude-extensions = ( “.fcgi”, “.php”, “.rb”, “~”, “.inc”, “.pl”, “.yml” )## Пид-файл сервера
server.pid-file = “/var/run/lighttpd.pid”# Виртуальные директории
$HTTP["host"] == “www.mysite.su” {
server.document-root = “/usr/home/Mysite/public_html/”
server.error-handler-404 = “/index.php?error=404″ }$HTTP["host"] == “www.mysite2.ru” {
server.document-root = “/usr/home/Mysite2/public_html/mysite2/”
server.error-handler-404 = “/index.php?error=404″}## Просмотр пустых директорий
dir-listing.activate = “enable”## Пользователь, от которого работает сервер
server.username = “www”## Группа, от которой работает сервер
server.groupname = “www”## Конфигурация FastCGI (не забываем установить сам php)
fastcgi.server = ( “.php” =>( “localhost” =>
( “socket” => “/tmp/fcgi”,
“max-procs” => 2,
“bin-environment” => (
“PHP_FCGI_CHILDREN” => “4″,
“PHP_FCGI_MAX_REQUESTS” => “100″
),
“bin-path” => “/usr/local/bin/php-cgi”,
“broken-scriptfilename” => “enable”
)
)
)
Ну и напоследок, ресурсов стало кушать все это хозяйство намного меньше, работает тоже быстренько. Так что удачи
Взято с lissyara.su

Leave a Reply