Настройка VPS сервера для дальнейшей работы с LiveStreet

Здравствуйте! Необходимо было перейти на выделенный сервер, где будет работать сайт на livestreet, ибо обычный хостинг не справлялся с нагрузкой. Настраивал сервер впервые, много нового узнал :)

Вводная информация:

Первое с чем мне пришлось столкнуться, так это с выбором размещения сервера. Были варианты зарубежные и отечественные, но т.к мне необходима поддержка на родном языке — решено было выбирать только из русских. Больше всего мне советовали Оверсан. У них кстати отличная поддержка, ребята быстро реагируют.

Второе — изменил dns записи у своего регистратора на Оверсановские.

Третье — создание сервера, выбор ос (решил выбрать ubuntu 10.04) и т.д.

Настройка веб сервера Ubuntu

Имеется сервер с установленной операционной системой Ubuntu 10.04. Начинаем настраивать:
Для начала заходим по ssh на свой сервер, через консоль:

sudo ssh root@ваш_ip_сервера

Далее разрешаем сертификат и вводим пароль.
Если появляется ошибка

Скорее всего проблема в том что ключи ssh поменялись и поэтому в целях безопасности система не дает доступа.

Решается следующим образом:
Заходим в домашнюю директорию пользователя от которого сидите и удаляете файл .ssh/known_hosts

Сделать это к примеру можно так:
cd ~
rm .ssh/known_hosts


Перед нами голая система, из которой следует создать полноценный веб сервер.
Поехали!
обновим информацию о пакетах, и обновим систему
aptitude update
aptitude upgrade


Установка apache2 + phph5 + mysql + phpmyadmin одной строкой

aptitude install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin


Настраиваем виртуальные хосты для работы нескольких сайтов на одном ip адресе:

По умолчанию, Apache прослушивает все IP-адреса, доступные виртуальному серверу. Мы должны настроить его на прослушивание только адреса, который мы укажем. Даже если у вас есть только один IP адрес, не стоит пренебрегать этой процедурой.

Начните с изменения параметра NameVirtualHost entry в файле /etc/apache2/ports.conf:
Редактируем файл /etc/apache2/ports.conf
NameVirtualHost	188.127.241.217:80


Замените 188.127.241.217 на IP адрес вашего виртуального сервера.
Теперь, изменим VirtualHost сайта по умолчанию в файле /etc/apache2/sites-available/default, запись должна выглядеть так:
Редактируем файл /etc/apache2/sites-available/default

<VirtualHost	188.127.241.217:80>


Настройка виртуальных хостов

Для каждого домена необходимо создать конфигурационный файл в каталоге /etc/apache2/sites-available/. Название каждого конфигурационного файла для домена должно быть аналогичным самому домену. для примера, создадим конфигурационные файлы для доменов «site1.ru» и «site2.ru»
Редактируем файл /etc/apache2/sites-available/site1.ru
<VirtualHost 188.127.241.217:80> 
     ServerAdmin mail@site1.ru
     ServerName site1.ru
     ServerAlias www.site1.ru
     DocumentRoot /var/www/site1.ru/
</VirtualHost>


Редактируем файл /etc/apache2/sites-available/site2.ru
<VirtualHost 188.127.241.217:80> 
     ServerAdmin mail@site2.ru
     ServerName site2.ru
     ServerAlias www.site2.ru
     DocumentRoot /var/www/site2.ru/
</VirtualHost>

Перед тем, как мы станем использовать созданную конфигурацию, необходимо создать указанные в ней каталоги. Для этого выполним следующие команды:
mkdir -p /var/www/site1.ru/
mkdir -p /var/www/site2.ru/

После того как вы настроили виртуальные хосты, выполните следующие команды:
a2ensite site1.ru
a2ensite site2.ru


Перезапускаем сервисы:
service apache2 restart


Если необходима будет работа с phpmyadmin, то в /etc/apache2/apache2.conf нужно добавить строчку:
Include /etc/phpmyadmin/apache.conf


Настройка для работы LiveStreet

Настройка .htaccess
1. Через SSH заходим в папку /etc/apache2/mods-enabled
cd /etc/apache2/mods-enabled

2. Cоздаём символьную ссылку:
ln -s ../mods-available/rewrite.load ./rewrite.load

