АРМ РКС PayControl v3 — различия между версиями
(→Nginx) |
|||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
АРМ РКС представляет из себя пользовательский Web-интерфейс, предоставляемый установленным в инфраструктуре заказчика Web-сервером с поддержкой исполнения PHP. Для получения запрашиваемой информации, Web-сервер АРМ РКС использует подключение к PCS через SOAP API, и подключение к БД PCS. | АРМ РКС представляет из себя пользовательский Web-интерфейс, предоставляемый установленным в инфраструктуре заказчика Web-сервером с поддержкой исполнения PHP. Для получения запрашиваемой информации, Web-сервер АРМ РКС использует подключение к PCS через SOAP API, и подключение к БД PCS. | ||
=Настройка подключения= | =Настройка подключения= | ||
− | Для взаимодействия АРМ РКС необходимо установить Apache HTTP-сервер и PHP, в т.ч. модули php-soap. | + | Для взаимодействия АРМ РКС необходимо установить Apache HTTP-сервер и PHP, в т.ч. модули php-soap и php-json. |
==Подключение к БД== | ==Подключение к БД== | ||
Кроме того необходимо настроить подключение к БД с использованием PDO-драйверов: | Кроме того необходимо настроить подключение к БД с использованием PDO-драйверов: | ||
Строка 9: | Строка 9: | ||
Затем установить драйвер [[PostgreSQL]] для [[PHP]] и настроить подключение к БД с его помощью в конфигурационном файле. | Затем установить драйвер [[PostgreSQL]] для [[PHP]] и настроить подключение к БД с его помощью в конфигурационном файле. | ||
<syntaxhighlight lang="bash">sudo apt install php-pgsql</syntaxhighlight> | <syntaxhighlight lang="bash">sudo apt install php-pgsql</syntaxhighlight> | ||
− | ==== | + | ====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-драйверы: | ||
+ | <gallery> | ||
+ | php-pdo-pgsql.png|PHP Info при настроенных драйверах PostgreSQL | ||
+ | </gallery> | ||
+ | |||
+ | ====ALT Linux==== | ||
+ | |||
+ | 1) Обновление сописка доcnупных пакетов | ||
+ | apt-get update | ||
+ | |||
+ | 2) Установка необходимых пакетов (вместо '''?''' укажите номер версии php) | ||
+ | |||
+ | <syntaxhighlight lang="bash">apt-get install php? php?-fpm-fcgi php?-pdo_pgsql php?-pgsql php?-soap php?-pdo php?-xml</syntaxhighlight> | ||
+ | |||
+ | 3) Настройте конфигурацию apache в файле ''/etc/httpd2/conf/httpd2.conf'', добавив строки | ||
+ | |||
+ | (проверьте, что путь и имя .sock файла соответствую вашей версии, и, что путь к файлам с АРМ РКС верен) | ||
+ | |||
+ | Пример: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | # Подключение модуля 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> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Также необходимо разрешить подключение для IP адреса этого сервера к БД PC Server (даже в случае, если АРМ РКС и СУБД располагаются на одном хосте) - файл ''postgresql.conf'', и добавить запись для разрешения аутентификации с этого IP - файл ''pg_hba.conf''. Подробнее - [[#Разрешение подключения с других хостов|Разрешение подключения с других хостов]]. | ||
− | Для проверки успешности подключения, проверить информацию о PHP ( | + | Для проверки успешности подключения, можно проверить информацию о PHP (http://rks_host:port/rks/phpinfo.php), должны отображаться установленные PDO-драйверы: |
<gallery> | <gallery> | ||
php-pdo-pgsql.png|PHP Info при настроенных драйверах PostgreSQL | php-pdo-pgsql.png|PHP Info при настроенных драйверах PostgreSQL | ||
</gallery> | </gallery> | ||
+ | |||
+ | [[#Конфигурирование подключения|Настройка подключения к БД PC Server]] | ||
+ | =====Разрешение подключения с других хостов===== | ||
+ | #Раскомментировать строку "listen_addresses = 'localhost'" в файле <syntaxhighlight lang="bash">sudo vi /var/lib/pgsql/data/postgresql.conf</syntaxhighlight> и перечислить через запятую список хостов или указать "*". Требуется перезапуск после изменения параметра. | ||
+ | #Добавить для нового хоста запись в <syntaxhighlight lang="bash">sudo vi /var/lib/pgsql/data/pg_hba.conf</syntaxhighlight> и указать требуемый тип аутентификации. | ||
===Oracle=== | ===Oracle=== | ||
Строка 57: | Строка 102: | ||
Команда для предоставления доступа Apache на подключение к другим ресурсам: | Команда для предоставления доступа Apache на подключение к другим ресурсам: | ||
<syntaxhighlight lang="bash">setsebool httpd_can_network_connect 1</syntaxhighlight> | <syntaxhighlight lang="bash">setsebool httpd_can_network_connect 1</syntaxhighlight> | ||
− | <syntaxhighlight lang="bash">sudo yum install epel-release php-soap | + | <syntaxhighlight lang="bash">sudo yum install epel-release php-soap php-json |
sudo yum install php-mssql | sudo yum install php-mssql | ||
sudo systemctl restart httpd.service</syntaxhighlight> | sudo systemctl restart httpd.service</syntaxhighlight> | ||
Строка 67: | Строка 112: | ||
Файл:Centos pdo mssql.png|Подключённый MSSQL как PDO в PHP | Файл:Centos pdo mssql.png|Подключённый MSSQL как PDO в PHP | ||
</gallery> | </gallery> | ||
+ | |||
====CentOS 8==== | ====CentOS 8==== | ||
*Команда для предоставления доступа Apache на подключение к другим ресурсам: | *Команда для предоставления доступа Apache на подключение к другим ресурсам: | ||
Строка 80: | Строка 126: | ||
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms | subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms | ||
dnf update | dnf update | ||
− | dnf install php php-pdo php-pear php-soap | + | dnf install php php-pdo php-pear php-soap php-json php-fpm |
</syntaxhighlight> | </syntaxhighlight> | ||
*Загрузка и установка драйвера Microsoft ODBC 17: | *Загрузка и установка драйвера Microsoft ODBC 17: | ||
Строка 124: | Строка 170: | ||
* Распаковать файлы АРМ РКС в ''c:\Apache24\htdocs''; | * Распаковать файлы АРМ РКС в ''c:\Apache24\htdocs''; | ||
* Установить службу <syntaxhighlight lang="bat">c:\Apache24\bin\httpd.exe -k install</syntaxhighlight> при этом она будет автоматически запущена и будет включён автозапуск. | * Установить службу <syntaxhighlight lang="bat">c:\Apache24\bin\httpd.exe -k install</syntaxhighlight> при этом она будет автоматически запущена и будет включён автозапуск. | ||
− | |||
==Конфигурирование подключения== | ==Конфигурирование подключения== | ||
− | |||
− | |||
− | |||
===Конфигурирование=== | ===Конфигурирование=== | ||
Для подключения необходимо создать копию файла ''config.php.DEFAULT'' с именем ''config.php''. В новом файле: | Для подключения необходимо создать копию файла ''config.php.DEFAULT'' с именем ''config.php''. В новом файле: | ||
* указать адрес WSDL-схемы [[Вызов методов SOAP интерфейса|SOAP-интерфейса]] [[Сервер PayControl|сервера PCS]] (имеет вид ''http://pctest.local:8080/ws/PayControlServiceV3?wsdl''); | * указать адрес WSDL-схемы [[Вызов методов SOAP интерфейса|SOAP-интерфейса]] [[Сервер PayControl|сервера PCS]] (имеет вид ''http://pctest.local:8080/ws/PayControlServiceV3?wsdl''); | ||
* указать идентификатор [[Прикладная система|прикладной системы]] (systemid); | * указать идентификатор [[Прикладная система|прикладной системы]] (systemid); | ||
− | * раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать параметры для подключения [[ | + | * раскомментировать блок с параметрами подключения к соответствующей СУБД. Указать в переменных окружения параметры для подключения БД PCS. |
+ | ====Конфигурирование с переменными окружения Linux==== | ||
+ | Для подключения необходимо создать копию файла ''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''' | ||
+ | * добавить в конфиг Apache ''/etc/httpd2/conf/httpd2.conf'' перечень переменных, которые нужно забирать: | ||
+ | <syntaxhighlight lang="unixconfig"> | ||
+ | <IfModule mod_env.c> | ||
+ | PassEnv PC_CRT_DB_USERNAME | ||
+ | PassEnv PC_CRT_DB_PASSWORD | ||
+ | PassEnv PC_CRT_DB_CONNSTRING | ||
+ | </IfModule> | ||
+ | </syntaxhighlight> | ||
+ | =====Nginx===== | ||
+ | * добавить в конфиг Nginx ''/etc/nginx/sites-available/your-site-config'' перечень переменных, которые передавать PC_CRT_DB_CONNSTRING, PC_CRT_DB_USERNAME, PC_CRT_DB_PASSWORD. | ||
+ | Пример: | ||
+ | <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> | ||
=Системные требования= | =Системные требования= |
Текущая версия на 00:08, 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
Разрешение подключения с других хостов
- Раскомментировать строку "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.