АРМ РКС PayControl v3
АРМ РКС представляет из себя пользовательский 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
Разрешение подключения с других хостов
- Раскомментировать строку "listen_addresses = 'localhost'" в файле и перечислить через запятую список хостов или указать "*". Требуется перезапуск после изменения параметра.
sudo vi /var/lib/pgsql/data/postgresql.conf
- Добавить для нового хоста запись в и указать требуемый тип аутентификации.
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
Конфигурирование подключения
Конфигурирование
Для подключения необходимо создать копию файла config.php.DEFAULT с именем config.php. В новом файле:
- указать адрес WSDL-схемы SOAP-интерфейса сервера PCS (имеет вид http://pctest.local:8080/ws/PayControlServiceV3?wsdl);
- указать идентификатор прикладной системы (systemid);
- раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS.
Конфигурирование с переменными окружения Linux
Для подключения необходимо создать копию файла config.php.ENVIRONMENTS с именем config.php. В новом файле:
- указать адрес WSDL-схемы SOAP-интерфейса сервера PCS (имеет вид http://pctest.local:8080/ws/PayControlServiceV3?wsdl);
- указать идентификатор прикладной системы (systemid);
- раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS.
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 перечень переменных, которые передавать PC_CRT_DB_CONNSTRING, PC_CRT_DB_USERNAME, PC_CRT_DB_PASSWORD.
Пример:
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.