hero-bg

Инструкция по установке DV Pay (веб-инсталлятор)

Подготовка среды

Для успешной работы установщика DV Pay необходимо подготовить среду. Если какой-то из пакетов уже установлен - можете пропустить этот шаг. Обращаем внимание на минимально поддерживаемые версии каждого пакета.

Покупка домена

Вам потребуется домен, на котором будет размещен веб-интерфейс установщика,а в последствии - личный кабинет DV Pay. Купить домен можно у регистраторов GoDaddy, NameSilo или любого другого.

Далее в примерах мы используем домен mydomain.com

Настройка системы

Откройте файл /etc/selinux/config в редакторе:

vi /etc/selinux/config

Пропишите статус disabled

/etc/selinux/config
SELINUX=disabled

Перезагрузите систему.

Установите пакеты

Программное обеспечениеМинимальные требования
nginx1.14.1
redis5.0.0
MySQL8.0.0
PHP8 above and modules: fpm, cli, mysqlnd, pdo, pecl-memcache, xml, mbstring, zip, opcache, bcmath, intl, memcached, redis

Создайте пользователя

Создайте нового пользователя::

 adduser server && usermod -aG wheel server

Скачайте установщик

Создайте новую директорию и загрузите архив с установщиком в нее. Например в /home/server/merchant:

mkdir -p /home/server/merchant
cd /home/server/merchant
wget https://github.com/dvpay/web-installer/releases/download/1.0.2/install.zip && unzip install.zip

Выдайте права на директорию

Выдайте созданному юзеру права на директорию, куда загружен и распакован установщик:

chmod 755 /home/server
chown server:server -R /home/server/merchant

Добавьте конфигурацию nginx

В директории etc/nginx/conf.d создайте файл конфигурации с расширением .conf, назовите удобным именем:

touch mydomain.com.conf

Наполните файл конфигурации следующим кодом, подставляя свой домен (строка 4) и путь php82.sock (строки 30, 45 и 51):

server {

    listen 80;
    server_name mydomain.com;

    add_header 'Access-Control-Allow-Headers' '*' always;
    add_header 'Access-Control-Allow-Origin' '*' always;

    access_log  /var/log/nginx/merchant.access.log;
    error_log   /var/log/nginx/merchant.error.log;

    root        /home/server/merchant;
    index       index.php, index.html;

    location /install {
        root /home/server/merchant;
        try_files $uri $uri/ /index.html?$args;
    }

    location / {
       root /home/server/merchant/frontend;
       try_files $uri $uri/ /index.html?$args;
    }

    location ^~ /api {
        alias /home/server/merchant/public;
        try_files $uri $uri/ @api;

        location ~ .php {
            fastcgi_pass unix:/var/run/php82.sock;
            fastcgi_split_path_info ^(.+.php)(.*)$;
            include fastcgi.conf;
            fastcgi_param SCRIPT_FILENAME /home/server/merchant/public/index.php;
        }
    }

    location @api {
        rewrite /api/(.*)$ /api/index.php?/$1 last;
    }

    location ~ api.php$ {
        include fastcgi.conf;
        fastcgi_param PHP_VALUE "max_execution_time = 900";
        fastcgi_param PHP_VALUE "max_input_time = 900";
        fastcgi_pass unix:/var/run/php82.sock;
        fastcgi_read_timeout 900;
    }

    location ~ .php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/var/run/php82.sock;
    }

    location ~ /.(ht|svn|git) {
            deny all;
    }

}

Запуск установщика

Теперь все готово для запуска установщика - он проверит соответствие установленных пакетов и запросит необходимую информацию. Откройте браузер и перейдите по ссылке mydomain.com/install.html

1.Введите домен

Введите домен

2.Подключение базы данных

Введите домен

3.Задайте логин и пароль администратора личного кабинета

Введите адрес электронной почты, который будет использоваться в качестве логина, а также задайте пароль для учетной записи.

Введите домен

4.Окончание установки

После проверки доступа к базе данных начнется установка. По завершении установки нажмите кнопку «перейти на сайт» чтобы перейти к личному кабинету DV Pay. Войдите с помощью логина и пароля, который задали на прошлом шаге.

Введите домен

Настройка очередей и cron

Настройка конфигурации systemd

Перейдите в директорию /etc/systemd/system/ и создайте 3 файла конфигурации:

cd /etc/systemd/system
touch transfers.service [email protected]

Добавьте код конфигурации в каждый файл:

Для файла transfers.service:

[Unit]
Description=Transfer to Processing
After=network.target

[Service]
Type=simple
User=server

WorkingDirectory=/home/server
ExecStart=/usr/bin/php /home/server/backend/artisan withdrawal:loop

Restart=on-failure
RestartSec=3
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=transfers

[Install]
WantedBy=multi-user.target

Для файла [email protected]:

[Unit]
Description=Queue Worker %I
After=network.target

[Service]
User=server
Group=server
ExecStart=/usr/bin/php /home/server/backend/artisan queue:listen --queue=default,store-webhook,store-webhook-retry,notifications,monitor
Restart=on-failure

[Install]
WantedBy=multi-user.target

Запустите демонов:

systemctl enable transfers.service
systemctl enable [email protected]
systemctl enable [email protected]

systemctl start transfers.service
systemctl start [email protected]
systemctl start [email protected]

Настройка cron

Запустите редактор cron:

crontab -e

Добавьте настройку регулярного запуска:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1