Правильная настройка VDS сервера. Добавление новой базы данных

Когда ваш сайт расширяется вы задумываетесь об аренде уже чего-то более серьёзного, чем просто хостинг. Выделенные сервера в наше время удовольствие дорогое и им на замену хорошо подходят VDS или VPS . Часто, если пользователь никогда не администрировал сервер такого типа, то он просто загружает на сервак свой сайт и оставляет всё как есть, думая что машину настраивать совсем не нужно, то есть, как на обычном хостинге. Это в корне не так. Если оставить нулевые настройки, а при аренде вам только установят ОС и панель управления, то ваш VDS/VPS будет работать примерно только на 1/4 своей мощности. Неопытные пользователи обычно удивляются, когда их сайт на мощной ВДСке падает даже при малейших нагрузках и бегут к администрации с просьбой объяснить почему такое происходит, на что получают шаблонный ответ, мол оптимизируйте работу скриптов. Мы сделаем всё, чтобы выжать все соки из вашего виртуального сервера .

Что имеем в качестве примера:
» VDS
» ОС - Debian
» Панель управления - ISPmanager
» ОЗУ - 4096 Мб
» Процессор - AMD 2799.999 Mhz 4 ядра
» Диск 150 Гб
Такое чудо можно арендовать у любого хостера за 1000-1500 рублей в месяц.

Настройка системы.

Все действия выполняются от root пользователя.

1. my.cnf - оптимизация mysql. Открываем файловый менеджер в панели управления, открываем etc/mysql/my.cnf и заменяем строки, которые есть у вас из списка ниже на соответствующие строчки из этого же списка. Чего нет - добавляем.


key_buffer = 16M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
query_cache_size = 128M
query_cache_limit = 16M
query_cache_type = 1
max_connections = 300
thread_cache_size = 100
myisam-recover = BACKUP
expire_logs_days = 10
max_binlog_size = 100M
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 16M
innodb_flush_log_at_trx_commit = 2
quick
quote-names
max_allowed_packet = 64M

Рестартируем мускуль в службах.

Теперь наш сервер оптимизирован для базы данных. Страницы должны загружаться гораздо быстрее и бд сможет выдерживать большие нагрузки.

2. AllowOverride all - Включаем перезапись.htaccess
Заходим в /etc/apache2/sites-available/default меняем все строки с AllowOverride none на AllowOverride all
Это позволит.htaccess перезаписывать правила. По умолчанию стоит none и в большинстве случаев ваш сайт будет выдавать Internal Server Error, то есть 500-ю ошибку. Пример того, что должно получиться:

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

3. php.ini - конфигуратор php. В нём есть много полезных параметров, которые можно изменить под себя. Находим и изменяем строки ниже под свои предпочтения. Чтобы выяснить, где лежит ваш php.ini создайте на своём сайте файл info.php с текстом и откройте его в браузере. Например, http://site.ru/info.php. В строке Loaded Configuration File будет показан путь.
// Максимальный размер загружаемых данных на ваш сервер методом POST
post_max_size = 64M
// Максимальный размер загружаемых данных на ваш сервер
upload_max_filesize = 16M
// Вывод ошибок. Если вы отлаживаете скрипты, то ставьте On
display_errors = Off
// То же что и выше, только для процесса запуска
display_startup_errors = On | Off
// Лог ошибок. если логи занимают много места, то ставьте Офф
log_errors = On
// Повтор показанных ошибок
ignore_repeated_errors = On
// Максимальный объём памяти для выполнения скрипта
memory_limit = 24M

После сохранения перезагружаем сервер.

Установка PHP модулей.

Для установки модулей нужно выполнять команды. Команды выполняются в SSH клиенте. Всё просто, если, к примеру, панель не будет открываться, или случится какой-нибудь сбой, то через ССАШ команды можно перезагрузить сервер, что-то подправить и так далее. Команды выполняются через SSH клиент. Самый популярный - Putty . Не требует установки. Открываете, пишите IP сервера (он дан вам с паролями) открывается консоль - чёрное окно. Вводите имя пользователя (root) и свой пароль. Обратите внимание, что при вводе пароля символы в целях безопасности не печатаются. И нажимаете Enter. Теперь вы можете выполнять команды. Чтобы их не писать вручную, вставка осуществляется правой кнопкой мыши.

1. eAccelerator - ставим первым делом, с его помощью вес веб-страниц становится в несколько раз меньше. Выполняем поочерёдно следующие команды.

aptitude install php5-dev make re2c
wget https://github.com/eaccelerator/eaccelerator/archive/master.zip
unzip master.zip
cd eaccelerator-master
phpize
./configure
make install
mkdir /var/cache/eaccelerator;chmod 0777 /var/cache/eaccelerator
service apache2 restart

Заходим в Расширения PHP и ищем eaccelerator. Если есть, всё правильно сделано.

2. Активация модулей - некоторые модули уже идут в комплекте, но не активированы. Выполняем команды по очереди.

a2enmod rewrite
apt-get install php5-gd

Итог.

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


В этой статье я расскажу как настроить свой VDS (виртуальный выделенный сервер) или просто выделенный сервер для запуска на нем своего сайта или множества сайтов. Сразу же напишу оговорки, которые стоит знать. Данный метод настройки подойдет для операционных систем Debian 7 minimal или Ubuntu 12 TLS minimal . В случае если у Вас будут более новые версии ОС, то придется исправлять имена некоторых пакетов на новые. Следующим важным моментом будет отсутствие панели управления хостингом, для новичков конечно же это может быть шоком, но фактически она и не понадобится, так как обычно на сервере после запуска сайта его можно и не трогать в течении длительного времени.
Сразу же приведу пример расчета ВДС к посещаемости сайта. У меня есть сайт с посещаемостью 18 тысяч человек в день, он отлично работает на VDS с 2 гигами оператиной памяти и 2 выделенными ядрами процессора по цене всего в 6 баксов. Вариант данного сервера можно посмотреть . Там же я брал сервер для данного мануала.

