December 29, 2021

Ubuntu20: Установка клиента IBM WebSphere MQ + модуль для php

Если хотите работать с Websphere MQ с ипользованием PHP - это квест.

Установка делается в несколько шагов:

  1. Скачиваем и устаналиваем WebSphere MQ
  2. Скачиваем и устанавливаем PHP-MQSERIES (чтобы работать с WebSphere MQ)

Я пробовал собрать тоже самое для MacOS (для MAMP) - не получилось, сам модуль для PHP - не компилируется.

Установка WebSphere MQ

Проходим на https://www-945.ibm.com/support/fixcentral/swg/downloadFixes?parent=ibm~WebSphere&product=ibm/WebSphere/WebSphere+MQ&release=7.5.0.8&platform=All&function=fixId&fixids=7.5.0.8-WS-MQC-LinuxX64&useReleaseAsTarget=true&includeRequisites=1&includeSupersedes=0&downloadMethod=http&login=true

И скачиваем 7.5.0.8 Client install image for WebSphere MQ on Linux X86-64

Чтобы далеко не ходить, вот ссылка на по состоянию на 2022 год:

wget https://ak-delivery04-mul.dhe.ibm.com/sdfdl/v2/sar/CM/WS/06zly/1/Xa.2/Xb.jusyLTSp44S0eZIuphr9nceu78L-EaopWceuAGmXuBaqzF1lbPcU5h70t_U/Xc.CM/WS/06zly/1/7.5.0.8-WS-MQC-LinuxX64.tar.gz/Xd./Xf.LPR.D1VK/Xg.11572581/Xi.habanero/XY.habanero/XZ.B2dHyxmWZrlGDA-lQIjtN806oDQiqKAn/7.5.0.8-WS-MQC-LinuxX64.tar.gz

Последовательность шагов (всё делаю из под root/sudo):

cd ~
mkdir tmp
wget https://ak-delivery04-mul.dhe.ibm.com/sdfdl/v2/sar/CM/WS/06zly/1/Xa.2/Xb.jusyLTSp44S0eZIuphr9nceu78L-EaopWceuAGmXuBaqzF1lbPcU5h70t_U/Xc.CM/WS/06zly/1/7.5.0.8-WS-MQC-LinuxX64.tar.gz/Xd./Xf.LPR.D1VK/Xg.11572581/Xi.habanero/XY.habanero/XZ.B2dHyxmWZrlGDA-lQIjtN806oDQiqKAn/7.5.0.8-WS-MQC-LinuxX64.tar.gz

Содержимое скаченного распаковываем в /root/tmp/mqseries

Далее, ставим необходимый минимум:

apt install rpm
cd /root/tmp/mqseries
./mqlicense.sh -accept
rpm -ivh MQSeriesRuntime-7.5.0-8.x86_64.rpm
rpm -ivh MQSeriesClient-7.5.0-8.x86_64.rpm
rpm -ivh MQSeriesSDK-7.5.0-8.x86_64.rpm

Теперь надо поставить модуль PHP:

Фишка в том, что стандартный модуль, которых хранится в pecl (на момент написания - v0.15.0) с php8.0 не ставится, а вот если скачать его же с исходников на gitHub - ставится.

Делаем следующее:

cd /root/tmp
mkdir php_mqseries
cd php_mqseries
wget https://github.com/php/pecl-networking-mqseries/archive/refs/heads/master.zip

Распаковываем содержимое в ту же папку, куда скачали, там внутри архива папочка, вот ее содержимое кладем в /root/tmp/php_mqseries

Дальше:

cd /root/tmp/php_mqseries
phpize
./configure --with-libdir=lib64 
make

Готово, модуль скомпилировался, теперь добавляем его в PHP.

Копируем готовый модуль из /root/tmp/php_mqseries/modules/mqseries.so в папку /usr/lib/php/20200930

В файлы:

nano /etc/php/8.0/cli/php.ini 
nano /etc/php/8.0/apache2/php.ini

добавляем:

extension=mqseries

Скорректируйте путь до файла php.ini в соответствии с вашей версией PHP