Чтобы создать расширение в ISPConfig, которое выполняет задание по записи файла, вам нужно создать простой PHP-файл, который будет вызываться демоном. Этот подход не требует использования веб-интерфейса и API, так как вы напрямую интегрируете свой код в систему заданий сервера.
Шаг 1: Создание файла задания
Создайте файл задания для вашего плагина. В этом примере файл будет называться hello.job.php и будет содержать логику для записи файла.
- Создайте файл в директории
server/plugins-available/.bashsudo nano /usr/local/ispconfig/server/plugins-available/hello.job.phpИспользуйте код с осторожностью.
Вставьте в этот файл следующий PHP-код:
php
<?php
// Подключение к ISPConfig. Необходимо для использования глобальных переменных и функций.
require_once('/usr/local/ispconfig/server/lib/config.inc.php');
require_once('/usr/local/ispconfig/server/lib/app.inc.php');
// Проверяем, что скрипт запущен демоном, а не через веб-интерфейс
if (PHP_SAPI !== 'cli') {
die('This script can only be run from the command line.');
}
// Логика записи файла
$file_path = '/tmp/hello_from_ispconfig.log';
$message = "Hello, ISPConfig daemon!\n";
$timestamp = date('Y-m-d H:i:s');
$log_entry = "[$timestamp] $message";
// Открываем файл для записи. 'a' — для добавления в конец.
file_put_contents($file_path, $log_entry, FILE_APPEND);
// Добавляем сообщение в лог демона
$app->log('Hello job executed successfully.', 'INFO');
?>
Шаг 2: Включение плагина через символическую ссылку
Чтобы демон ISPConfig узнал о вашем новом задании, нужно создать символическую ссылку на файл в директории server/plugins-enable/.
bash
sudo ln -s /usr/local/ispconfig/server/plugins-available/hello.job.php /usr/local/ispconfig/server/plugins-enabled/hello.job.php
Шаг 3: Настройка запуска задания
Чтобы демон ISPConfig регулярно запускал ваше задание, нужно добавить его в список cron-заданий в конфигурации сервера.
- Откройте файл
server/lib/config.inc.php:sudo nano /usr/local/ispconfig/server/lib/config.inc.php
Найдите массив $conf['server']['cron_jobs'] и добавьте в него имя вашего файла:
php
$conf['server']['cron_jobs'] = array(
'cron.job.php',
'cron_daily.job.php',
'cron_weekly.job.php',
'cron_monthly.job.php',
'hello.job.php' // Добавляем ваше задание
);
Шаг 4: Перезапуск демона ISPConfig
После внесения изменений демон должен быть перезапущен, чтобы применить новую конфигурацию.
bash
sudo systemctl restart ispconfig
Шаг 5: Проверка
- Дождитесь выполнения задания. Демон ISPConfig запускает cron-задания с определённым интервалом (обычно каждую минуту).
- Проверьте наличие файла. Убедитесь, что файл
/tmp/hello_from_ispconfig.logсоздан и содержит ваши записи.bashcat /tmp/hello_from_ispconfig.logИспользуйте код с осторожностью.
Проверьте лог демона ISPConfig. Вы можете найти записи о выполнении вашего задания в системных логах.
bash
grep "hello job" /var/log/ispconfig/ispconfig.log
Важное замечание:
Этот метод напрямую интегрирует код в систему демона ISPConfig. Это подходит для простых задач, но для более сложных или зависимых от данных операций рекомендуется использовать API или систему cron-заданий через веб-интерфейс.