aaPanel - бесплатная панель управления для VDS / VPS / сервера + Nginx/Apache + php-fpm + Linux Ubuntu 16.04 / 18.04 / 20.04, Debian 9+, Centos 7 / 8

sitecreator

Administrator
Команда форума

aaPanel


Описывая возможности панели управления aaPanel буду временами сравнивать ее с другими панелями управления. Не ставлю целью категорически выделить лучшую панель управления и/или операционную систему и/или лучший веб-сервер. Предоставляю самостоятельно делать окончательный выбор. Если я что-то описываю, то это не обязательно означает, что я описываю собственные предпочтения и даю рекомендации использовать вот именно "то, а не это", скорее всего, это будет анализ собственного опыта, в том числе анализ ошибок (ошибочного выбора). Без практического опыта и практического сравнения невозможно заранее точно понять, что же окажется самым удобным и самым быстрым (производительным). Поэтому я выбрал вариант "пощупать" разные панели управления VDS/VPS под разными ОС Linux, и уже потом решил сделать более осознанный окончательный выбор на основе сравнения возможностей, удобства, глючности (точнее - отсутствие оных), требовательности (прожорливости) к ресурсам и т.п.

Поэтому даже не вполне удачные конфигурации я также описывал и описываю. Итоги и выводы будут позже.
Пока могу сказать, что выбор aaPanel видится более предпочтительным по сравнению с CyberPanel.

Полная документация на панель управления: документация aaPanel
Панель управления бесплатная.
Поддерживает выбор конфигурации веб-сервера и PHP.

Возможные варианты веб-сервера и PHP:
  • Nginx + php-fpm
  • Apache + php-fpm
  • OpenLiteSpeed + LSPHP

С точки зрения производительности самый интересный вариант - это Nginx + php-fpm.
Для каждого сайта возможно использование своей версии php.

Операционные системы Linux, которые поддерживает aaPanel:

  • Ubuntu 16.04 / 18.04 / 20.04
  • Debian 9+
  • Centos 7 / 8

Набор дополнительных возможностей в aaPanel зависит от операционной системы. Самый большой выбор дополнительных функциональных возможностей будет при установленной Linux Centos 7. Это не означает, что Centos 7 чем-то превосходит остальные ОС, просто это особенность данной панели управления. Различные панели управления тяготеют в той или иной степени к тем или иным ОС. Например, в случае панели управления ISPmanager также наблюдалась поддержка в первую очередь Centos 7, т.е. новый функционал появлялся сперва именно для этой Linux, потом - для остальных.

В любом случае выбор дистрибутива Linux (FreeBSD или иной вариант UNIX) - это дело вкуса и привычки, и опыта . Но учитывайте, что некоторая (небольшая) часть дополнительных приложений для aaPanel рассчитана только на Centos или Centos / Ubuntu. Основной же функционал одинаково работает на любой из поддерживаемых ОС Linux. При прочих равных имеет смысл всегда смотреть в сторону наиболее свежего дистрибутива (с более свежим ядром соответственно) и одновременно не забывать о долговременной поддержке разработчиком того или иного дистрибутива.



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

Менеджер файлов в отличие от CyberPanel в aaPanel позволяет работать с любыми папками, а не только с папками сайтов. Можно всегда посмотреть суммарный вес всех файлов папки, что довольно удобно. Например, в той же панели ISPmanager нет кнопки для просмотра размера всех файлов в папке.
В aaPanel нет проблем с кириллическими названиями файлов.
Отдельным недостатком файлового менеджера aaPanel можно назвать отсутствие для браузера FireFox использовать режим перетаскивания drag & drop, но в Crome это работает. В ISPmanager 5 такой функции нет совсем.






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





Правда если корзину отключить, то удаление файла превращается в "интеллектуальную задачу", т.к. файловый менеджер начинает вам подкидывать арифметические упражнения, правильно решив которые вы можете удалить файл. Где изменить такое поведения я не смог пока найти, т.к. в основных настройках панели управления нет чего-то подобного, переключение настроек на "develop mode" вопрос не решает.




В отличие от CyberPanel в aaPanel есть удобный функционал импорта/экспорта данных в базу данных и бекапа (backup) БД. Такой функционал также есть в ISPmanager. Это позволяет не использовать для этого PHPmyAdmin, который делает подобные операции крайне медленно, а из-за лимита времени (на выполнение php) может не завершиться за один проход импорт большого файла SQL.



 
Последнее редактирование:

sitecreator

Administrator
Команда форума

Сравнение NGINX + PHP-FPM vs LiteSpeed + LSPHP



Использовались для теста VDS с одинаковыми параметрами:
  • 1 ядро 2.4 ГГц,
  • 2 Гбайт памяти,
  • 20 Гбайт диск SSD,
  • ОС Linux Centos 7.9
  • PHP 7.2

Для веб-сервера Nginx+php-fpm использовалась панель управления aaPanel.
Для OpenLiteSpeed +LSPHP - CyberPanel соответственно.


Была использована база товаров реального магазина на 17 000 позиций.
Измерялся параметр TTFB для:
  • главной страницы
  • страница Категория на 15 товаров
  • страница Категория на 100 товаров

OpenLiteSpeed







NGINX








Итак, результат. Ожидаемо, что NGINX+PHP-FPM оказался несколько быстрее.
Нужно также учитывать, что это был т.н. "спокойный тест", т.е. когда одновременной нагрузки на сервер в виде многочисленных пользователей не было, был условный один пользователь. При "стресс-тесте", когда происходят одновременно массовые запросы, результаты должны быть несколько иные.

Никаких кеширований HTML средствами серверов не использовалось. Настройки серверов БД были идентичные.

Главная страница: 56 ms (LiteSpeed) / 52 ms (NGINX)
Страница Категория на 15 товаров: 94 ms (LiteSpeed) / 81 ms (NGINX)
Страница Категория на 100 товаров: 173 ms (LiteSpeed) / 152 ms (NGINX)


ВАЖНО IMPORTANT
Для верности тестов open_basedir защита была отключена. Это крайне важно для правдивых тестов, т.к. для LiteSpeed (впрочем, как и для Apache или Nginx+Apache) при включенном open_basedir параметр TTFB, т.е. время отклика возрастает в 1.5-2 раза. Бывает, что по-умолчанию в настройках опция open_basedir включена, тогда вы получите неверные результаты тестов при сравнении с NGINX, т.е. будут изначально неравные условия тестирования.


Нередко такой нюанс не учитывают, а потому получается ошибочный вывод, что LiteSpeed якобы работает в два раза медленнее чем Nginx.

Вопрос потребления памяти веб-серверами - это отдельный вопрос. Выше был тест производительности.
 
Последнее редактирование:

sitecreator

Administrator
Команда форума

Установка на примере Centos 7, Ubuntu 16+, Debian 9+



Для Centos:
Код:
    yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh
Для Ubuntu. Необходимо установить python3 (который уже установлен с большой вероятностью) pip, pyOpenSSL. pip, pyOpenSSL необходимы для нормальной работы дополнения к панели управления"google drive". По идее все это должно само атоматически установиться, но не всегда все проходит гладко. Об этом нигде не указано, но если этого не сделать, то дополнение "google drive" может быть установлено некорректно.
Код:
apt install python3-pip
pip install pyOpenSSL

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
Для Debian:
Код:
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
После завершения установки получим сообщение с данными для доступа в панель управления. Скопируйте эти данные.



Во время установки было получено сообщение:
Код:
Requirement already satisfied: cachelib in /www/server/panel/pyenv/lib/python3.7/site-packages (0.1.1)
WARNING: You are using pip version 20.3.3; however, version 21.1.3 is available.
You should consider upgrading via the '/www/server/panel/pyenv/bin/python3.7 -m pip install --upgrade pip' command.


Воспользуемся советом и обновим pip3 до 21.1.3:
Код:
/www/server/panel/pyenv/bin/python3.7 -m pip install --upgrade pip
Далее осуществляем вход в панель управления по предложенной ранее ссылке:



При первом входе будут предложены быстрые варианты установки:



Рекомендуется выбирать NGINX.
Но вы в любой момент можете изменить веб-сервер.
Сервер БД предпочитаю MariaDB.

Кстати, есть делать установку необходимых компонентов отдельно, а не из начального окна, то будут доступны более свежие версии софта.
Например, Nginx будет доступен 1.21 вместо предлагаемого на стартовом экране 1.19.

Установите отдельно необходимые версии PHP.



Сделайте настройку php для каждой версии отдельно, подключите необходимые расширения, хотя все необходимые для опенкарт уже включены по-умолчанию. Но в списке возможных расширений imagick не значится, к примеру.