Итак. Будем считать что я настраиваю сервер для сайта с доменом сайт и форумом на его поддомене forum.сайт . Т.е. когда Вы будете настраивать под себя свой VDS по данному мануалу, то просто замените сайт на свой домен.

Допустим у Вас уже есть сервер и теперь мы подключаемся к нему через протокол SSH с помощью программы PUTTY . После запуска переходим в меню Translation и в списке выбираем кодировку UTF-8 .


Далее слева сверху нажимает на Session . Справа указываем IP адрес сервера , который указан у Вас в письме. Порт 22 оставляем по умолчанию. Можно сохранить настройки, указав имя данному соединению в окне ниже и нажать на кнопку Save . Чтобы подключиться жмем Open .


Далее перед нами появляется консоль в которой нужно ввести имя (обычно это root) и пароль. Обратите внимание что при вводе пароля ничего показываться не будет. Просто вводим пароль и нажимаем энтер.
Открывается консоль работы с сервером. Она выглядит как на картинке ниже. Если у Вас снова просят ввести пароль, но Вы не верно вводите либо имя пользователя, либо - пароль.

Далее все можно делать строго по написанному ниже и у Вас в конце должен получиться вполне рабочий сервер для своего сайта (или сайтов).
Далее выполняем команды из данного файла до самого конца: (cкачиваний: 1607)

Будет видео в котором я покажу пример использования данного файла в деле.
После этого Ваш веб сервер в целом готов к работе, можно конечно поправить настройки базы данных, но в целом все должно работать и так.
Для защиты протокола SSH, можно изменить порт с 22 на любой свободный или поставить пакет fail2ban , он будет защищать порт от желающих получить пароль перебором:
apt-get install fail2ban
В целом настройки fail2ban не требует, базовых параметров достаточно, но желающие могут покопаться в настройках и выставить нужное время бана, количество попыток подбора пароля до бана и все остальное.
Если по статье возникают вопросы - пишите их в комментариях к данной статье.

Данное руководство описывает полный процесс настройки VPS под ваши сайты, на вашем виртуальном сервере под Linux, используя Apache, PHP 7, MySQL, phpmyadmin, vsftpd как FTP, и другие мелкие утилиты. Все что я нашел в интернете или не полное, или местами не подходило к современным реалиям. Я переносил с обычного виртуального хостинга свой сайт, так как уперся в ограничения большинства хостеров.

Если вы планируете продавать хостинг или устанавливать панель управления (ISP Manager, cPanel , Plesk и т.п.), данный метод настройки не подойдет. Настройки для такого развертывания иные. PHP7 имеет ряд серьезных преимуществ в быстродействии и оптимизации по сравнению с PHP 5. Мои проекты на WordPress, к примеру, заметно быстрее работают. Важно знать: если у вас не сильно известная CMS с последними обновлениями, а какой-то самописный проект, не оптимизированный под PHP7, то возможны нестыковки.

Я использую в данном руководстве Ubuntu Server 14.04.4 LTS, также все здесь описанное подойдет для VPS\VDS на других Debian — подобных дистрибутивов. Подразумевается, что вы имеете базовые знания Linux и умеете работать с терминальной консолью. Я частично поясню азы, но все же.

Настраиваем

Итак, у нас есть свежеустановленная на VPS система и доступ по SSH. Логинимся на сервер под рутом.

1. Создадим себе пользователя. Работать под рутом без надобности — признак дурачины.

Adduser user

Где user — меняем на ваш будущий логин. Отвечаем на вопросы системы, пароль придумываем сложный, ваш логин будет основным для удаленного управления системой, рут мы в дальнейшем отключим от удаленного терминала из соображений безопасности.

2. Добавляем нашего созданного пользователя в группу sudo, дабы выполнять команды из-под рута:

Usermod -a -G sudo user

Плюс, добавим самого себя в группу администраторов:

Sudo usermod -aG adm YourUserName

3. Выходим из системы (logout) и логинимся под своим новым созданным пользователем на SSH. С этого момента, если нам нужно выполнить команду от имени рута, мы используем операнд sudo перед остальными операндами команды (примеры ниже).

4. Стоит вам только опубликовать ваш сайт-адрес сервера VPS, как всяческие хакинговые боты начнут стучаться к вам на терминальный порт 22. Поэтому, обезопасим терминал VPS, сменив порт с 22 на чтото другое. Как новый порт, вводим любое число от 1 до 65535. Нельзя использовать для этого порты 80, 443, 3306, 22, 21 и 8080. Они заняты под другие сервисы нашего VPS.

Sudo nano /etc/ssh/sshd_config

Nano — консольный «блокнот». Наверняка вы уже с ним знакомы, но я напомню базовое управление: Ctrl+X — выход, Ctrl+O — сохранение, Ctrl+W — поиск, стрелки — перемещение курсора.

Ищем в открывшемся файле строку «Port 22», обычно она прямо сверху. Изменяем 22 на выбранный вами порт. Далее проматываем кнопкой PgDn до самого низа файла и дописываем каждую команду с новой строки:

AddressFamily inet PermitRootLogin no AllowUsers user

Первая команда ограничивает подключения только стандартом IPv4, отключая не нужный IPv6. Вторая запрещает логиниться в терминал под рутом. Третья запрещает вообще кому либо логиниться, кроме вас — подставляйте свой логин вместо user.

Сохраняем и закрываем, как я показывал выше. Впредь все редактирования файлов будут проходить по такому сценарию. Перезапустим удаленный терминал, чтобы настройки применились:

Sudo service ssh restart

5. Разлогинтесь из терминала (logout), и подключитесь к серверу заново, используя новый порт.

