lighttpd + fcgid | Lighttpd
Поскольку апач на одном из моих серверов начал потихоньку сдавать – начинаем искать ему альтернативы.
Начнём с lighttpd – быстрый фронтенд для fcgid который мы настроили ранее. Посмотрим.
Ставим из портов. Обновляемся.
#portsnap fetch
#portsnap update
Ставим:
#cd /usr/ports/www/lighttpd
#make install
В опциях выбираем поддержку mysql и OpenSSL и spawn-fcgi (для чего последний – смотрите в следющей статье).
Далее правим конфиг lighttpd - /usr/local/etc/lighttpd/lighttpd.conf
var.log_root = "/var/log/lighttpd"
var.server_root = "/usr/local/www/data"
var.state_dir = "/var/run"
var.home_dir = "/var/spool/lighttpd"
var.conf_dir = "/usr/local/etc/lighttpd"
Директории /var/log/lighttpd /var/spool/lighttpd
создаем руками и выставляем права пользователя под которым работает lighttpd (у меня это www:www).
Файлы логов также создаем руками и выставляем права.
Путь к логу ошибок – в основном конфиге:
server.errorlog = log_root + "/error.log"
Путь к конфигу в котором настраивается лог доступа:
include "conf.d/access_log.conf"
Правим путь к папке с файлами веб (если переходим с апача – указываем папку которая осталась в наследство от апача):
server.document-root = "/usr/local/www/apache22/data/"
Комментируем поддержку IPv6.
Комментируем строку сокета (иначе получим ошибку о невозможности забиндить 80 порт):
# IPv4 listening socket
#$SERVER["socket"] == "0.0.0.0:80" { }
В основном конфиге всё.
Настройки подключаемых модулей лежат в конфиге /usr/local/etc/lighttpd/modules.conf
. Раскомментируем строку поддержки fastcgi:
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
Здесь всё. Далее идём править конфиг fastcgi.conf. Убираем комментарий с секции:
fastcgi.server = ( ".php" =>
( "php-local" =>
(
"socket" => socket_dir + "/php-fastcgi-1.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"max-procs" => 1,
"broken-scriptfilename" => "enable",
)
),
( "php-tcp" =>
(
"host" => "127.0.0.1",
"port" => 9999,
"check-local" => "disable",
"broken-scriptfilename" => "enable",
)
),
( "php-num-procs" =>
(
"socket" => socket_dir + "/php-fastcgi-2.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000",
),
"max-procs" => 5,
"broken-scriptfilename" => "enable",
)
),
)
Обращаем внимание на путь к fcgid – по дефолту он выглядит так:
"bin-path" => server_root + "/cgi-bin/php5",
Меняем путь на тот что используется у вас (обращаем внимание – встречается 2 раза). У меня это /usr/local/bin/php-cgi
.
Далее пишем в /etc/rc.conf
lighttpd_enable="YES"
Кладем в корень вебдиректории файл index.php с содержимым:
<?php phpinfo(); ?>
и можем запускаться. Далее как обычно – смотрим есть ли процесс:
#ps -awx | grep lighttpd
При просмотре index.php в браузере можно увидеть вместо апача упоминание о lighttpd.