Vestacp панель управления для сайтов
Панель управления веб-серверами, виртуальными хостами, почтой, базой данных, dns. Хостинговая панель управления сервером.
Официальный сайт: vestacp.com
- Бесплатная
- Поддержка SSL (let's encrypt из коробки)
- Автоматическая установка
- Open Source
- Опциональная установка (выбор только необходимого функционала)
- Мультиязычная
Рекомендуется устанавливать на чистую систему, что бы избежать проблем и конфликтом с пакетами на работающем сервере. Иными словами, чтобы ничего не поломать ;)
Поддержка операционных систем:
- RHEL / CentOS 5,6,7
- Debian 6,7,8
- Ubuntu 12.04-16.10
Таблица версий PHP и MySQL в зависимости от системы, на которую будет произведена установка
Ubuntu 14.04.4 | PHP 5.5.9 | mysql 5.5.54 |
Ubuntu 16.04.1 | PHP 5.5.9 | mysql 5.7.17 |
CentOS 6.8 | PHP 5.3.3 | mysql 5.1.73 |
CentOS 7 | PHP 5.4.16 | mysql 5.5.50-MariaDB |
Мне нужна была старая версия PHP, поэтому пришлось поискать информацию. Нашел пару гайдов по установке нескольких версий, но нормально устанавливается только до версии 5.4 - ниже (например 5.3.x) сталкиваешся с конфликтом пакетов или отсутствие нужных версий в репозиториях.
Инструкция по настройке мультиверсионности php на vestacp
Если вы тоже собираетесь попробовать установить несколько версий PHP на vestacp - вам может пригодиться phpbrew и гайд по установке его на Весту.
Установка
Для начала вам нужно заказать себе VPS (обзор vscale), получить [IP] [логин] и [пароль] или загрузить свой публичный ключ для авторизации.
Итак мы подключились по ssh, для верности делаем apt-get update или yum update если у вас RHEL. Устанавливаем curl и загружаем скрипт установки панели управления. Можно просто скопировать команду ниже внезависимости от операционной системы.
yum install curl ; apt-get install curl ; curl -O http://vestacp.com/pub/vst-install.sh
Определимся с опциями которые нам могут пригодится. На сайте разработчика есть конфигуратор, который отдаст нужную команду для запуска установки. (Зеленая кнопка Generate..)
Для минимальной установки мне хватитило apache, nginx, ftp и базы данных. Копируем строку полученную от генератора в терминал и отвечаем на вопросы о email адресе, на который прислать пароли и адрес для подключения к панели управления. Пример конфигурации ниже.
bash vst-install.sh --nginx yes --apache yes --phpfpm no --vsftpd yes --proftpd no --exim no --dovecot no --spamassassin no --clamav no --named no --iptables yes --fail2ban no --mysql yes --postgresql no --remi no --quota no
После завершения установки
Позаботимся о безопасности и сменим порт по умолчанию для доступа в панель управления. Для этого нужно залогиниться по ssh на сервер и исправить файл конфигурации.
# Изменяем порт по-умолчанию на.. допустим 8380 <заменить на свой> sed -i 's/8083/8380/g' /usr/local/vesta/nginx/conf/nginx.conf
Изменяем правило в iptables и перезагружаем vestacp
# 8083 старый порт / 8380 новый порт <изменить на свой> v-change-firewall-rule $(v-list-firewall|grep 8083|cut -d " " -f1) ACCEPT 0.0.0.0/0 8380 TCP
Резервное копирование на Яндекс
Для резервного копирования можно использовать уже готовый клиент Яндекс.Диска - отличный выбор на мой взгял это ydcmd. Документация по клиенту доступна на gihtub в репозитории разработчика, ссылка ниже.
ydcmd - Консольный клиент Linux/FreeBSD для работы с облачным хранилищем Яндекс.Диск (Yandex.Disk) посредством REST API
Выполним установку клиента на сервер.
git clone https://github.com/abbat/ydcmd.git cp ydcmd/ydcmd.py /usr/local/bin/ydcmd chmod +x /usr/local/bin/ydcmd
Для работы клиента необходимо получить OAuth токен. Для его получения используйте команду ydcmd token, или зарегистрируйте приложение на Яндексе самостоятельно:
Название - ydcmd (может быть любым) Права - Яндекс.Диск REST API Клиент для разработки - установить флажок
После регистрации приложения скопируйте id приложения и перейдите по ссылке: https://oauth.yandex.ru/authorize?re....
После разрешения доступа сервис перенаправит вас по ссылке вида:
https://oauth.yandex.ru/verifi..
После установки клиента, создаем скрипт, который будет копировать резервные копии за 30 дней и удалять старые(позже 30 дней). Ниже команда, которая создает файл /usr/local/vesta/bin/sync-yandex-disk с содержанием скрипта.
cat << EOF > /usr/local/vesta/bin/sync-yandex-disk #!/bin/bash for r in $(find /backup/ -name "*$(date "+%Y-%m-%d")*.tar");do /usr/local/bin/ydcmd put $r disk:/bkpVPS/$(date "+%Y-%m-%d")/;done /usr/local/bin/ydcmd rm disk:/bkpVPS/$(date "+%Y-%m-%d" -d "30 days ago") EOF
Добавляем задание в cron /usr/local/vesta/bin/sync-yandex-disk
PhpMyAdmin
Для того, чтобы сократить количество сообщений о попытках перебора доступа в mysql, меняем адрес по умолчанию в панели.
sed -i 's/phpmyadmin/phpmy4dm1nz/g' /etc/httpd/conf.d/phpMyAdmin.conf sed -i 's/phpmyadmin/phpmy4dm1nz/g' /usr/local/vesta/web/templates/admin/list_db.html sed -i 's/phpmyadmin/phpmy4dm1nz/g' /usr/local/vesta/web/templates/user/list_db.html service vesta restart
HTTPS/SSL
Перед выполнением нужно зарегестрировать служебный домен у пользователя admin и сгенерировать для него бесплатный сертификат let's encrypt. Потом мы просто делаем символическую ссылку на эти сертификаты. После этого при заходе в панель - шифрование https становится валидным и не выдает ошибку.
mkdir /usr/local/vesta/ssl/bak/ mv /usr/local/vesta/ssl/* /usr/local/vesta/ssl/bak/ ln -s /home/admin/conf/web/ssl.<домен>.crt certificate.crt ln -s /home/admin/conf/web/ssl.<домен>.key certificate.key