6. Обновим источники приложений и сами приложения:

Sudo apt-get update && sudo apt-get upgrade

Соглашаемся на установку обновлений нажав Y и Enter.

7. Если у вас не самой последней версии система, имеет смысл обновить дистрибутив до последнего подрелиза (необязательный шаг):

Sudo apt-get dist-upgrade

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

Sudo apt-get install prelink sudo apt-get install preload

Sudo nano /etc/default/prelink

Откроется знакомый Nano, и там измените строку с PRELINKING=unknown на PRELINKING=yes. Не забываем сохранять перед закрытием, вы же запомнили уже, ага? Следующий шаг — добавляем в планировщик cron ежедневный запуск:

Sudo /etc/cron.daily/prelink

9. C системными предустановками пока закончим, ставим апач:

Sudo apt-get install apache2

Также, включим mod_rewrite. Почему-то по умолчанию в большинстве систем он отключен. Отвечает за переписывание билибердовых ссылок под красивые короткие. Критично для работы многих сайтов.

Sudo apt-get install mysql-server

Установка может спросить адрес вашего сервера, указываем localhost, если вы пока не назначили внешний домен. Также задаем главный пароль базы данных, сложный, буквы-цифры-разный регистр. Если вы еще не догадались, напоминаю — все логины-пароли нужно записать и хранить в безопасном месте.

MySQL сервер последних версий корректно настроен для работы в нашем окружении, принимает запросы только от localhost. Поэтому, не лезем в конфиг.

11. Ставим php7. На момент написания статьи, файловые репозитории Ubuntu не содержат PHP7, поэтому нам нужно будет добавить неофициальный репозиторий и из него поставить php7:

sudo add - apt - repository ppa : ondrej / php

По окончанию добавления, спросит у вас окончательного согласия, подтверждаем на Y и Enter. Далее обновим список приложений и установим нужное:

Sudo apt-get update sudo apt - get install php7 . 0 - cli php7 . 0 - common libapache2 - mod - php7 . 0 php7 . 0 php7 . 0 - mysql php7 . 0 - fpm php7.0-mbstring php7.0-gd php7.0-curl

Набор модулей тут мной определен эксперементально. Во всех источниках указаны разные, где-то нет mbstring, но он нужен для phpmyadmin, админки для MySQL. Где-то отсутствует curl и gd, но они нужны для капчи и некоторых плагинов CMS. В любом случае, дополнительные модули можно всегда доставить после.

12. Поднастроим Apache. Перейдем (cd) в каталог с настройками апача:

Cd /etc/apache2

Отредактируем главный конфигурационный файл:

Sudo nano apache2.conf

Уже установленные переменные не трогаем, проматываемся в конец файла. Там добавляем каждую команду с новой строки:

ServerName localhost ServerSignature Off

Это задаст хост по умолчанию для самоопределения апача (localhost) и отключит отображение версии системы и сервера на страницах ошибок. Это небезопасно. Как всегда, сохраняем, закрываем.

13. Поднастроим PHP.

Cd /etc/php/7.0/apache2 sudo nano php.ini

Многие скрипты используют короткий тэг открытия, вместо полного, поэтому включим эту опцию, заменив Off на On (отсюда и далее указываю то, как должно быть, а не как было):

Short_open_tag = On

Раздвинем ограничения по памяти и загрузке файлов:

Memory_limit = 128M post_max_size = 64M

14. Установим phpmyadmin. Это графическая панель управления базами данных MySQL. Первый раз когда я его ставил из apt репозитория, он не взлетел. Оказалось, репозитории ubuntu не содержат последней версии phpmyadmin, которая понимает PHP7, так как и самого PHP7 в этих репозиториях тоже нет.

Лучше всего устанавливать в /usr/share:

Cd /usr/share

Качаем, на момент написания, последняя версия 4.6.0:

Sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.0/phpMyAdmin-4.6.0-all-languages.zip

Установим unzip, он понадобится:

Sudo apt-get install unzip

Разархивируем:

Sudo unzip phpMyAdmin-4.6.0-all-languages.zip

Переименуем папку:

Sudo mv phpMyAdmin-4.6.0-all-languages phpmyadmin

Прилепим права:

sudo chmod - R 0755 phpmyadmin

Отредактируем конфиг-файл апача, чтобы он знал, гдеи скать наш phpmyadmin:

Sudo nano / etc / apache2 / sites - available / 000 - default . conf

После «DocumentRoot /var/www/html» добавляем строки:

Alias / phpmyadmin "/usr/share/phpmyadmin/" < Directory "/usr/share/phpmyadmin/" > Order allow , deny Allow from all Require all granted

Все готово, перезапустим апач:

Sudo service apache2 restart

15. После всех манипуляций, у нас будет тестовая страница апача открываться в браузере по адресу вашего сервера, а phpmyadmin будет доступен по адресу http://вашсайт/phpmyadmin . Логин туда root, пароль — указанный при установке MySQL.

16. Создадим старницу phpinfo для проверки работы сервера:

Cd var/www/html sudo mkdir phpinfo cd phpinfo sudo nano index.php

Вставляем такой код в Nano и сохраняем:

Теперь по адресу http://вашсайт/phpinfo должна открываться сервисная страница с информацией о PHP и подключенных модулях, например:

Если все работает и отображается, скройте phpinfo, изменив название этой папки на какую-нибудь только вам известную билиберду:

Cd /var/www/html sudo mv phpinfo phpinfo312341

Прямой доступ по известному пути — дыра в безопасности VPS.

17. Поставим FTP. Используем vsftpd:

Sudo apt-get install vsftpd

Правим конфигурацию:

Sudo nano /etc/vsftpd.conf

Убедитесь, что параметры в этом файле соответствуют приведенным ниже. Если параметры закомментированы знаком #, раскомментируйте его, удалив #. Если параметра нет, добавьте вручную в конец файла:

Anonymous_enable=No local_enable=YES write_enable=YES

Перезапустим фтп:

Sudo service vsftpd restart

После этого, можно логиниться на сервер по FTP, используя логин и пароль от системы. C этим конфигом, у вас будет доступ ко ВСЕЙ операционной системе. Если вам нужно ограничить доступ к папкам, поищите в интернете руководства.

18. Резервное копирование. Альфа и Омега администрирования VPS. Бэкапы надо делать хотя бы раз в неделю. Следующий скрипт создает архив с бэкапом папок /var/www (где обычно лежат сайты), /etc, /var/log и /root. Также бэкапит все базы MySQL. Скрипт следует исполнять от имени рута из папки, в которой будут хранится бэкапы. Также, желательно внести файл скрипта в cron. Собственно, скрипт:

#!/bin/bash USER=root #юзер базы данных PASSWORD=password #пароль BACKUP=/media/Backup #куда сохранять бэкапы LOG=/var/log # директория для чистки старых логов OLD=30 # сколько дней хранить бэкапы (более старые будет удаляться) PREFIX=work # если несколько серверов - используйте разные префиксы, чтобы не путаться DATE=`date "+%Y-%m-%d"` echo "Backup database to $BACKUP" mkdir $BACKUP/$DATE.sql cd $BACKUP/$DATE.sql for i in `mysql -u $USER -p$PASSWORD -e"show databases;" | grep -v information_schema | grep -v Database`; do mysqldump -u $USER -p$PASSWORD $i > $DATE-$i.sql; done cd .. tar -cjf $BACKUP/$DATE-sql-$PREFIX.tar.bz2 ./$DATE.sql rm -rf ./$DATE.sql echo "Backup files to $BACKUP" tar -cjf $BACKUP/$DATE-files-$PREFIX.tar.bz2 \ /var/www/ \ /etc/ \ /var/log/ \ /root/ \ --exclude=$BACKUP echo "Deleting old backups and logs from $BACKUP & $LOG" find $LOG -type f \(-name "*.gz" -o -name "*.1*" \) -exec rm "{}" \; find $BACKUP -mtime +$OLD -exec rm "{}" \;

Обратите внимание, верхние несколько строчек скрипта нужно изменить в соответствии с вашей конфигурацией MySQL.

Допустим, у нас в корне будет папка /backup и в ней будет и скрипт, и сами резервные копии. Переходим в корень файловой системы:

Cd / sudo mkdir backup cd backup sudo nano start.sh

И вставляем туда скрипт выше. Сохраняем, назначаем его исполняемым:

Sudo chmod +x start.sh

Теперь, командой:

Sudo ./start.sh

Мы запустим процесс бэкапа. Для среднего сайта на средней мощности VPS это занимает 5-10 минут. После окончания процесса, в папке /backup будут несколько архивов с резервными копиями. Как я говорил выше, лучше всего этот скрипт запихнуть в cron. Погуглите, как это сделать.

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

Полезные утилиты

Стоит упомянуть некоторые полезные утилиты, которыми я пользуюсь в администрировании, и которые могут пригодиться вам.

Это командная утилита для администрирования WordPress из терминальной консоли Linux. Умеет очень много, бэкапить, копировать данные в базе данных, отключать и включать плагины и так далее. Очень полезно, в случаях если у вас конфликт плагинов, или вы где-то накосорезили и админка сайта у вас отвалилась. Подробнее .

Multitail

Программа для чтения логов с продвинутым выводом. Выводит содержимое лог-файлов и позволяет наблюдать за их изменениями в реальном времени с подсветкой синтаксиса. Смотрим .

Полный аналог «Диспетчера задач» из Windows для терминальной консоли. Очень полезная вещь для мониторинга процессов, памяти, загрузки и управления процессами. Ставиться командой:

Sudo apt-get install htop

И вызывается (кто бы думал) командой:

Let’s Encrypt

Бесплатный сервис для выдачи SSL сертификатов. Отличный вариант для перевода вашего сайта на HTTPS. Больше в моей отдельной статье .

Услуги

Если для вас все это сложно, вы не уверены в себе, или хотите дополнительной поддержки, то я готов взяться за перенос\установку вашего проекта на VDS\VPS или выделенный сервер. Более 5 лет опыта в администрировании сетевых и веб-проектов. В реальной жизни работаю системным администратором. Первичная консультация бесплатно! Свяжитесь со мной удобным для вас способом через раздел .

  • Tutorial

Добрый день.

Так уж сложилось, что последнее время пришлось достаточно часто менять VDS провайдеров, и каждый раз приходится заново настраивать систему, поэтому решил написать краткий конспект по настройке. Все нижеописанное корректно работает на ОС Linux Ubuntu server 12.04 LTS. В этой статье я опишу как установить и произвести первичную настройку nginx+apache2, eaccelerator, memcached, fure-ftpd, php, mysql, phpmyadmin а также панели управления игровыми серверами - open game panel.

Начну с краткого описания некоторых терминов.

VDS - он же VPS - Virtual Dedicated(Private) сервер - виртуальная машина, сервер - нужен он, когда обычного хостинга мало, а выделенный сервер дорого. На современном рынке провайдеров, которые предоставляют услуги по аренде VDS великое множество, и у каждого есть свои плюсы и минусы, но их мы обсуждать не будем.
Тип виртуализации - говоря простым языком это то, каким способом организована виртуальная машина. В настоящее время наиболее распространены OpenVZ и XEN. Плюс OpenVZ - низкая стоимость, так как в этом типе виртуализации для всех виртуальных машин запущенных на аппаратном сервере используется специально модифицированное ядро хост-системы. Минус этого типа виртуализации - невозможно менять параметры ядра ОС, также практически всегда присутствует оверселлинг (об это позже). А для серьезных проектов лучше использовать XEN или KVM виртуализацию - там гостевая ОС даже и не знает что она установлена на виртуальную машину, и с ОС можно делать практически все, чего душа пожелает, особенно на XEN-HWM и KVM.
Оверселлинг - провайдеры продают больше ресурсов, чем есть на самом деле. Работает это за счет того что клиенты редко используют ресурсы по тарифу на 100 процентов, но у недобросовестных провайдеров с завышенным коэффициентом оверселлинга могут наблюдаться проблемы, такие как крайне медленная работа машины или невыполнение скриптов по причине нехватки памяти. Возвращаясь к типам виртуализации на XEN и KVM оверселлинг практически невозможен технически.

