Был куплен VDS, уже по привычке установил апач с пхп. Перенёс сайтик и тут же столкнулся с проблемой, что путти ругнулся, что «Сервер неожиданно закрыл соединение». При попытке рестартнуть сессию столкнулся с ещё более волшебной ошибкой «Connection refused». Уже даже подумал грешным делом, что какой-то кулхацкер в течение 5 секунд поломал новенький вдс и пароли поменял.
Я аж с перепугу в поддержку написал, оттуда ласково ответили, что у вас кончилась ОЗУ и они перегрузили сервер… И тут я полюбил логи… Действительно память была в 100%. «top»нул в пути и чуть не расплакался…
Пошерстил интернет, почитал про Апаче и версию его Prefork (Есть 2 версии Apache, working и prefork. Отличаются они тем, что воркин запускает новую службу для каждого соединения, а префорк всё одной службой обслуживает). Но и это не помогло. Даже префоркнутый Апач просто пожирал память и сайт начинал дико тупить…
Я уж даже стал поглядывать более продвинутые тарифные планы VDS… и тут осенило, а есть же ещё другие серверы http и не столь RAMолюбивые… Нашёл 2 альтернативы — ngnix и lighttp. Ну ngnix я просто не перевариваю (по ОЧЕНЬ многим причинам), решился на лайт.
В интернете чуть ли не первой ссылкой нашёл, как его поставить и подключить php, Чтоб не лазить, вот что надо написать в терминал:
apt-get install mysql-server mysql-client #Если не установлен ещё мускул, мне не надо было
apt-get install lighttpd
apt-get install php5-cgi
После этого надо ещё отредактировать файлик /etc/php5/cgi/php.ini. Там есть какой-то фикс для CGI, в общем надо найти и поправить
cgi.fix_pathinfo = 1
Теперь можно включить приблуды к лайту, чтобы он смог использовать php:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php
Ещё надо создать симлинк в конфиге, чтобы лайт пользовал конфигурацию:
ls -l /etc/lighttpd/conf-enabled
ВСЁ! осталось только перегрузить лайт:
/etc/init.d/lighttpd force-reload
Теперь про виртуальные хосты. Лайт тоже прекрасно их умеет. И собственно рерайты. У меня сайт был вордпрессовский с SEF-ссылками, поэтому могло стать проблемой, потому что больше файлы .htaccess не работали. Ну, в любом случае, надо будет залезть в конфиг лайта и кое-чего поправить. Файл конфигурации живёт в /etc/lighttpd/lighttpd.conf
Посмотрите модули в «server.modules». у меня изначально не было там модуля для контроля доступа, а мне он был нужен, через запятую добавил «mod_accesslog».
Теперь виртуальные хосты. Ниже всего добавляем:
$HTTP["host"] =~ "(^|\.)site\.ru$" {
server.document-root = "/home/www/site.ru" #это домашняя директория для домена
server.errorlog = "/home/www/logs/siteru-error.log" #это лог для ошибок
accesslog.filename = "/home/www/logs/siteru-access.log" #это лог доступа
server.error-handler-404 = "/index.php" №404 ошибка
url.rewrite-final = ( #это рерайты для вордпресс. Если вам не надо, можете удалить это
"^/(wp-admin|wp-includes|wp-content)/(.*)" => "$0", #где рерайты не нужны
"^/(.*.php)" => "$0", #для php файлов в корне рерайты тоже не нужны
"^/(.*)$" => "/index.php/$1" #всё остальное на индекс вордпресс
)
}
Сохраняем файлик и перегружаем лайт:
/etc/init.d/lighttpd reload