VPS/VDS нехватка памяти RAM

Category: Прочее
Posted on: 13.05.2013 в 16:33 - Комментариев нет - Visited 1733 times

Был куплен 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
😃+

Leave a comment

Включите изображения, чтобы увидеть вопрос *