Профиль FPM можно оставить пока по-умолчанию. Но в зависимости от реальной нагрузки и параметров сервера можно менять параметры настройки FPM.
При смене настроек PHP нужно перезагружать PHP.



После смены настроек PHP нужно перезагружать PHP.

 
Последнее редактирование:

sitecreator

Administrator
Команда форума

Создание сайта/домена.



Создайте через dnsmanager (данные для доступа предоставляет провайдер) соответствующие записи для домена. Выбирайте "master".
Внесите название домена и IP вашего сервера.



Удобно сразу создать соответствующий FTP аккаунт и базу данных (пользователь и название БД будут совпадать)



Поставьте нужные редиректы:
для домена с www на домен без www
на HTTPS с HTTP (если выбрали создание SSL)






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






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



Должно быть так:



Чтобы работали ЧПУ для опенкарт нужно в конфигурацию nginx для сайта добавить:

Код:
location / { try_files $uri $uri/ @opencart; }
location @opencart { rewrite ^/(.+)$ /index.php?_route_=$1 last; }
Также необходимо закрыть от доступа некоторые типы файлов и папки. Это также прописывается в конфиге.
Нужно также добавить в конфиг статические файлы webp и шрифты, и назначить для них время жизни кеша браузера 30d (желательно не меньше).
Стат. файлам js, css по умолчанию задается 12h, замените на 30d.

rewrite правила для конкретного сайта можно внести на отдельной вкладке настроек сайта. Все эти правила сохраняются в отдельном файле конфигурации.

Немного позже я добавлю как пример полный вид файла конфигурации здесь. Кстати, ранее я уже приводил варианты конфигурации NGINX для opencart.

Если вы перейдете на страницу сайта на опенкарт, то увидите ошибку, связанную с open_basedir.
Код:
Warning: is_file(): open_basedir restriction in effect. File(/www/wwwroot/opencart.space/system/../../vendor/autoload.php) is not within the allowed path(s): (/www/wwwroot/opencart.space/:/tmp/) in /www/wwwroot/opencart.space/system/startup.php on line 70
Рекомендую пока закомментировать open_basedir в файле .user.ini, который находится в корневой папке сайта. К этой ошибке я вернусь позже.

 
Последнее редактирование:

sitecreator

Administrator
Команда форума

Backup файлов сайта и его базы данных



Допустим, что вы решили в качестве хранилища использовать Google Drive.
Сначала установите соответствующее расширение для панели управления aaPanel .



У вас должен быть в наличии ключ для google drive. Как его получить - это отдельная тема, опишу это тоже подробно.
Итак, ключ есть (это файл с расширением .json). Делаете импорт ключа, т.е. просто его как файл загружаете с вашего ПК.



Далее переходите по ссылке, которая указана как 3-й шаг. (2-й шаг не нужен). Входите в ваш аккаунт гугла если еще не вошли, далее даете разрешение сервису aaPanel-GDrive.



Потом вас ждет сюрприз в виде попытки перехода браузера непонятно куда и вываливанием ошибки. Тут господа разработчики просто не доработали. Пугаться не нужно, ошибка не страшна. Хотя я потратил несколько часов чтобы понять что же это означает. Могли бы разработчики где-то предупредить об этом, тем более, что на Centos 7 установка google drive завершалась появлением на пару секунд пустого информационного окошка с красным (предупреждающим?) знаком, что сразу наводило на мысли, что проблема была на этапе установки.

ВАЖНО IMPORTANT
Будет сообщение об ошибке в браузере. Так и задумано. Не волнуемся. Просто читаем внимательно текст выше и смотрим скриншоты.




Нужно просто скопировать из адресной строки ссылку полностью. Да, в ней есть "localhost". И вставить эту ссылку в окошко 5-го шага.



Подтверждаете. Верификация удачно пройдена.



Создайте задание cron для backup. Исключите папку кеша изображений:
Код:
image/cache
И другие папки, копировать которые не имеет смысла по вашему мнению. Кеш всегда сам восстановится, но в backup-е он занимал бы напрасно слишком много места.




После создания задания запустите его. После запуска вы увидите всплывающее окошко "Успешно запущено", которое через пару секунд исчезнет.



Чтобы понять что происходит и насколько успешно нужно нажать "Log". Тогда увидим, что успешно создан архив файлов для сайта.



В вашем аккаунте google drive вы увидите архив сайта, который можете скачать и проверить.



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




Бекап базы данных.

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













Восстановить БД при необходимости из архива backup-а:


 
Последнее редактирование:
Верх