Перейти до вмісту

Інструкція по розгортанню K2 ERP PHP

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні

K2 ERP PHP — це система класу ERP, що розгортається у вебсередовищі на базі PHP, Nginx та Linux. Система може бути встановлена з наявних програмних кодів і використовується для автоматизації бізнес-процесів підприємства.

Призначення

K2 ERP PHP призначена для роботи як вебзастосунок, що виконується на сервері з підтримкою PHP. Розгортання системи передбачає підготовку серверного середовища, налаштування вебсервера, встановлення необхідних модулів PHP, підключення програмного коду з репозиторію та перевірку працездатності системи.

Системне середовище

Для розгортання K2 ERP PHP можуть використовуватися операційні системи сімейства Linux, зокрема:

  • Debian;
  • Ubuntu;
  • інші сумісні Linux-дистрибутиви.

Основними компонентами серверного середовища є:

  • PHP;
  • PHP-FPM;
  • Nginx;
  • Git;
  • база даних, сумісна з PHP-модулями системи;
  • інструменти для адміністрування та розробки.

Підготовка середовища розробника

Перед розгортанням системи можуть бути встановлені допоміжні програми для роботи з файлами, кодом, базами даних і віддаленими серверами.

Приклади корисних інструментів:

  • Midnight Commander;
  • htop;
  • PuTTY;
  • FileZilla;
  • Git;
  • SSH;
  • Krusader;
  • KDiff3;
  • Kompare;
  • DBeaver;
  • Visual Studio Code;
  • PhpStorm.

Для оновлення системи та встановлення базових інструментів можуть використовуватися команди:

 sudo -s apt update apt upgrade

apt install mc htop putty filezilla git ssh

PHP

На різних серверах можуть використовуватися різні версії PHP. Для первинного налаштування проєкту рекомендується використовувати ту саму версію PHP, яка встановлена на робочому сервері.

Щоб перевірити поточну версію PHP, використовується команда:

 php -v

Встановлення репозиторію PHP

Для встановлення різних версій PHP може використовуватися репозиторій Ondřej Surý:

 sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update

Встановлення версій PHP

Приклади встановлення PHP 7.4 та PHP 8.1:

 sudo apt-get install php7.4 php7.4-cli php7.4-fpm sudo apt-get install php8.1 php8.1-cli php8.1-fpm

Перевірка встановлених версій:

 php7.4 -v php8.1 -v

Перемикання між версіями PHP

Для перемикання між версіями PHP використовується механізм `update-alternatives`:

 sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74 sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.1 81

sudo update-alternatives --config php

Необхідні модулі PHP

Для роботи системи можуть знадобитися такі PHP-модулі:

  • mysql;
  • xml;
  • curl;
  • gd;
  • mbstring;
  • zip;
  • soap;
  • intl.

Приклад встановлення модулів для PHP 8.1:

 sudo apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-xml php8.1-curl php8.1-gd php8.1-mbstring php8.1-zip php8.1-soap php8.1-intl

Приклад встановлення модулів для PHP 7.4:

 sudo apt install php7.4-fpm php7.4-cli php7.4-mysql php7.4-xml php7.4-curl php7.4-gd php7.4-mbstring php7.4-zip php7.4-soap php7.4-intl

Nginx

Для обслуговування вебзастосунку використовується вебсервер Nginx.

Встановлення та запуск Nginx:

 apt install nginx sudo systemctl start nginx sudo systemctl enable nginx

Приклад конфігурації Nginx

Нижче наведено приклад конфігурації віртуального хоста Nginx для PHP-проєкту:

 server {
    listen 80;
    server_name localhost;

    root /mnt/prog/p/proj/php/real/clicktransfert.com/www;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 24h;
        log_not_found off;
    }

    rewrite /files/$ /index.php last;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;

        fastcgi_pass unix:/run/php/php7.4-fpm.sock;

        fastcgi_param PHP_VALUE "display_errors=on";
        fastcgi_param PHP_VALUE "display_startup_errors=on";

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f rs@corp2.net";
    }
}

У параметрі `fastcgi_pass` необхідно вказати сокет тієї версії PHP-FPM, яка використовується проєктом. Наприклад:

 fastcgi_pass unix:/run/php/php7.4-fpm.sock;

або:

 fastcgi_pass unix:/run/php/php8.1-fpm.sock;

Налагодження

Для налагодження PHP-застосунку може використовуватися Xdebug.

Перевірка наявності Xdebug:

 php -m | grep xdebug

Встановлення Xdebug через пакетний менеджер:

 sudo apt-get install php-xdebug

Альтернативне встановлення через PECL:

 pecl install xdebug

Приклад налаштування Xdebug

Налаштування додаються до відповідного файлу `php.ini`, наприклад:

  • `/etc/php/7.x/cli/php.ini`;
  • `/etc/php/7.x/apache2/php.ini`;
  • `/etc/php/7.x/fpm/php.ini`.

Приклад конфігурації:

 [xdebug] zend_extension=xdebug.so xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=127.0.0.1 xdebug.client_port=9003

Середовище розробки

Для роботи з кодом системи можуть використовуватися різні IDE та редактори коду.

Одним із професійних середовищ для PHP-розробки є PhpStorm. Також може використовуватися безкоштовний і кросплатформний редактор Visual Studio Code.

Завантаження програмного коду

Програмний код системи може бути отриманий із Git-репозиторію. Для цього проєкт клонують у робочу директорію вебсервера, наприклад у папку `www` або `k2shop`, залежно від структури репозиторію.

Перед клонуванням нового коду стару папку проєкту рекомендується перейменувати або зберегти як резервну копію.

Приклад загальної команди:

 git clone <repository-url> www

Після клонування у робочій папці мають з’явитися ті самі каталоги та файли, що були в попередній версії системи, але з оновленим кодом.

Перевірка після оновлення

Після завантаження або оновлення коду з Git необхідно перевірити, що система працює так само, як і до оновлення.

Рекомендовано перевірити:

  • відкриття головної сторінки системи;
  • роботу PHP-FPM;
  • коректність конфігурації Nginx;
  • доступність статичних файлів;
  • підключення до бази даних;
  • роботу основних модулів системи;
  • наявність помилок у логах.

Робота з Git

Під час подальшої розробки необхідно дотримуватися стандартного циклу роботи з Git:

  • отримання актуальних змін через `pull`;
  • внесення змін у код;
  • перевірка працездатності;
  • фіксація змін через `commit`;
  • відправка змін у репозиторій через `push`;
  • додавання змістовних коментарів до комітів.

Див. також

Примітки

Шаблон:Примітки

Посилання