АРМ РКС PayControl v3 — различия между версиями

Материал из PayControl Wiki
Перейти к: навигация, поиск
(Конфигурирование)
(Конфигурирование)
Строка 180: Строка 180:
 
* указать идентификатор [[Прикладная система|прикладной системы]] (systemid);
 
* указать идентификатор [[Прикладная система|прикладной системы]] (systemid);
 
* раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS.
 
* раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS.
 +
====Конфигурирование с переменными окружения====
 +
Для подключения необходимо создать копию файла ''config.php.ENVIRONMENTS'' с именем ''config.php''. В новом файле:
 +
* указать адрес WSDL-схемы [[Вызов методов SOAP интерфейса|SOAP-интерфейса]] [[Сервер PayControl|сервера PCS]] (имеет вид ''http://pctest.local:8080/ws/PayControlServiceV3?wsdl'');
 +
* указать идентификатор [[Прикладная система|прикладной системы]] (systemid);
 +
* раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS.
 +
=====Apache=====
 
* разрешить чтение из переменных окружения, включив модуль mod_env.so с помощью - '''sudo a2enmod env'''
 
* разрешить чтение из переменных окружения, включив модуль mod_env.so с помощью - '''sudo a2enmod env'''
 
* добавить в конфиг Apache ''/etc/httpd2/conf/httpd2.conf'' перечень переменных, которые нужно забирать:
 
* добавить в конфиг Apache ''/etc/httpd2/conf/httpd2.conf'' перечень переменных, которые нужно забирать:
Строка 188: Строка 194:
 
     PassEnv PC_CRT_DB_CONNSTRING
 
     PassEnv PC_CRT_DB_CONNSTRING
 
</IfModule>
 
</IfModule>
 +
</syntaxhighlight>
 +
=====Nginx=====
 +
* добавить в конфиг Nginx ''/etc/nginx/sites-available/your-site-config'' перечень переменных, которые передавать.
 +
Пример:
 +
<syntaxhighlight lang="unixconfig">
 +
    location ~ \.php$ {
 +
        include snippets/fastcgi-php.conf;
 +
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; #убедитесь, что версия php указана верно и верен путь до файла *-fpm.sock
 +
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 +
        include fastcgi_params;
 +
        fastcgi_param PC_CRT_DB_CONNSTRING "pgsql:host=yourdbhost;port=5432;dbname=yourdbname";
 +
        fastcgi_param PC_CRT_DB_USERNAME "yourdbuser";
 +
        fastcgi_param PC_CRT_DB_PASSWORD "yourdbpass";
 +
    }
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Версия 00:00, 8 ноября 2024

АРМ РКС представляет из себя пользовательский Web-интерфейс, предоставляемый установленным в инфраструктуре заказчика Web-сервером с поддержкой исполнения PHP. Для получения запрашиваемой информации, Web-сервер АРМ РКС использует подключение к PCS через SOAP API, и подключение к БД PCS.

Настройка подключения

Для взаимодействия АРМ РКС необходимо установить Apache HTTP-сервер и PHP, в т.ч. модули php-soap и php-json.

Подключение к БД

Кроме того необходимо настроить подключение к БД с использованием PDO-драйверов:

PostgreSQL

Для начала нужно распаковать архив с файлами АРМ РКС в папку /var/www/html/.

Затем установить драйвер PostgreSQL для PHP и настроить подключение к БД с его помощью в конфигурационном файле.

sudo apt install php-pgsql

CentOS

На CentOS необходимо установить PHP (last) + php-pgsql + php-pdo + php-fpm.

Также необходимо разрешить подключение для IP адреса этого сервера к БД PC Server (даже в случае, если АРМ РКС и СУБД располагаются на одном хосте) - файл postgresql.conf, и добавить запись для разрешения аутентификации с этого IP - файл pg_hba.conf. Подробнее - Разрешение подключения с других хостов.

Для проверки успешности подключения, можно проверить информацию о PHP (http://rks_host:port/rks/phpinfo.php), должны отображаться установленные PDO-драйверы:

ALT Linux

1) Обновление сописка доcnупных пакетов apt-get update

2) Установка необходимых пакетов (вместо ? укажите номер версии php)

