Добавление альтернативной версии PHP 8.1 на ISPmanager 5 Lite

Чтобы добавить собственную альтернативную версию PHP в ISPmanager, нужно создать два XML-файла.

Первый файл добавляет в Настройки → Возможности новый пункт и описывает для него форму Настройки → Возможности → Изменить. Например:
/usr/local/mgr5/etc/xml/ispmgr_mod_myphp.xml

HTML:
<mgrdata>
 <lang name="ru">
   <messages name="feature">
     <msg name="dname_altphp81">Альтернативная версия PHP 8.1</msg>
   </messages>
   <messages name="feature.edit">
     <msg name="package_ispphp81">My PHP 8.1</msg>
     <msg name="hint_package_ispphp81">Использовать PHP 8.1 в режиме CGI</msg>
     <msg name="package_ispphp81_mod_apache">Модуль PHP для Apache версии 8.1</msg>
     <msg name="hint_package_ispphp81_mod_apache">Возможность использовать PHP 8.1 в режиме модуля Apache</msg>
     <msg name="package_ispphp81_fpm">PHP 8.1 для PHP-FPM</msg>
     <msg name="hint_package_ispphp81_fpm">Возможность использования PHP 8.1 сервисом PHP-FPM</msg>
     <msg name="packagegroup_altphp81gr">PHP версии 8.1</msg>
     <msg name="hint_packagegroup_altphp81gr">Возможность использовать PHP версии 8.1</msg>
   </messages>
 </lang>
</mgrdata>

Второй файл описывает пакет добавляемой версии PHP. Например:
/usr/local/mgr5/etc/xml/ispmgr_features.d/my_php.xml

HTML:
<features>
       <feature name="altphp81" featuregroup="altphp">
        <packagegroup name="altphp81gr" type="select">
            <package name="ispphp81" dispname="PHP 8.1 CGI" primary="yes" recommended="yes">
                <systemname>isp-php81</systemname>
            </package>
            <if value="turn_off" hide="package_ispphp81_mod_apache" shadow="yes"/>
            <if value="turn_off" hide="package_ispphp81_fpm" shadow="yes"/>
        </packagegroup>
        <package name="ispphp81_fpm" dispname="PHP 8.1 PHP-FPM" recommended="yes">
            <systemname>isp-php81-fpm</systemname>
        </package>
        <package name="ispphp81_mod_apache" dispname="PHP 8.1 Apache module">
            <systemname>isp-php81-mod-apache</systemname>
        </package>
    </feature>
</features>

После добавления XML-файлов:
Перезапустите ISPmanager:

Код:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Набор полезных функций

aptitude install - гараздо "умнее" установка\удаление и т.д.

 

Логи конкретных функций

tail -f /usr/local/mgr5/var/ispmgr.log | grep "DEBUG action_sysinfo.cpp"

Уровень логировния

/usr/local/mgr5/etc/debug.conf

перезагрузка панели

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

 

Системные логи, хорошо что бы довести до ума сервер и не только

tail -f /var/log/syslog

 

Сменить версию пхп по умолчанию на всей системе(для меня актуально с установленой версией 8.0 но мало кто еще поддерживает)

sudo update-alternatives --set php /usr/bin/php7.4

Обновление БД c ispmanager

В данной статье будет показан способ обновления версии MariaDB, на сервере с операционной системой CentOS 7 и установленной панелью управления ISPmanager, с версии 5.5.60, которая ставится по умолчанию с ISPmanager, на версию 10.3. Таким же образом Вы можете увеличить версию MariaDB до 10.1, 10.2, 10.4, 10.5.

1. Для начала нам необходимо будет добавить нужный репозиторий в yum. Для этого:

1) Заходим на данный сайт: https://downloads.mariadb.org/mariadb/repositories/#mirror=cyanlink

2) В пункте «1. Choose a Distro», выбираем «CentOS».

3) В пункте «2. Choose a Release», выбираем версию Вашей операционной системы, в нашем случае «CentOS 7». Но кроме версии самой операционной системы, необходимо выбрать тип процессора.
Для определения версии процессора, введем на сервере команду:

uname -p

 

4) В пункте «3. Choose a Version», выбираем нужную версию MariaDB. В нашем случае это «10.3 [Old Stable]».

5) Снизу появится список настроек, которые нам необходимо будет скопировать:

Добавляем данный репозиторий в наш yum:

vi /etc/yum.repos.d/mariadb.repo

 

И в открывшемся окне вставляем то, что у нас получилось после пункта 4), в нашем случае это:

# MariaDB 10.3 CentOS repository list - created 2020-02-26 15:31 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

2. Останавливаем веб-сервера, MariaDB и производим обновление:

systemctl stop mariadb httpd nginx
yum update MariaDB-server MariaDB-client

 

Как правило, после обновления, MariaDB перестанет запускаться. Исправим все проблемы:

3. Если возникла проблема:

[ERROR] mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 "No such file or directory")
[ERROR] Can't start server: can't create PID file: No such file or directory

 

Тогда, открываем файл:

vi /etc/tmpfiles.d/mariadb.conf

 

Добавляем в него:

 

d /var/run/mysqld 0755 mysql mysql -

 

После чего, последовательно выполняем несколько команд:

mkdir /var/run/mysqld
chown mysql: /var/run/mysqld
chmod 0755 /var/run/mysqld
systemctl daemon-reload
reboot

 

4. Запускаем MariaDB и добавляем в автозагрузку:

 

systemctl start mariadb
systemctl enable mariadb

 

5. Если не делали reboot, тогда запускаем веб-сервера:

systemctl start nginx httpd

 

6. Завершаем обновление MariaDB:

mysql_upgrade
systemctl restart mariadb

 

В ISPmanager все еще будет отображаться старая база данных, а также, невозможно будет работать с базами данных. Для исправления данной проблемы:

7. Создаем символическую ссылку:

ln -s /usr/sbin/mysqld /usr/libexec/mysqld

 

8. Настраиваем корректное отображение новой версии MariaDB в ISPmanager:

Заходим в ISPmanager под пользователем root, переходим в раздел «Серверы баз данных», выбираем наш сервер базы данных и нажимаем «Именить»:

Ставим галку на «Установить новый пароль» и жмем «Ок».

Обновление базы данных MariaDB было завершено. Для проверки установленной версии MariaDB, воспользуйтесь командой:

mysql -V

ISP Let’s Encrypt cli update

Автопродление сертификатов

Продление сертификатов проверяем каждый день через крон в 03:51 ночи:

# crontab -l -u root | grep letsencrypt
## ISPmanager letsencrypt cert update check
51 3 * * * /usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr letsencrypt.check.update >/dev/null 2>&1

При истечении 3 месяцев - сертификат будет продлен автоматически.

Как вручную запустить выдачу сертификата Let's Encrypt в ISPManager 5

Для того чтобы вручную запустить процесс выдачи сертификата Let's Encrypt - можно использовать команду:

# /usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.periodic

Новые бэкапы ISPtar в ISPmanager

Компания ISPsystem в панелях ISPmanager начиная с версии 5.51 выпустила новую версию бэкапов.
Называются ISPtar.
Сюда буду писать интересные фичи и ошибки.

Бэкап обного пользователя

ISPmanager 5 Lite
sbin/backup2 имя_пользователя

ISPmanager 5 Business
sbin/backup2_pro имя_пользователя

Если бэкап за сегодня есть а потестить надо, то указываем фэйковую дату:
bin/backup2_pro    user  --date 2016-04-01

Ошибка:
backup ERROR isptar finished with error 1. Output: No header found
Проблема в бинарнике ISPtar? бэкапим старый, ставим новый:
Можно командой
Centos 6 Centos 7
Debinan 7 Debian 8
wget -O /usr/local/mgr5/sbin/isptar http://sis-admin.su/wp-content/uploads/2016/01/ваша_версия_tar

Распаковка бэкапов вручную

Переходим в папку с бэкапом:

/usr/local/mgr5/sbin/isptar -x F2016-10-18.user.tgz data/www/dipris.ru/ -R /var/www/user/site.ru

Где

F2016-10-18.user.tgz — название бэкапа, берётся из файла F2016-10-18.user.tgz.part1 Такого файла нет.

data/www/dipris.ru/ — Файлы какого сайта необходимо восстановить

/var/www/user/site.ru — Куда восстановить данные

Базы лежат в папке .system/

Пример распаковки базы base:

/usr/local/mgr5/sbin/isptar -x F2016-10-18.user.tgz .system/db.mysql.base -R /var/www/user/site.ru

Полная документация разработчика