3. Переходим в /var/www/site.ru/
4. Создаем файл ./htaccess со следующим содержанием:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|ico|swf)$
RewriteCond %{REQUEST_FILENAME} !{SERVER_NAME}\/uploads.$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php


5. Переходим в /etc/apache2/sites-available и редактируем default:
поменять в <Directory /> и <Directory /var/www/> AllowOverride All вместо None.
Права на запись:
Загружаем файлы livestreet в нужную папку вашего сайта и далее зайти по sftp (например через FileZilla) или через ssh, кому как удобнее. Я заходил через FileZilla и выдал папкам права 777.

Обязательно: нужно выдать права 777 не только самим папкам, но и ко всем подпапкам.
И так выполняем для следующих папок:
/tmp,
/logs,
/uploads,
/templates/compiled,
/templates/cache,
/plugins,
Нужно переименовать файл /config/config.local.php.dist на config.local.php и дать этому файлу права 777.

Далее производим установку по адресу site.ru/install.

Все работает!
Теперь хочется узнать у знатоков: что можно сделать с сервером еще, что бы ускорить работу сайта и что бы сервер не нагружался без надобности.

37 комментариев

avatar
супер! но вот с блогом вы немного ошиблись ;)
avatar
куда лучше опубликовать?
avatar
Скорее наверно — livestreet.ru/blog/dev_documentation/
avatar
На документацию не тянет) К тому же, мало относится к LS. Скорее в livestreet.ru/blog/tips_and_tricks/
avatar
в livestreet.ru/blog/tips_and_tricks/ вступил, но в списке публикаций он не появился :(
avatar
дык перенести же еще нужно
avatar
из выпадающего списка «В какой блог публикуем?» нет Tips & tricks, так что перенести не могу.

ps/ на Tips & tricks подписан
avatar
наверное следует исправить
RewriteRule ^(.*)$ ./index.php
на
RewriteRule ^(.*)$ ./site1.ru/index.php
?? или я чего то не понимаю???
avatar
версию LS укажите…
avatar
Вы конечно извините, но чем статейка отличается от тех 130 тысяч, что выдал мне гугл по запросу apache php mysql linux настройка?
avatar
Я не претендую на звание самой лучшей статьи по настройке сервера.

В поиске гугл мне тоже выдал больше кол-во статьей на эту тему и мне пришлось очень много из них прочитать, что бы настроить все толком. Все самое полезное и нужное для меня — собрал в одной статье.

Следовательно, отличие этой статьи от 130 тысяч других заключается в том, что она ОДНА! Да и ока скорее для меня, ибо наверняка настраивать сервер не один раз буду, в будущем понадобится… что бы не искать по новой всю информацию, если забуду — просто зайду на эту статью и прочитаю и сделаю все так как тут написано и сервер у меня будет работать
avatar
Сначала тоже сидел на убунте, давно перешел на Debian, мне она больше нравится из религиозных соображений.
2. Cоздаём символьную ссылку:
проще a2enmod rewrite
4. Создаем файл ./htaccess со следующим содержанием:
Сто раз поднимал LAMP на убунте для LS но еще ни разу не трогал стандартный .htaccess
что можно сделать с сервером еще, что бы ускорить работу сайта
apt-get remove --purge apache2
apt-get install nginx php-xcache
avatar
достаточно просто установить?
или может еще настройку следует провести?
avatar
все требует настройки
avatar
спасибо, почитаю про пакеты, зачем они вообще нужны и про их настройку и все сделаю :)
avatar
Отличная статья. Все детально описано, будет полезно.
avatar
Но многое вы так и не установили. memcache, sphinx, eaccelerator. Так же я бы рекомендовал установить nginx как фронт-энд.
Так что ждем второй части опсиания.
avatar
в различных статьях я встречал процесс установки memcache, sphinx, eaccelerator и nginx, но не понял для чего они.

Этот пост как бы «скелет» настройки, т.е как сделать так, что бы вообще веб сервер начал работать. Далее безусловно еще нужно настраивать и настраивать :)
avatar
nginx — это тоже веб-сервер, отдельная реализация, разработанная в России кстати. nginx можно испоользовать как в одинчку, т.е полностью отказавшить от apache (в данном случае половина ваших шагов не нужна), либо настраиваю их в связке: nginx отдает статическую информацию (css, js, images), а apache динамическую (php). Какой лучше дело спорное. Могжно на примера ливстрита сделать сравнение.
avatar
memcache — это кеш, он кеширует даныне в оперативной памяти, что гораздо быстрее работает нежели кешировать на диске.
sphinx — это поисковый сервер, устанавливается для работы поиска на сайте (без плагина что есть в каталоге)
eaccelerator — это акселератор, который используется для кэширования бинарного представления кода
avatar
спасибо, теперь все ясно)) memcache и eaccelerator обязательно поставлю)) А вот на счет nginx еще подумаю… Так ли он нужен…
avatar
по своему опыту скажу, что как миннимум для раздачи статики он гарантированно нужен.
avatar
он требует больших настроек? Можешь подсказать, что самое главное нужно настроить, после его установки
avatar
он требует примено столько же настроек.
я в администрирование на таком уровне что може быть на уровне тегов знаю много, но когда суть до дела без мана и строчки не напишу.
так что что бы мне овтетить мне самоу нужно лопатить маны =)
avatar
настройте так же такую фишку: что бы файлы к примеру js, css (статические, текстовые). раздавались в заархивированном виде (gzip). Выгода в том что передается меньше трафика. НО! Настроить нужно так что бы веб-сервер смотрел есть ли рядом с файлом который нужно отдать файл filename + ".gz", и есть ли он есть отдавал его, если нет, сжимал даныне в реал тайме.
avatar
С правами 777 это слишком круто, ололо! — лучше дать файлам группу веб-сервера (chown user_name:www-data -R *) или кто там у вас веб-сервер — и права 775 если уж на то пошло, а то и nobody вам все файлы перепишет
avatar
Всем добрый день!
Не стану создавать новый топик, наришу сюда.

В общем, решил я переехать с шаред-хостинка на VPS, арендовал самый дешевый VPS на fastvps + ISP Panel.

Дампнул базу, скопировал контент, привязал тестовый домен.

Импортировал базу, при помощу phpmyadmin, создал там нового пользователя, дал ему права на эту базу, прописал этого юзера в config.local.php.

В общем, сайт заработал. Но есть одна проблема, очень, очень медленно… Можете сами посмотреть.



Плюс ко всему, перестали отображаться превьюшки к постам.

Подскажите, пожалуйста, как заставить сайт работать быстро и как вернуть превьюшки?

Всем заранее спасибо.

PS: для сравнения, шаред-хостинг.

avatar
UPD: Набрал небольшую статистику.

1. Поднял лимит памяти для php. до 320 мб. Выполнение пхп стало заметно быстрее.
2. Однако, очень тормозит кэш.



Как с этим бороться?
avatar
Картинки откуда грузятся?
avatar
Оттудаже. Т.е. лежат на том же сервере. В постах все картинки есть.
avatar
1. Лимит на php тут не при делах, покажите крайний столбец использования памяти.
2. Таки проблема с кешированием. К сожалению, подсказать куда копать не могу, совсем недавно начал юзать ls. Поделюсь своими цифрами (впска самая простая у linode)
Сразу после сброса кеша:

Второе обновление страницы после сброса:
avatar
У меня версия 0.5.1 и последнего столбца нет. Или я не знаю, как его включить.

Вообще, решил попробовать все настроить по этому мануалу. Посмотрим, что получится.
avatar
на 0.5.1 столбца memory нет.
У меня xCache установлен.
avatar
На всякий случай уточню, кеширование стандартное в ls, никаких мемкешей. Но установлен еще и apc. Как вариант, у вас проблемы с дисковой системой.
И какие вообще хар-ки впски?
avatar
VPS от fastvps.ru.

Но сейчас еще взял попробовать VPS от digitalocean.com, тоже самую простую. Вот ее и настраиваю. Тем более, что есть купон на 10 баксов, т.е. 2 мес. бесплатно. Поиграюсь.
avatar
Поделитесь, пожалуйста, потом впечатлениями. Сам на него заглядываюсь, а то linode выходит слегка дороговато, но не отпускает своей стабильностью и отличным саппортом :)
avatar
нормально работает
самый простой тариф php time load modules: 0.022
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.