Терминал в браузере

Терминал открывает командную строку сервера прямо в панели. Перезапустить приложение, подтянуть новый код или поправить права можно здесь, не запуская SSH-клиент.

Что это такое

Командная строка открывается во вкладке браузера. Это тот же shell, что и по SSH, с теми же программами. В WardPane 2.0 терминалов два.

Root-терминал доступен только в сеансе, начатом под root (см. безопасность панели). Он работает от root и может изменить на сервере что угодно.

Терминал владельца открывается из сайта. Он работает от имени владельца сайта, то есть пользователя Linux, которому принадлежат файлы (по умолчанию www-root), начинает в папке сайта и имеет ровно те права, что у владельца.

В обоих случаях у терминала столько прав, сколько у учётной записи, от которой он запущен, и не больше.

Типичные задачи

Приложения Node.js с PM2

У каждого владельца свой демон PM2, под которым работают его сайты Node.js, так что команды PM2 доступны в терминале владельца:

pm2 list                    # приложения владельца, названные по их доменам
pm2 restart example.com     # перезапустить одно приложение
pm2 logs example.com        # следить за его выводом (Ctrl+C, чтобы остановить)

Версию, команду запуска, переменные окружения и лимиты меняйте в панели. Конфигурацию PM2 панель пересоздаёт из своих настроек, и правки, сделанные через сам PM2, пропадут. См. Node.js.

Установка зависимостей и сборка

cd /var/www/www-root/data/www/example.com
npm ci                      # или нажмите «npm install» на вкладке «Обработчик»
npm run build

Развёртывание через git

cd /var/www/www-root/data/www/example.com
git pull

Для сайта Node.js после этого перезапустите приложение (pm2 restart example.com или Перезапустить в панели).

PHP-сайты

cd /var/www/www-root/data/www/example.com
wp plugin update --all            # WP-CLI, если установлен
php artisan migrate               # Laravel

Песочница PHP ограничивает сайт, но не команды, которые вы запускаете в терминале. Поэтому плагины и обновления WordPress безопаснее ставить из терминала, а не из админки WordPress: ей для этого нужен параметр Выполнять .php из папок с правом записи. См. PHP.

Права на файлы

Файлы сайта должны быть доступны для чтения всем (644 для файлов, 755 для папок):

find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +

После таких изменений на PHP-сайте нажмите Применить заново и исправить права на вкладке Обработчик, и папки с правом записи снова перейдут к PHP.

Базы данных

WardPane 2.0 не управляет базами данных. Если вы сами установили MySQL или MariaDB, их утилиты работают в терминале как обычно:

mysql -u myshop -p myshop                  # открыть базу данных
mysqldump -u myshop -p myshop > dump.sql   # сделать резервную копию

Управление базами данных из панели запланировано на версию 2.1 (см. Базы данных).

Замечания о безопасности

  • Любой, кто может войти в панель, может открыть терминал владельца сайта, а в сеансе root можно выполнить что угодно от root. Ставьте надёжные пароли и по возможности ограничьте доступ к панели по адресам через PANEL_ALLOW_IPS.
  • Настройки, которыми управляет панель (сайты, обработчики, сертификаты), меняйте в панели, а не в root-терминале. Иначе представление панели о сервере разойдётся с тем, что на нём на самом деле.
  • Не редактируйте генерируемые файлы, например /etc/wardpane/php/<id>/php.ini или конфигурацию PM2: панель их перезаписывает. Меняйте настройки в панели.
  • Не вставляйте команды из источников, которым не доверяете: здесь они действуют так же, как набранные по SSH.
  • Трафик терминала идёт через HTTPS-соединение панели, как и у всех остальных её страниц.