Выбор хостинг-провайдера

Итак, вы решили купить услугу VDS. Как же следует выбирать провайдера. Начать следует с географии - где территориально будет располагаться ваш сервер.

Германия - плюсы: дешевые тарифы, быстрые каналы, безлимитный трафик, минусы - достаточно большая задержка до России - примерно 80мс, очень серьезно относятся к торрент трекерам, торрент клиентам, варезу и т.п.
Голландия, Канада - то же самое то и Германия, но немного дороже, но основной плюс - законодательство которое лояльнее относится к различным видам хранимой и передаваемой информации, за которую у нас по голове не гладят.
США - в большинстве своем считают трафик, большие пинги до России - в общем, не самый лучший вариант.
Россия, Украина - минимальные задержки до Российской аудитории, в большинстве случаев псевдобезлимитный трафик (снижение скорости после определенного порога или необходимость соблюдать пропорции входящего\исходящего Российского\зарубежного трафика), не самые надежные дата центры - практически в каждом периодически случаются массовые отключения сервиса на несколько часов, несмотря на три независимых электроввода, резервирование каналов интернет и дизель-генераторы.
Выбор типа виртуализации
Если позволяют ресурсы, то это однозначно KVM или XEN. Но не у всех провайдеров доступны эти типы виртуальных машин, да и денег оно стоит немного больших, нежели OpenVZ. Поэтому если ваш проект это некий сайт\два\десять с невысокой посещаемостью (примерно до 10000 уникальных хостов в день) и\или какой-нибудь ICQ чат, то OpenVZ для вас будет вполне достаточно.
Ну а если требуется выполнять какие-либо более ресурсоемкие задачи, такие как размещение игровых серверов или видеочаты лучше выбрать XEN | KVM, также эти типы виртуализации стоит выбирать, если есть необходимость создания VPN-туннелей. Здесь VPN поднять проще, чем на OpenVZ.

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

Далее буду рассказывать про разные фичи, которые я настраивал на своем сервере, какие-то могут быть вам полезны. Операционная систем, которую я использую – Ubuntu 12.04.1 LTS. Так как подавляющее большинство выполняющихся далее команд требуют root привилегий, а я человек ленивый то все действия я выполняю под рутом. Залогиниться сразу под рутом обычно нельзя, поэтому заходим под пользователем с правами sudo и выполняем команду sudo -s

Пересобираем ядро

Если вы выбрали OpenVZ, то можете смело пропускать эту часть статьи.
Данная процедура не даст ощутимого прироста производительности, и нужна эта процедура только для саморазвития и «потренироваться на будущее».
качаем исходники последней стабильной версии ядра с сайта kernel.org. На данный момент это версия 3.6.7
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.7.tar.bz2
Распаковываем архив
tar -xjf linux-3.6.7.tar.bz2
Устанавливаем необходимые для компиляции пакеты
aptitude update aptitude install build-dep linux kernel-package
заходим в папку с исходниками и генерируем конфигурацию ядра. В нашем случае все будет проходить автоматически - в ядро будут включены только те модули, которые необходимы текущему железу. Если же вам хочется вручную сконфигурировать ядро, то прошу гуглить по запросу make config или make menugonfig.
cd linux-3.6.7 make localyesconfig
запускаем компиляцию ядра - процесс не быстрый идет от 15 минут до нескольких часов.
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
поднимаемся на каталог выше и устанавливаем пакеты
cd .. dpkg -i linux-*.deb
Перезагружаемся и проверяем, что ядро встало.
reboot uname -r
Вот и все, в вашей системе новое ядро.

Меняем часовой пояс и имя ПК

Если вы устанавливаете Ubuntu на выделенный сервер сами, то языковые и географические параметры системы вы задаете в ходе установки, но в случае с VDS у провайдера есть уже готовый образ системы, который он раскатывает на ваш сервер. И всем нам приятней видеть правильное для нашего часового пояса время на сервере.
Итак, установим часовой пояс, для этого в консоли выполним команду
dpkg-reconfigure tzdata
Появится псевдографический интерфейс в котором мы выберем наше расположение.
Если вдруг (ни разу еще такого не видел) есть расхождения по дате\времени, то выполним следующую команду, в которую подставим текущие дату и время
hwclock --set --date=”11/24/2012 16:19:55"
Чтобы изменить имя сервера, откроем файл /etc/hostname и заменим содержимое на желаемое имя сервера.

Устанавливаем nginx c бэкэндом apache2, PHP, MySQL, phpmyadmin

В этой части статьи мы установим и настроим веб-сервер, рассчитанный на большое количество соединений.

Сначала установим стандартный «детский» набор пакетов для веб сервера.
aptitude update aptitude install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-certlibapache2-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 g++
Нас будут просить задать пароль от MySQL, потом спросят чем обрабатывать phpmyadmin - нужно ответить то апачем, и спросят пароль от MySQL для нужд phpmyadmin
На момент написания статьи phpmyadmin автоматически не прописывался в конфигурации apache2, вследствие чего по адресу адрес_сайта.зона/phpmyadmin мы видим ошибку 404, поэтому открываем файл /etc/apache2/apache2.conf и в конец дописываем строчку
Include /etc/phpmyadmin/apache.conf
Включаем модули apache2
a2enmod include a2enmod rewrite a2enmod suexec a2enmod ssl
Рисуем дефолтный конфиг апача. Для этого открываем /etc/apache2/sites-available/default стираем в этом файле все и пишем следующее:
ServerAdmin твой@e-mail DocumentRoot /home/www/адрес_сайта.зона Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order deny,allow deny from all allow from 127.0.0.0/255.0.0.0::1/128 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel crit CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0::1/128

