Зміст
Налаштування віртуальної машини для роботи з PMon
Налаштування для Debian 11
Встановіть необхідний пакет для використання sudo:
apt install sudo -y
Встановіть необхідні залежності для роботи з пакетами через HTTPS:
sudo apt install apt-transport-https lsb-release ca-certificates wget -y
Додайте GPG-ключ для репозиторію PHP:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
Додайте репозиторій PHP до списку джерел пакетів:
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Оновіть інформацію про пакети:
sudo apt update
Виконайте оновлення пакетів:
sudo apt upgrade -y
Встановіть PHP версії 8.2 та необхідний модуль Apache:
sudo apt install php8.2 libapache2-mod-php8.2
Встановлення Redis-Server:
sudo apt-get install redis-server
Ввімкніть автозапуск служби Apache:
sudo systemctl enable apache2
Перезапустіть службу Apache для застосування змін:
sudo systemctl restart apache2
Встановіть необхідні модулі PHP:
sudo apt install php8.2-{bcmath,snmp,xml,mysql,zip,intl,ldap,gd,cli,imagick,curl,mbstring,pgsql,opcache,soap,cgi} -y
Встановіть Subversion:
sudo apt install subversion -y
sudo apt install php8.2 php8.2-cli php8.2-fpm -y
Перезапустіть знову Apache для застосування змін:
sudo systemctl restart apache2
Встановіть локаль для системи:
localectl set-locale LANG=en_US.UTF-8
Встановіть сервер баз даних MariaDB:
sudo apt install mariadb-server
Перевірте статус служби MariaDB:
sudo systemctl status mariadb
Ввімкніть автозапуск служби MariaDB:
sudo systemctl enable mariadb
Запустіть службу MariaDB:
sudo systemctl start mariadb
Налаштуйте безпеку сервера MariaDB:
sudo mysql_secure_installation
Увійдіть до MySQL:
sudo mysql -u root -p
Створіть базу даних “dbmonitor”:
CREATE DATABASE dbmonitor DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Надайте всі права користувачу “pmonuser” на базу даних:
GRANT ALL PRIVILEGES ON dbmonitor.* TO "pmonuser"@"localhost" IDENTIFIED BY "password123"; GRANT ALL PRIVILEGES ON dbmonitor.* TO "pmonuser"@"localhost"; FLUSH PRIVILEGES; exit;
Знову перезапустіть службу Apache:
sudo systemctl restart apache2
timedatectl set-timezone Europe/Kiev
chmod +x /var/www/html/poller.php chmod +x /var/www/html/monitor.php
Фіксик api.php
<VirtualHost *:80> ServerName your_domain.com DocumentRoot /var/www/html SetEnvIf Request_URI "^/api\.php$" internal_request SetEnvIf Remote_Addr "127\.0\.0\.1" internal_request SetEnvIf Remote_Addr "::1" internal_request CustomLog ${APACHE_LOG_DIR}/access.log combined env=!internal_request </VirtualHost>
Налаштування Cron
CronPon призначений для створення процесу CRON, який забезпечує можливість управління на рівні операційної системи, включаючи запуск, зупинку та перезавантаження. Цей модуль спрощує автоматизацію завдань у системі PMon шляхом взаємодії безпосередньо з керуванням процесами операційної системи
CRON - основий
nano /etc/systemd/system/cronpon.service
Вміст:
[Unit] Description=Pmon Worker Wants=cronpon.timer [Service] Type=simple ExecStart=/usr/bin/php /var/www/html/cron.php User=www-data Group=www-data WorkingDirectory=/var/www/html RestartSec=5 [Install] WantedBy=multi-user.target
sudo nano /etc/systemd/system/cronpon.timer
Вміст:
[Unit] Description=Run project-worker every 10 seconds Requires=cronpon.service [Timer] Unit=cronpon.service OnCalendar=*:*:0/10 [Install] WantedBy=timers.target
Додатковий функції:
sudo nano /etc/systemd/system/worker.service
Вміст:
[Unit] Description=Worker for processing tasks from Redis queue After=network.target [Service] ExecStart=/usr/bin/php /var/www/html/worker.php WorkingDirectory=/var/www/html Restart=always User=www-data Group=www-data RestartSec=5 StandardOutput=journal StandardError=inherit [Install] WantedBy=multi-user.target
Збережіть файл і перезавантажте конфігурацію systemd
sudo systemctl daemon-reload
Активуйте та запустіть сервіс
sudo systemctl enable cronpon.service sudo systemctl start cronpon.service sudo systemctl enable worker sudo systemctl start worker
Перевірка статусу
systemctl status cronpon
Налаштування Mod_Rewrite
Включити mod_rewrite
sudo a2enmod rewrite
Перезапустити службу Apache
sudo systemctl restart apache2
Редагувати apache2.conf:
Знайти в файлі /etc/apache2/apache2.conf:
AllowOverride none
Замінити на
AllowOverride All
Встановлення Composer
cd /var/www/html/
wget https://getcomposer.org/composer.phar
chmod a+x composer.phar
sudo mv composer.phar /usr/local/bin/composer
Встановлення Symfony, Spatie, JJG\Ping
cd /var/www/html/
composer require symfony/process
composer require predis/predis
composer require enqueue/redis
composer require enqueue/simple-client
Використовується для моніторингу Ip-address
composer require geerlingguy/ping