Сегодня довольно часто вместо “тяжелого” Apache используют более “легкие” сервера. Например lighttpd (www.lighttpd.net) входит в пятерку наиболее популярных решений и используется на таких сайтах как SourceForge, Youtube, Википедия.
Но если в Ubuntu 8.04 LTS он у меня завелся буквально с полпинка, достаточно было ввести:
$ sudo apt-get install lighttpd lighttpd-doc php5-cgi
Включить модуль fastcgi:
$ sudo lighty-enable-mod fastcgi
И уточнить параметры в /etc/lighttpd/lighttpd.conf
Но имеющиеся инструкции для FreeBSD помогли лишь отчасти. Обновляем порты: # portsnap update
Проверяем где находится нужный порт lighttpd: # whereis lighttpdLighttpd: /usr/ports/www/lighttpd
Ставим # cd /usr/ports/www/lighttpd # make install clean
В процессе установки выскочит окно с параметрами, я установил все кроме: “IPV6, OPENLDAP, VALGRIND, WEBDAV”.
Теперь если нужно PHP5: # whereis php5php5: /usr/ports/lang/php5
# cd /usr/ports/lang/php5 # make install clean
В окне параметров обязательно отмечаем FastCGI. Терпеливо ждем пока все соберется.
Конфигурационный файл сервера lighttpd.conf находится в /usr/local/etc/, здесь же лежит еще один (lighttpd.conf.sample) по содержанию они одинаковы. Шаблон часто нужно всего лишь чуть подправить. Файл lighttpd.conf состоит из директив и стандартен для Unix. Если директива должна принимать несколько значений, они перечисляются через запятую и заключаются в скобки.
# ee /usr/local/etc/lighttpd.conf
;Описание модулейserver.modules = ( “mod_access”, “mod_alias”, “mod_accesslog”, “mod_compress”, ; эта строка подключает FastCGI“mod_fastcgi”, # “mod_rewrite”, ) ; Расположение файлов сервераserver.document-root = “/usr/local/www/data” ; Логи ошибок и доступаserver.errorlog = “/var/log/lighttpd.error.log” accesslog.filename = “/var/log/lighttpd.access.log”
; Индексные файлыindex-file.names = ( “index.php”, “index.html”, “index.htm”, “default.htm”) ; По умолчанию порт 80, его можно изменить ; server.port = 80 ; слушаются все интерфейсы, тоже можно поменять ; server.bind = “localhost” ; Кодировка для листинга файловdir-listing.encoding = “utf-8″ ;UID|GID, с правами которых будет работать демонserver.username = “www” server.groupname = “www” ; чуть ниже снимаем комментарии со строк предназначенных для активации FastCGIfastcgi.server = ( “.php” => ( “localhost” => ; здесь в файле нужно поправить имя заменив php-cgi-cgi, на php-cgi (”bin-path” => “/usr/local/bin/php-cgi”, “socket” => “/tmp/php-fastcgi.socket” )))
Остальное можно не трогать. Добавляем запуск в rc.conf # echo lighttpd_enable=\”YES\” >> /etc/rc.conf # cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
Чтобы не нарушать совместимость с большинством приложений, необходимо снять знак комментаряи в php.ini с параметра “cgi.fix_pathinfo=1″: # ee /usr/local/etc/php.inicgi.fix_pathinfo = 1
Создаем файлы журналов, без них демон не запустится. # touch /var/log/lighttpd.error.log # touch /var/log/lighttpd.access.log
По окончании настройки проверяем файл на отсутствие ошибок: # /usr/local/etc/rc.d/lighttpd -t -f /usr/local/etc/lighttpd.confSyntax OK
Стартуем. # /usr/local/etc/rc.d/lighttpd restart
Для проверки работы PHP пишем скрипт # /usr/local/www/data/test.php
Открываем в браузере http://localhost/test.php
Если видим страницу с параметрами PHP все работает.