Инструкция по установке DV Pay (веб-инсталлятор)
Подготовка среды
Для успешной работы установщика DV Pay необходимо подготовить среду. Если какой-то из пакетов уже установлен - можете пропустить этот шаг. Обращаем внимание на минимально поддерживаемые версии каждого пакета.
Покупка домена
Вам потребуется домен, на котором будет размещен веб-интерфейс установщика,а в последствии - личный кабинет DV Pay. Купить домен можно у регистраторов GoDaddy, NameSilo или любого другого.
Далее в примерах мы используем домен mydomain.com
Настройка системы
Откройте файл /etc/selinux/config в редакторе:
vi /etc/selinux/config
Пропишите статус disabled
/etc/selinux/config
SELINUX=disabled
Перезагрузите систему.
Установите пакеты
Программное обеспечение | Минимальные требования |
---|---|
nginx | 1.14.1 |
redis | 5.0.0 |
MySQL | 8.0.0 |
PHP | 8 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