Подключите PHP к IBM i (AS / 400)

У меня есть предстоящий проект, в котором мне нужно будет подключить наш веб-сайт (PHP5/Apache 1.3/OpenBSD 4.1) к нашей серверной системе, работающей на iSeries с OS400 V5R3, чтобы я мог получить доступ к некоторым таблицам, хранящимся там. Я кое-что проверил, но наткнулся на некоторые препятствия.

Из того, что я видел, расширения DB2 и программное обеспечение DB2 от IBM работают только под Linux. Я пробовал скомпилировать расширения со всем программным обеспечением от IBM и даже безуспешно пробовал их предварительно скомпилированное расширение ibm_db2. IBM поддерживает только Linux, поэтому я включил эмуляцию Linux в ядре, но это, похоже, ничего не помогло.

Если кто-то сталкивался с тем, чтобы заставить все работать изначально под OpenBSD, это было бы здорово, но я думаю, что мне, возможно, придется настроить второй сервер под управлением CentOS с установленной DB2 (скорее всего, через ZendCore для IBM, поскольку он, похоже, это для меня) и драйвер, чтобы я мог настроить небольшой сервер транзакций, на котором я мог бы публиковать сообщения и получить JSON-представление данных DB2, которые мне нужны.

Второй вариант кажется излишним или у кого-то есть идеи получше?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
34
0
8 345
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Вы смотрели подключение к серверу с помощью unixODBC? Если я правильно помню, он поддерживает IBM DB2 и компилируется на OpenBSD. Ознакомьтесь с http://www.php.net/odbc для получения дополнительной информации о PHP.

Если вы не можете заставить это работать, настройка веб-службы на сервере Linux может быть всем, что вы можете сделать.

Похоже, веб-сервис станет для меня ответом. В производственном ящике я бы предпочел не компилировать и поддерживать мою собственную специальную установку PHP, поскольку, согласно документации PHP, необходимо скомпилировать поддержку ODBC.

Веб-сервис почти наверняка лучший вариант. Я уверен, что вы уже подумали об этом, но поскольку вы используете PHP с обеих сторон, вы можете немного сократить время, используя serialize () для создания данных ответа вместо создания правильного XML-документа. В долгосрочной перспективе он менее гибкий, но, вероятно, поможет вам быстрее начать работу.

Во-вторых, @John Downey, у меня есть возможность подключения для работы с PHP на AS / 400 с unixODBC.

Проверьте свой phpinfo (), чтобы узнать, доступен ли в нем unixODBC. Мне не нужно было компилировать его на SLES 10.

Действительно, веб-сервис кажется отличным способом решить проблему. Один из способов избежать полностью отдельной ОС - написать веб-сервис на Java поверх инструментов AS400 для Java (которые, кстати, довольно хороши). Это должно, по крайней мере, позволить вам запускать уровень обслуживания в окне OpenBSD.

Почему бы вам не заглянуть в PHP Connector для iSeries, вместо того, чтобы настраивать второй блок? Ребята из моих мэйнфреймов сказали, что здесь очень легко установить на нашем iSeries.

Мы написали простой сервер на PHP, который загружает модели данных из данных DB2, сериализует их и возвращает вызывающей стороне. Этот подход означает, что только другое приложение PHP может использовать службу, но это намного быстрее на обоих концах, чтобы просто сериализовать объект и отправить его по конвейеру.

Вот PDF-файл от IBM по теме: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Вы также можете подключиться напрямую, используя стандартный драйвер ODBC. Версия для IBM обычно дает вам больше возможностей, например, возможность вызывать программы и тому подобное. Если вам нужны только SQL и хранимые процедуры, ODBC должен работать.

Почему бы не использовать PDO из PHP? Я должен здесь догадываться, поскольку я не смог найти общедоступный список всех портов, доступных для OpenBSD, но, поскольку есть порт для FreeBSD, NetBSD и т. д., Возможно, вам тоже повезет.

(Я предполагаю, что даже несмотря на то, что OpenBSD ссылается на руководство FreeBSD porter's, Freshports не подходит для вашей системы?)

Если PDO недоступен, и поскольку я надеюсь, что вы используете порты, и по следующей ссылке доступен php5-ODBC:

Итак, если вы управляете своей системой через порты, вот вам и указатели.

Надеюсь, это поможет!

Другие вопросы по теме