Я подключил openSUSE LAMP и сервер Ubuntu LAMP к DB2 с помощью ODBC. Система openSUSE, которую мы используем для среды разработки, и окончательное развертывание должно произойти в системе Ubuntu. В Ubuntu мы получаем segfaults, когда операторы SQL возвращают значения NULL (см. Ссылки на соответствующие отчеты об ошибках), но этого не происходит в openSUSE. Обе машины работают под управлением 64-битных версий, вот версии обоих боксов и их программного обеспечения:
OS Version Kernel Apache PHP
openSUSE 12.2 3.4.11-2.16-default 2.2.22 5.3.15
Ubuntu 11.04 2.6.38-11-server 2.2.17 5.3.22-1~dotdeb.0
(upgraded from 5.3.5-1ubuntu7)
Ссылки:
https://bugs.php.net/bug.php?id=59405
https://bugs.php.net/bug.php?id=54007
Читая журнал изменений на php.net, казалось, что ошибка была исправлена в версии 5.3.11, но обновление все еще не решило нашу проблему. Я, наконец, сравнил вывод phpinfo () с обоих серверов построчно и нашел одну часть, которая кажется красным флажком, но не знаю, как это исправить. В разделе ODBC параметр ODBC_LFLAGS показывает:
openSUSE -L/usr/lib64
Ubuntu -L/usr/lib
Обе системы являются 64-разрядными и настроены для использования 64-разрядной версии iSeriesAccess и unixODBC. iSeriesAccess пришлось преобразовать из RPM с помощью alien, поскольку IBM не поддерживает Ubuntu. К сожалению, обновление Ubuntu или переключение между дистрибутивами для нас не варианты. Как я могу переключить Ubuntu на использование / usr / lib64 для ODBC_LFLAGS? Есть ли еще одна проблема, которую я мог упустить из виду?