РЕДАКТИРОВАТЬ:
Вполне возможно сделать это бесплатно Для этого по-прежнему требуется лицензия, я не уверен, какая или какая именно лицензия необходима, поскольку моя была в комплекте с моим установщиком.
Я пытаюсь подключиться к серверу IBM i DB2 с локального ПК как часть приложения PHP. Я пытаюсь настроить себя для местного развития.
Я не могу найти загрузку для «IBM DB2 Universal Database client» и / или «IBM DB2 Connect», упомянутых ниже. Кто-нибудь делал это раньше и может дать некоторое представление? Я открыт для альтернативных решений, пока доступны функции db2_ *. Я работаю с существующим кодом без простого / быстрого способа переключения между типами соединений между разработкой и производством.
Это почти повторяющийся вопрос, так как Вот но на это тоже не было ответа. Оператор закончил тем, что сдался и соединился с «IBM Client Access OLE DB», используя «IBMDA400», но я также не могу найти его для загрузки. Я даже не уверен, включит ли этот метод функции db2_ *.
extension=php_ibm_db2.dll
в мой файл php.ini.echo phpinfo();
и успешно его изменить.php_ibm_db2.dll
в месте, указанномextension_dir
директивы. extension_dir = "C:\Bitnami\wampstack-5.6.29-1\php\ext"
Единственная ошибка PHP, которую я вижу в журнале, — это когда я запускаю сервер (что все еще успешно — хотя без функций db2_ *).
[18-Jan-2017 21:08:18 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Bitnami\wampstack-5.6.29-1\php\ext\php_ibm_db2.dll' - The specified module could not be found.
in Unknown on line 0
[18-Jan-2017 21:08:19 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Bitnami\wampstack-5.6.29-1\php\ext\php_ibm_db2.dll' - The specified module could not be found.
in Unknown on line 0
Но файл C:\Bitnami\wampstack-5.6.29-1\php\ext\php_ibm_db2.dll
существует и имеет те же точные разрешения, что и любой другой файл * .dll в каталоге (который не был изменен с момента установки стека Wamp).
Я прочитал, что «Клиент IBM DB2 Universal Database» и «IBM DB2 Connect» должны быть установлены на одном компьютере с PHP Вот но у меня проблемы с поиском загрузки для обоих. Я могу найти инструкции по установке каждого, но нет ссылки на скачивание.
Я нашел загрузку для «IBM Data Server Client», которая находится за входом в систему на сайте IBM. Мне интересно, если это одна из двух программ, которые мне нужно установить, просто под другим именем. Я знаю, что последовательность имен не лучший атрибут IBM …: D
У меня есть несколько ответов.
Поддержка JDBC и ODBC бесплатна и обычно поставляется с другим программным обеспечением IBM. Это не помогает в отношении функций db2_ * в PHP.
Если ваша база данных DB2 находится в IBM i или даже в Z / OS, то единственный способ сделать это — использовать DB2 Connect. Существует несколько разных версий, но для разработки рабочих станций вам понадобится DB2 Connect Enterprise Edition. Недостатком является наименьшее количество пакетов, которые они предлагают в настоящее время — 25 пользователей по цене ~ 3800 долларов. Это составляет около $ 152 на пользователя, но, к сожалению, для небольшого магазина, в котором работают только 2 или 3 разработчика. В какой-то момент они предложили 5 лицензионных пакетов, но на данный момент они больше не предлагают его. Надеюсь, что они будут в будущем.
Если ваша база данных DB2 находится в LUW, то все, что вам нужно, это клиент IBM Data Server, который можно бесплатно загрузить отсюда (хотя требуется учетная запись IBM):
https://www-01.ibm.com/marketing/iwm/iwm/web/reg/pick.do?source=swg-idsc97&языки = ru
Потенциальной альтернативой является предоставление API от IBM i, который используется локальной рабочей станцией во время разработки приложения, отличного от API. Однако разработка самого API все же будет возможна только в системе AFAIK. Вы также можете настроить локальную базу данных DB2 и скопировать любые файлы. Между производством и разработкой будут дальнейшие различия, но они могут сэкономить немного денег.
Лично я считаю абсурдом, что они взимают плату за возможность удаленного подключения к базе данных DB2 в IBM i или Z / OS, используя метод, отличный от JDBC или ODBC, но ничего не взимают за LUW. В сочетании с тем, что наименьший пакет предназначен для 25 пользователей, это делает его еще более обескураживающим для малого и среднего бизнеса (основные клиенты для IBM i).
Я получил это, работая только с «IBM Data Server Client». Сначала я установил стек Wamp из Bitnami, PHP 5.6.30 32bit. Затем я загрузил клиент IBM Data Server с преимущество паспорта площадь. Я не пробовал версию от Вот после того, как все заработало, чтобы можно было работать. Эти шаги основаны на версии, которую я получил из паспортного преимущества. У него есть мастер установки, так что вы можете просто следовать инструкциям, но Вот это статья IBM о процессе. Эта статья содержит инструкции по установке другого программного обеспечения в дополнение к клиенту IBM Data Server, поэтому обращайте внимание только на те из них, которые применимы. После установки вы должны настроить клиент из командной строки Windows. Для этого я последовал этот статья. Подводя итог, вы должны каталогизировать узел (сервер), а затем каталогизировать базу данных. Затем вы перезапустите сеанс и протестируете его, подключившись. Синтаксис ниже:
<+ NODENAME +> составлен вами. <+ REMOTE +> — полное доменное имя или IP-адрес. <+ PORT +> это порт <+ REMOTE +> вы должны быть на связи с. Обычно порт будет 446. <+ database_name +> — это имя базы данных.
db2 catalog tcpip node <NODENAME> remote <REMOTE> server <PORT>
db2 catalog database <database_name> at node <NODENAME>
Db2 terminate
db2 connect to <database_name> user <user_name> (you will then be prompted for a password)
После этого вы должны получить Windows PHP ddl для драйвера IBM_DB2 от Вот. Я использовал версию 1.9.9. Затем переместите файл php_ibm_db2.dll в каталог расширений PHP, как указано в extension_dir
директива в вашем php.ini. Затем добавьте эту строку в ваш php.ini extension=php_ibm_db2.dll
, Затем перезапустите Apache, и вы сможете подключиться. При успешном подключении к БД у меня все еще есть проблемы с неквалифицированными таблицами на данный момент. Кажется, вместо имени предоставленного списка библиотек используется имя пользователя, несмотря на то, что список библиотек установлен правильно. Я обновлю, когда выясню эту часть.
Это грубый набросок того, что я должен был сделать, чтобы это работало в моей конкретной ситуации, и не предназначено для того, чтобы быть всеобъемлющим учебником. Если ваша среда отличается, возможно, вам придется скорректировать. Кроме того, я не уверен, есть ли какие-либо другие зависимости для php_ibm_db2.dll, которые, как оказалось, уже были удовлетворены для меня. Надеюсь, это, по крайней мере, сэкономит кому-то время и деньги.
Я решил проблему со списком библиотек; Смотрите этот ответ: https://stackoverflow.com/a/43193058/967617
Других решений пока нет …