Устанавливаем lighttpd

Ноябрь 2nd, 2012

Устанавливаем:

cd /usr/ports/www/lighttpd/

make install clean

Опции сборки:[ ] BZIP2 Enable Bzip2 support

[ ] CML Enable Cache Meta Language support

[ ] FAM Enable fam/gamin support

[ ] GDBM Enable gdbm storage support

[ ] IPV6 Enable IPV6 support

[ ] MAGNET Enable magnet support

[ ] MEMCACHE Enable memory caching support

[ ] MYSQL Enable MYSQL support

[ ] OPENLDAP Enable LDAP support

[X] OPENSSL Enable SSL support

[X] SPAWNFCGI Enable spawn-fcgi utility

[ ] VALGRIND Enable valgrind support

[ ] WEBDAV Enable WebDAV support

Фактически нам нужно SPAWNFCGI, без него никак не получится завести php. Ну OPENSSL в принципе не помешает … малоли phpMyAdmin будет торчать наружу. Остальное - ваша добрая воля. Принцип построение вебсервера на базе lighttpd (далее "лайти") - принцип минимализма. Ставить/включать только то что нужно, поверьте, лайти запустится и заработает без пачки модулей. Впрочем если нам ВНЕЗАПНО понадобится WebDav, нам никто не мешает проделать следующие операции

cd /usr/ports/www/lighttpd/

make config

make install clean

При этом повторно ничего настраивать не придется из того, что уже настроено.

Настраиваем лайти.
У лайти, в отличие от Apache штатно 1 конфигурационный файл, размером около 300 строк. Он позволяет "инклюдить" конфигурационные файлы, но без надобности в этом нет смысла. Прежде хочу сказать о синтактисе конфига, грубо говоря он выглядит так:

параметр_конфигурации = "значение"

параметр_конфигурации2 = (

"значение_1",

"значение_2" )

Собственно начинаем конфигурирование с раздела

server.modules

Нам нужно убрать # у тех модулей, которые потребуются. Внимание! Не спешите убирать сразу все подрят решетки, если вы сразу и безошибочно не настроите модуль, он вывалится с ошибкой! Поэтому лучше настраивать их по очереди. В нашем случае нам придется настраивать модуль mod_fastcgi, и так, список раскоментированных модулей для нашего "быстрого старта"

mod_alias

mod_access

mod_fastcgi

mod_accesslog

Остальное пока оставляем как есть. Понадобится - включим.

server.document-root = "/usr/local/www/data/" - это грубо говоря то место, откуда сервер при обращении к нему без дополнительных параметров и путей (http://ip_address/ возьмет файл index.html(php) по настраивается по желанию, хоть в /var/www/, но имейте в виду на потом куда раскладывать скрипты.

server.errorlog = "/var/log/lighttpd.error.log" - тут ничего менять не нужно, но файл этот придется создать руками. А затем дать права на запись в него пользователю www. Делается это командами touch /var/log/lighttpd.access.log и chown www:www /var/log/lighttpd.access.log

accesslog.filename = "/var/log/lighttpd.access.log" - аналогично предыдущему пункту.

server.port = 1234 по умолчанию оно закоментировано и запускает на 80-м порту. Соответственно чтобы запустить на каком нибуть другом порту нужно убрать # и вместо 1234 поставить номер порта.

Еще при некоторых обстоятельствах (например сборка с поддержкой IPv6) появляется в конфиге такая строчка

$SERVER["socket"] == "0.0.0.0:80"

Находится она в конце конфига, прежде чем менять параметр server.port проверьте наличие этой строчки и исправьте её если вам не нужен сервер на 80-м порту

fastcgi.server Тут нам просто нужно все раскоментировать. Если у вас в планах нет использовать скрипты, в которых потенциально есть возможность утечек памяти, которые будут завешивать процессы-потомки, просто раскоментируйте и исправьте пару подводных камней. Дело все в том, что оптимизация числа потомков это процедура сугубо индивидуальная и зависит она от многих вещей, начиная от ресурсов сервера и заканчивая прямотой скриптов, их тяжестью и отжиранием памяти, поэтому мы оставим этот вопрос т.к. он выходит за рамки быстрого старта, но имейте это в виду.

"socket" ⇒ "/var/run/lighttpd/php-fastcgi.socket"

По умолчанию внутри /var/run/ нет директории lighttpd, поэтому её нужно создать и дать права на запись для www:www. Иначе пхп-сокеты не смогут запустится.

"bin-path" ⇒ "/usr/local/bin/php-cgi-cgi"

Тут, вероятно преднамеренно, допущена ошибка. Нужно php-cgi-cgi исправить на php-cgi, да и вообще не мешает проверить куда вы поставили этот самый php-cgi (да и поставили-ли вообще …)

Запускаем.

/usr/local/etc/rc.d/lighttpd start

Что должно быть?

# ps aux | grep www

www 758 0.0 0.3 5100 2720 ?? S 1:03PM 0:00.02 /usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd.conf

www 775 0.0 0.6 15008 6544 ?? Is 1:03PM 0:00.02 /usr/local/bin/php-cgi

www 779 0.0 0.7 15008 6648 ?? Is 1:03PM 0:00.02 /usr/local/bin/php-cgi

www 782 0.0 0.6 15008 6588 ?? Is 1:03PM 0:00.02 /usr/local/bin/php-cgi

www 821 0.0 0.7 15008 6724 ?? Is 1:03PM 0:00.02 /usr/local/bin/php-cgi

www 822 0.0 0.7 15008 6996 ?? I 1:03PM 0:00.00 /usr/local/bin/php-cgi

www 823 0.0 0.7 15008 6648 ?? I 1:03PM 0:00.00 /usr/local/bin/php-cgi

www 824 0.0 0.6 15008 6604 ?? I 1:03PM 0:00.00 /usr/local/bin/php-cgi

www 825 0.0 0.7 15008 6708 ?? I 1:03PM 0:00.00 /usr/local/bin/php-cgi

Что делать если этого не произошло?

cat /var/log/lighttpd.error.log

Если там пусто (такое может бытьне всегда лайти когда не может стартануть пишет проблему в лог), запускаем лайти руками

/usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd.conf

В этом случае он выругается в консоль чего ему не хватает. Если он не выругался - скорее всего все нормально, делаем снова ps aux.

Ну и последний штрих, добавляем в /etc/rc.conf

lighttpd_enable="YES"


Смотрите также: