Веб-сервер на два фронта

Опубликовано

Мне все-таки удалось собрать php-fpm на OpenBSD 4.3, но об этом чуть ниже, сейчас к вопросу поставленному в заголовке.Имея дома компьютер раздающий интернет иногда возникает необходимость иметь к нему доступ извне, и конечно же не только по SSH. У меня такая необходимость обусловлена необходимостью лазить в web-интерфейс "биллинга" и иногда в phpMyAdmin,

находясь при этом вне дома.Имеющийся в комплекте OpenBSD apache ветки 1.3, к превеликому сожалению, слегка подглюкивает, теряет модули при перезапуске, как следствие падает при ротации логов и т.п., может быть, конечно, что я просто не умею его готовить, но от его использования я решил отказаться. Естественно выбор пал на уже опробованный мной в условиях приближенных к боевым Lighttpd, имеющийся к тому же среди доступных пакетов.Допустим, что из интернета сервер откликается на имя homenet.domain.com, а из локальной сети допустим на gate.homenet.Для работы phpMyadmin и биллинга я предлагаю создать поддомены myadmin.homenet, billing.homenet - внутри и myadmin.homenet.domain.com, billing.homenet.domain.com - снаружи. В этом случае нам потребуется в конфигурации lighttpd описать только два виртуальных хоста, примерно вот так:

###### my vhosts$HTTP["host"] =~ "myadmin\.homenet(.*)$" {server.document-root = "/var/www/phpMyAdmin"fastcgi.server = ( ".php" =>(( "socket" => "/var/php-fpm/php-fpm.sock","bin-copy-environment" => ("HOSTNAME", "PATH", "TMP", "TMPDIR", "TEMP", "OSTYPE", "MACHTYPE", "MALLOC_CHECK_" ),"broken-scriptfilename" => "enable")))}

Аналогично для биллинга.Естественно что для работы нужен php. Мне как я уже говорил удалось заставить работать php-fpm. Из портов не собирается, сильно там php пропатченый, пришлось собирать руками, и ставить в отдельную директорию. Однако и тут тоже не все так просто и методом проб и ошибок я выяснил что iconv и gettext надо собирать static, иначе не собирается.В общем строка для конфигурирования выглядит так (я ставлю в /usr/local/php)

./configure --prefix=/usr/local/php --disable-cli --with-regex=php --with-layout=GNU \--disable-all --enable-libxml --with-libxml-dir=/usr/local --enable-reflection \--disable-ipv6 --with-config-file-scan-dir=/usr/local/etc/php --enable-fastcgi \--enable-fpm --with-fpm-conf=/usr/local/php/php-fpm.conf \--with-fpm-log=/var/log/php-fpm.log --with-fpm-pid=/var/run/php-fpm.pid \--with-iconv=/usr/local --with-gettext=/usr/local --with-pcre-regex

Все собралось и вполне себе работает. За примерами конфигурации отправляю ищущих к моей

на эту тему.Естественно стоит так же позаботиться и о контроле доступа снаружи к 80 порту, но это уже на личное усмотрение каждого.