То, что указан восьмисотый порт - это не ошибка, на стандартном для http восьмидесятом порту будет висеть nginx. Параметр DocumentRoot по неизвестным мне причинам большинство советуют указывать /var/www/…, на мой же взгляд логичнее держать важные данные в /home - проще будет настраивать резервное копирование.
Правим файл /etc/apache2/ports.conf
NameVirtualHost *:800 Listen 800
Копируем файл /etc/apache2/sites-available/default в /etc/apache2/sites-enabled/адрес_сайта
Директории и файлы с конфигами лучше называть по адресам сайтов т.к. в будущем это упростит поиск нужных конфигов\директорий, например /home/www/tweedle.ru /etc/apache2/sites-enabled/tweedle.ru
Правим файл /etc/apache2/apache2.conf - меняем значение параметра MaxClients на 20, сделать это надо в двух местах.
Прописываем репозиторий nginx, для этого откроем файл /etc/apt/sources.list и допишем в конец
deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise nginx
Устанавливаем nginx и apache2-mod-rpaf
wget http://nginx.org/keys/nginx_signing.key apt-key add nginx_signing.key aptitude update aptitude install libapache2-mod-rpaf libpcre3 libpcre3-dev nginx
Далее настроим nginx, для этого открываем файл /usr/local/etc/nginx/nginx.conf и заменяем содержимое следующим
user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server_names_hash_bucket_size 64; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_proxied any; gzip_min_length 300; gzip_http_version 1.0; gzip_buffers 4 8k; gzip_comp_level 9; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; } include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
в том случае если роль веб-сервера является основной ролью вашего сервера и\или сайты имеют большую посещаемость значение worker_processes выставляем равным количеству доступных ядер ЦП, в противном случае одного процесса будет вполне достаточно
создаем конфиг для нашего сайта /etc/nginx/sites-enabled/адрес_сайта.зона
server { listen 80; server_name адрес_сайта.зона; access_log /var/log/nginx.access_log; location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx|mp3|bsp)$ { root /home/www/адрес_сайта.зона/; index index.php index.html index.htm; access_log off; expires 30d; } location ~ /\.ht { deny all; } location / { proxy_pass http://127.0.0.1:800/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header Host $host; proxy_connect_timeout 60; proxy_send_timeout 90; proxy_read_timeout 90; proxy_redirect off; proxy_set_header Connection close; proxy_pass_header Content-Type; proxy_pass_header Content-Disposition; proxy_pass_header Content-Length; } }
устанавливаем memcached, никаких дополнительных настроек для него не требуеся
aptitude install memcached
устанавливаем eAccelerator
aptitude install php5-dev aptitude install make cd /tmp/ wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2 tar xvjf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1
теперь, прежде чем мы скомпилируем eAccelerator, поправим один баг в коде, из за которого возникают всяческие проблемы, например перестает работать авторизация в phpmyadmin. Откроем файл eaccelerator.c, строка 867. Заменим if (php_check_open_basedir(realname TSRMLS_CC)) { на if (php_check_open_basedir(p->realfilename TSRMLS_CC)) { Сохраняемся и продолжаем…
phpize ./configure --enable-eaccelerator=shared make make install

Создаем папку для кэша, и даем на нее права
mkdir -p /var/cache/eaccelerator chmod 0777 /var/cache/eaccelerator
Настраиваем php для работы с eaccelerator, для этого откроем файл /etc/php5/apache2/php.ini и допишем сверху
extension = "eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
Перезапускаем сервисы, убедившись что в /home/www/имя_сайта лежит сайт
service apache2 restart service nginx restart service memcached restart
Теперь мы имеем достаточно шустрый веб-сервер, который потребляет меньше 100Мб оперативной памяти. Todo: Есть один недочет – phpmyadmin, который доступен по адресу адрес_сайта.зона/phpmyadmin отображается некрасиво(без картинок), временное решение, которое я могу предложить – открывать phpmyadmin по адресу адрес_сайта.зона :800/phpmyadmin

Установка FTP сервера pure-ftpd с поддержкой MySQL

ФТП сервер пригодиться нам для простого и быстрого и удобного переноса информации с сервера и на сервер.
Устанавливаем pure-ftpd с поддержкой mysql
aptitude install pure-ftpd-mysql
Создаем группу для пользователей ftp и пользователя в ней – это делается для того чтобы впоследствии было удобней следить за тем, что происходит на вашем сервере.
groupadd -g 4001 ftpusers && useradd -u 4001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpusers ftp
Создадим базу данных в MySQL для pure-ftpd. Это можно сделать и через phpmyadmin, но великим и могучим копипастом это быстрее сделать в консоли
mysql -u root –p
CREATE DATABASE pureftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO "pureftpd"@"localhost" IDENTIFIED BY "пароль_для_pureftpd"; FLUSH PRIVILEGES;
Создадим таблицу, в которой будут храниться учетные записи фтп.
USE pureftpd; CREATE TABLE ftpd (User varchar(16) NOT NULL default "", status enum("0","1") NOT NULL default "0", Password varchar(64) NOT NULL default "", Uid varchar(11) NOT NULL default "-1", Gid varchar(11) NOT NULL default "-1", Dir varchar(128) NOT NULL default "", ULBandwidth smallint(5) NOT NULL default "0", DLBandwidth smallint(5) NOT NULL default "0", comment tinytext NOT NULL, ipaccess varchar(15) NOT NULL default "*", QuotaSize smallint(5) NOT NULL default "0", QuotaFiles int(11) NOT NULL default 0, PRIMARY KEY (User), UNIQUE KEY User (User)) ENGINE=MyISAM; quit;

Теперь настроим pure-ftpd, для этого откроем файл /etc/pure-ftpd/db/mysql.conf и сделаем его содержание таким:
MYSQLSocket /var/run/mysqld/mysqld.sock MYSQLUser pureftpd MYSQLPassword пароль_для_pureftpd MYSQLDatabase pureftpd MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Теперь сделаем так, чтобы домашняя директория пользователя автоматически создавалась если она не существует
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir
Следующая команда не даст пользователям доступа к директориям, которые выше чем их домашний каталог.
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
И наконец отключим проверку хостнеймов пользователей – это значительно ускорит процесс авторизации и немного сократит количество трафика.
echo "yes" > /etc/pure-ftpd/conf/DontResolve
Перезапустим сервис чтобы применить настройки
service pure-ftpd-mysql restart
Теперь создадим пользователя www-ftp с GID и UID 4002, домашней директорией /home/www лимитами скорости загрузки\отдачи по одному мегабайту в секунду и без ограничений по занимаемому дисковому пространству. Приведу пример с использованием командной строки, вы же можете использовать и «выполнить SQL-запрос» в phpmyadmin, или даже воспользоваться «добавить строки» в phpmyadmin – но в этом случае нужно не прошляпить то, что пароль в БД храниться в виде его md5 хеша, и в поле password выбрать «Функция» md5
mysql -u root -p
USE pureftpd; INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ("www-ftp", "1", MD5("пароль_для_пользователя_www-ftp"), "4002", "4002", "/home/www", "1024", "1024", "Комментарий", "*", "0", "0"); quit;
Вот и все, можно пробовать подключаться к вашему фтп серверу по адресу адрес_сайта.зона c логином www-ftp и указанным паролем.
Если вы собираетесь передавать по протоколу ФТП данные, которые не должны попасть в чужие руки, то не лишним будет настроить TLS шифрование. Для этого выполним следующее:
echo 1 > /etc/pure-ftpd/conf/TLS mkdir -p /etc/ssl/private/
Устанавливаем пакет openssl, если он не установлен и генерируем сертификат.
aptitude update aptitude install openssl openssl req -x509 -nodes -days 3652 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Отвечаем на вопросы – эти данные будут отображаться в созданном сертификате.
Устанавливаем права доступа на сертификат и перезапускаем pure-ftpd
chmod 600 /etc/ssl/private/pure-ftpd.pem service pure-ftpd-mysql restart
Вот и все. Помните, что для того чтобы данные шифровались необходимо включить tls шифрование со стороны клиента, и далеко не все фтп клиенты поддерживают его.

Установка комплекса управления игровыми серверами – Open Game Panel

Open game panel – он же OGP - единственное из мною найденных бесплатное решение, которое позволяет осуществлять мониторинг и управление разнообразными игровыми серверами. На момент написания статьи поддерживаются более 50 разных игр с серверами на платформах Windows и Linux. В том числе такие популярные как Counter-Strike (2D, 1.5, 1.6, Source, GO) и Minecraft(Vanilla, Bukkit)
Состоит комплекс из двух частей – веб-морды, через которую осуществляется мониторинг и управление(фронтэнд) и агента – сервиса, который висит на машинах с игровыми серверами и передает логи в фронтэнд, а команды из фронэнда игровым серверам.
Первым делом регистрируемся на http://www.opengamepanel.org – для установки это не обязательно, но на сайте можно скачать дополнительные модули(например систему биллинга), темы и прочие плюшки.
Устанавливаем необходимые пакеты
aptitude update aptitude install libxml-parser-perl libpath-class-perl libarchive-any-perl screen
Если система x64, то дополнительно устанавливаем ia32-libs
aptitude install ia32-libs
Скачиваем сам агент
wget "http://www.opengamepanel.org/downloads/ogp_agent_nightly.tar.gz" -O agent.tar.gz tar xf agent.tar.gz cd agent
Устанавливаем. Внимание – я предварительно создал пользователя в системе, включил его в группы root и sudo и создал ему домашний каталог – это все необходимо для того чтобы агент корректно работал.
bash ./install.sh
У нас будут спрашивать имя пользователя под которым будет крутиться сервис – нужно указать того, про которого я говорил в предыдущем пункте, его пароль, директорию в которой будут находиться исполняемые файлы(/home/имя пользователя/OGP) и попросят ввести ключ агента – это не пароль пользователя, а ключ управления агентом, он нам пригодится позже, и еще нас попросят согласиться с правилами политики Steam.
После установки залогиниваемся под созданным пользователем и запускаем
cd /home/имя пользователя/OGP perl ./ogp_agent.pl --log-stdout
Нам должны написать что все в порядке, процесс запущен и слушает на 12679 порту.
Нажимаем ctrl+c, логинимся под рутом и прописываем – это нужно для того чтобы сервис стартовал при запуске ситемы
update-rc.d ogp_agent defaults
Если серверов (выделенных или виртуальных) несколько, то агент необходимо установить на каждом
Теперь установим веб-интерфейс от OGP, скачиваем архив и распаковываем
wget "http://www.opengamepanel.org/downloads/ogp_web_nightly.tar.gz" -O upload.tar.gz tar xf upload.tar.gz
Перемещаем содержимое папки upload в папку, в которой у нас лежит сайт
В браузере открываем адрес_сайта.зона/папка_с_ogp и выбираем язык, если вдруг насм говорят что не хватает прав на создание каких-либо файлов или папок то выдаем права 777 chmodом, для этого зайдем в папку с ogp и выполним команду.
chmod 777 –v –R * Добавить метки

Обновляшечки! Данный набор шпор для разворота хостинга обновлен 28.03.2015, теперь по ним можно развернуть относительно свежий хостинг под Ubuntu 14.04LTS.

Вчера заметил, что Hetzner недавно «обновил тарифы» и выкатил конфигурацию VX18 всего за 18€ c VAT (для нерезидентов по 15.8€). По характеристикам — всего в 2 раза больше, чем на моем старом тарифе VQ19, по качеству ничего не ясно, предполагаю что такое же десктопное железо. Саппорт не сознается, говорит «просто новые тарифы, надо же нам что-то предлагать». Решил вот попробовать. Прогнал unixbench на старом сервере и новом , остался пока доволен и начал перенос сайтов. За одно решил поправить эти шпаргалки для настройки хостинга. (кстати, со временем показатели сервера ухудшатся при «заселении» сервера или смены ноды на более вялую, как было у меня с VQ19, для сравнения — удивительно бодрее чем VQ19).

Задача
Развернуть под Ubuntu 14.04 LTS легкий виртуальный вебхостинг для работы в nginx , PHP-5.5 , MySQL , а так же поднять почтовый сервер Dovecot2/Postfix и настроить почту. Apache я разворачивать не буду, ибо не вижу в нем смысла - под мои нужды nginx подходит ничуть не хуже, а оперативную память расходует значительно меньше. Неймсервер использоваться будет хетзнеровский, как более стабильный.

Формат изложения
Ниже вы можете увидеть список действий, которые будут озвучены в последующих постах. Когда этот момент случается — данная страница будет обновлена и итем станет ссылкой 🙂

  • Установка средств мониторинга сервера Munin.
  • Резервное копирование данных.
  • Скрипты упрощающие добавление нового сайта.

Внимание! Я не являюсь матерым админом и все излагаемое может быть оспорено профессионалами в любом виде. Рад всяческим поправкам, комментариям и советам.

Покупка хостинга в hetzner.de

В этом деле я вам особо не помощник, т.к. справится с этой задачей любой. Заходим сюда , выбираем понравившийся тариф, жмем «Order now». Будете средирекчены на https://robot.your-server.de/order . Далее выбираете заново свой продукт — у меня это был «vServer VX18» и жмете «Order product». На следующей странице выбираете Ubuntu 14.04 LTS 64bit minimal , архитектура 64бит , число серверов 1. Все мои изложения далее идут для Ubuntu 14.04 LTS 64bit. Далее жмем «Add to shopping cart». На следующей странице проверяем то ли мы заказали и жмем «Checkout». Далее если имеем аккаунт в роботе — логинимся, если не имеем — заполняем все поля и регистрируемся. Заполнять надо на английском языке (Ф.И.О. транслитом). Необходимо, чтобы ваше Ф.И.О. совпало с транслитом на вашей кредитной карте, которой вы будете платить. После жмете «Create new account». Где-то дальше вас спросят про кредитку … Вообщем все как в обычном интернет-магазине.

Какой тарифный план выбрать?

Сейчас я пользуюсь тарифом VX18 за 18€ (vServer VX18), т.к. потребности постепенно растут, но до реального сервера пока не дотягивают. Данный тариф позволяет довольно бодро тянуть десяток-другой не сильно нагруженых сайтов. Если вы хотите пока попробовать что-то попроще — можно для начала взять тариф VX6, но на нем совсем мало памяти, архитектуру надо будет брать 32bit. Так же не стоит забывать, что у hetzner нельзя на лету сменить тариф — надо покупать еще один сервер и переносить все на него.

Как быть с nameserver?

А очень просто. Свой поднимать накладно, надо 2 IP, нагрузка на сервер всякими ботами нам тоже не нужна, поэтому воспользуемся неймсерверами самого hetzner. Правда услуга эта платная, стоит 0.5€ в год за 1 домен. Эту услугу лучше подключить сразу, как только вам поставят сервер (об этом вы будете уведомлены по EMail), т.к. подключается она не быстрее сервера (т.е. ручками через операторов). Как я уже описывал.

Подготовка окружения сервера.

Ну вот нам уже и сервер включили, SSH дали — можем пользоваться. Первым делом обновим установленный софт:

Sudo apt-get update sudo apt-get upgrade

Если появились ошибки в стиле blah blah blah …Hash Sum mismatch , выполняем следующее:

Sudo rm /var/lib/apt/lists/* sudo apt-get update sudo apt-get upgrade

Поставим Midnight Comander (что-то типа FAR), для запуска mc.

Sudo apt-get install mc


Теперь пропишем имя хоста (все ниже описанные действия я буду проводить для сайта koteika.ru , вы же можете заменять на свой домен, ну или придумать имя хоста себе по вкусу.)

Sudo echo "koteika" > /etc/hostname sudo hostname -F /etc/hostname

Пропишем fqdn (нужен для почты), правим /etc/hosts , чтобы получилось примерно так:

### Hetzner Online AG installimage # nameserver config # IPv4 127.0.0.1 localhost.localdomain localhost 78.47.88.87 koteika.koteika.ru koteika # # IPv6::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika

Вся прелесть в строках 78.47.88.87 koteika.ru koteika и 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika , где первое значение - IP вашего сервера, второе - доменное имя сервера в формате (FQDN) и третье - имя хоста.

Если все правильно сделали, то посмотреть результаты можно так:

Hostname hostname -f

P.S. Файлы лучше редактировать в чем-то простом типа , но простые изменения можно делать и в mc. В дальнейшем нам придется править очень много конфигов, т.ч. vi лучше освоить.

Если вам понравилась моя статья, пожалуйста, не поленитесь кликнуть любую кнопочку ниже, или кинуть ссылку на статью в свой блог или форум. Всегда рад ответить на ваши вопросы в комментариях. Спасибо 🙂