apt-get install php? php?-fpm-fcgi php?-pdo_pgsql php?-pgsql php?-soap php?-pdo php?-xml

3) Настройте конфигурацию apache в файле /etc/httpd2/conf/httpd2.conf, добавив строки

(проверьте, что путь и имя .sock файла соответствую вашей версии, и, что путь к файлам с АРМ РКС верен)

Пример:

# Подключение модуля proxy и proxy_fcgi для работы с php-fpm
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

# Обработка PHP-файлов через php-fpm сокет
<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php7-fpm/php7-fpm.sock|fcgi://localhost/"
</FilesMatch>

# Директория с PHP-файлами
<Directory "/var/www/html/rks/">
    AllowOverride All
    Require all granted
</Directory>

Также необходимо разрешить подключение для IP адреса этого сервера к БД PC Server (даже в случае, если АРМ РКС и СУБД располагаются на одном хосте) - файл postgresql.conf, и добавить запись для разрешения аутентификации с этого IP - файл pg_hba.conf. Подробнее - Разрешение подключения с других хостов.

Для проверки успешности подключения, можно проверить информацию о PHP (http://rks_host:port/rks/phpinfo.php), должны отображаться установленные PDO-драйверы:

Настройка подключения к БД PC Server

Разрешение подключения с других хостов
  1. Раскомментировать строку "listen_addresses = 'localhost'" в файле
    sudo vi /var/lib/pgsql/data/postgresql.conf
    
    и перечислить через запятую список хостов или указать "*". Требуется перезапуск после изменения параметра.
  2. Добавить для нового хоста запись в
    sudo vi /var/lib/pgsql/data/pg_hba.conf
    
    и указать требуемый тип аутентификации.

Oracle

Ubuntu

Инструкция для настройки PHP + PDO + OCI8

Проверено на Ubuntu 16.04 + php7.0.30 + apache2 + Oracle Instant Client 18.3

Centos

Для подключения к СУБД Oracle необходимо использовать PHP версии 7.x и установить Oracle-client. Подробное описание установки драйверов Oracle для PHP доступно по ссылке: https://www.codeproject.com/Articles/1231012/Installing-OCI-PHP-on-RHEL-or-CentOS.

Драйверы Oracle доступны по ссылке https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

Пример выполнения команд по установке:

sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php73
sudo yum install php php-oci8 php-pdo php-soap
sudo yum install oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
sudo sh -c "echo /usr/lib/oracle/19.3/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
php -v
sudo systemctl restart httpd

Для проверки успешности подключения, проверить информацию о PHP (выводится с помощью вызова функции phpinfo();), должны отображаться установленные PDO-драйверы:

Необходимо в SELinux предоставить Apache разрешение на установку сетевого подключение к СУБД Oracle:

semanage port -m -t http_port_t -p tcp 1521

Также, для успешного подключения к HTTPD необходимо разрешить подключения к порту 80 или 443:

sudo firewall-cmd --zone=public --add-service=http

MS SQL

Необходима установка драйвера dblib для PHP.

Ubuntu

Пример команды для установки драйвера для Ubuntu:

sudo apt install php7.0-sybase

CentOS 7

Команда для предоставления доступа Apache на подключение к другим ресурсам:

setsebool httpd_can_network_connect 1
sudo yum install epel-release php-soap php-json
sudo yum install php-mssql
sudo systemctl restart httpd.service

При установке php-mssql должен автоматически установиться php-pdo.

Для проверки успешности подключения, проверить информацию о PHP (выводится с помощью вызова функции phpinfo();), должны отображаться установленные PDO-драйверы:

CentOS 8

  • Команда для предоставления доступа Apache на подключение к другим ресурсам:
setsebool httpd_can_network_connect 1
  • Установка PHP:
sudo su
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
dnf module reset php
dnf module install php:remi-7.2
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf update
dnf install php php-pdo php-pear php-soap php-json php-fpm
  • Загрузка и установка драйвера Microsoft ODBC 17:
sudo curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql17
  • Установка драйверов PHP для Microsoft SQL Server
sudo yum install php-sqlsrv

Для проверки успешности подключения, проверить информацию о PHP (выводится с помощью вызова функции phpinfo();), должны отображаться установленные PDO-драйверы:

MS Windows

Развёртывание Apache и PHP
  • Скачать Apache, распаковать, например в c:\Apache24;
  • Скачать PHP 7, распаковать, например в c:\php;
  • Подключить PHP в Apache (файл c:\Apache24\conf\httpd.conf):
    LoadModule php7_module c:/php/php7apache2_4.dll
    <IfModule dir_module>
        DirectoryIndex index.html index.htm index.php
    </IfModule>
    	AddType application/x-httpd-php .php
    	AddHandler application/x-httpd-php .php
    PHPiniDir "c:/php"
    
  • Включить поддержку SOAP API в PHP (файл c:\php\php.ini):
    extension=soap
    
  • Добавить PDO SQL (pdo_sqlsrv) драйвер в PHP. Для этого:
    • Скачать драйвер Microsoft Drivers 5.6 for PHP for SQL Server (или свежее) с https://www.microsoft.com/en-us/download/details.aspx?id=57916 (при выпуске более свежей версии драйвера, возможно ссылка на него будет новая)
    • Распаковать в c:\php\ext
    • Сконфигурировать в c:\php\php.ini:
      extension=php_pdo_sqlsrv_73_ts_x64
      extension=php_sqlsrv_73_ts_x64.dll
      
  • Скачать и установить ODBC-драйвер https://docs.microsoft.com/ru-ru/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017
  • Распаковать файлы АРМ РКС в c:\Apache24\htdocs;
  • Установить службу
    c:\Apache24\bin\httpd.exe -k install
    
    при этом она будет автоматически запущена и будет включён автозапуск.

Конфигурирование подключения

Linux

Для удобства настройки, можно предоставить группе pc_admins доступ на запись в директорию web-сервера:

chown -Rv :pc_admins /var/www/html/
chmod -Rv g+w /var/www/html/

Конфигурирование

Для подключения необходимо создать копию файла config.php.DEFAULT с именем config.php. В новом файле:

Конфигурирование с переменными окружения

Для подключения необходимо создать копию файла config.php.ENVIRONMENTS с именем config.php. В новом файле:

Apache
  • разрешить чтение из переменных окружения, включив модуль mod_env.so с помощью - sudo a2enmod env
  • добавить в конфиг Apache /etc/httpd2/conf/httpd2.conf перечень переменных, которые нужно забирать:
<IfModule mod_env.c>
    PassEnv PC_CRT_DB_USERNAME
    PassEnv PC_CRT_DB_PASSWORD
    PassEnv PC_CRT_DB_CONNSTRING
</IfModule>
Nginx
  • добавить в конфиг Nginx /etc/nginx/sites-available/your-site-config перечень переменных, которые передавать.

Пример:

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; #убедитесь, что версия php указана верно и верен путь до файла *-fpm.sock
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param PC_CRT_DB_CONNSTRING "pgsql:host=yourdbhost;port=5432;dbname=yourdbname";
        fastcgi_param PC_CRT_DB_USERNAME "yourdbuser";
        fastcgi_param PC_CRT_DB_PASSWORD "yourdbpass";
    }

Системные требования

Требования указаны без учёта системных требований ОС.

Минимальные

  • ЦП: одно ядро;
  • ОЗУ: 100 MB;
  • Дисковое пространство: 150 MB.

Рекомендуемые

  • ЦП: одно ядро;
  • ОЗУ: 512 MB;
  • Дисковое пространство: 1 GB.