Когда ваш сайт расширяется вы задумываетесь об аренде уже чего-то более серьёзного, чем просто хостинг. Выделенные сервера в наше время удовольствие дорогое и им на замену хорошо подходят 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

Итог.

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

Обновляшечки! Данный набор шпор для разворота хостинга обновлен 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 лучше освоить.

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


В этой статье я расскажу как настроить свой 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 лет опыта в администрировании сетевых и веб-проектов. В реальной жизни работаю системным администратором. Первичная консультация бесплатно! Свяжитесь со мной удобным для вас способом через раздел .

Здравствуйте! В этом уроке, я покажу, как установить CMS Joomla, на сервер VDS/VPS, управляемый из панели ISPmanager.

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

В данной статье установка продемонстрирована работой на ISPmanager Lite версия 5.8.

Этапы установки Joomla 3 на VDS/VPS из ISPmanager

  • 1: Добавление домена;
  • 2: Создание базы данных;
  • 3: Закачка дистрибутива Joomla на сервер;
  • 4: Инсталляция Joomla с переводом.
  • 5: Проверка результата установки, авторизация в панели администрирования.

Пункт 1: Добавление домена

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

Домен нужно добавить на вкладке «WWW домены», группа «Домены».

На открытой вкладке заполняем все поля.

На фото вы видите, что сервер настроен с возможным включением защиты от DDoS атак. Вряд ли имеет смысл включать данную защиту на нерабочем сайте.

Итог: Домен с WWW добавлен. Сервер автоматом создал домен без WWW, что можно проверить на вкладке «Домены».

Примечание: Создание почтового домена не влияет на работу сайта, поэтому оставим эту тему для других статей.

На этом этапе важно решить и выбрать для сайта веб-сервер HTTP. Важно, чтобы в работе был задействован веб-сервер Apache. В этом случае вы сможете использовать SEO настройки Joomla и использовать файл htaccess. для управления url адресами сайта.

Есть мнение, что для CMS Joomla предпочтение в выборе веб-серверов ранжируется так:

  • UNIX\Apache\Fast CGI\eAccelerator (самая высокая скорость в сочетании с удобной работой).
  • UNIX\Apache\Fast CGI (тоже, но более доступна).
  • UNIX\Apache\mod_php (неудобная работа с правами CHMOD).
  • UNIX\Apache\CGI (не максимальная скорость, зато удобство работы и совместимость со всеми расширениями Joomla).

На моем сервере нет Fast CGI, поэтому я использую Apache\CGI. Данная настройка сервера, позволяет включить режим сжатия и режим кэширования. Они нужны для ускорения работы сайта. Сразу включим режим сжатия (рекомендована 5-я степень сжатия) и включим кэширования на срок 7 дней.

Пункт 2: Создание базы данных сайта Joomla

База данных в панели ISPmanager создается на вкладке «Базы данных», группа «Инструменты». На вкладке есть кнопка «Создать».

Обязательно, в целях повышения безопасности сайта, создаем нового пользователя для базы данных. Если у вас несколько сайтов и вы root пользователь VDS сервера, вы сможете управлять сразу всеми базами данных своих сайтов из панели phpmyadmin, или управлять каждой отдельной базой данных сайта, входя в phpmyadmin под логином отдельного пользователя этой базы данных.

Создаваемая база данных должна иметь три обязательных параметра, которые нужно зафиксировать: имя базы данных, имя пользователя БД, пароль доступа, а также расположение базы данных на этом сервере. Обычно, расположение сервера баз данных, local host. Для проверки его можно увидеть в столбце «Сервер» в списке (таблице) созданных баз данных.


class="eliadunit">

Пункт 3: Закачка дистрибутива Joomla на сервер

В прошлом уроке мы закачивали Joomla на FTP, используя FTP клиент . Здесь, для примера, закачку дистрибутива Joomla на сервер, проведем через файловый менеджер сервера.

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

Используя файловый менеджер сервера, для закачки папок и файлов Joomla в корневую папку сайта, распаковывать дистрибутив не нужно.

  • Открываем файловый менеджер сервера;
  • Открываем коневую папку сайта;
  • Закачиваем (кнопка «Скачать») zip архив Joomla;
  • Распаковываем архив (кнопка «Разархивировать»);
  • Удаляем zip архив (выделяем нажатием и удаляем кнопкой «Удалить»;
  • Проверяем права CHMOD на каталоги и файлы Joomla. Каталоги CHMOD=755, файлы CHMOD=644.

Пункт 3: Инсталляция Joomla с переводом

Инсталляция Joomla это прохождение трех или пяти окно установки системы в браузере. Три окна без перевода, пять окон с переводом на нужный язык. Здесь сразу переведем (локализуем) на русский язык.

Окно 1: Заполняем данные по сайту

Окно 2: Вписываем данные базы данных

Окно 3: Проверяем конфигурацию сервера на соответствие системе Joomla

Окно 4: Проходим установку, переходим к установке языка

Окно 5: Выбираем язык для панели для сайта

Окно 6: завершаем установку удалением каталога «Installation».

Переходим по вкладкам «Панель» и «Сайт». Проверяем перевод.


Close