2016-12-04 2 views
1

У меня проблема с отсутствием модуля oci8.php oci8 модуль не загружен (ubuntu 16)

ОС Ubuntu 16, с Apache 2.4 и PHP 5.6

я выполнить следующие шаги:

  • Скачал Oracle Instant Client Basic и SDK пакеты: (оракул-instantclient11.2- basic-11.2.0.4.0-1.x86_64.rpm, oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm)
  • Установите Oracle Instant Client (после преобразования .rpm в .deb)
  • Загрузить OCI8 Удлинение от PECL (oci8-2.0.12)
  • Сборка модуля PHP OCI8
  • Копировать oci8.so в каталог модулей (USR/Lib/20131226// PHP /)
  • Редактировать файл php.ini и добавление расширения с полным путем (расширение =/USR/библиотека/PHP/20131226/oci8.so)
  • Я добавил путь к библиотеке Oracle к переменной окружения LD_LIBRARY_PATH =/USR/библиотека/Oracle/11.2/клиент/библиотека
  • Перезагрузка Apache

Модуль не загружен и журналы Apache, отображающие следующую ошибку:

Unable to load dynamic library '/usr/lib/php/20131226/oci8.so' - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0

+0

Может ли ваш доступ процесс к файлу oci8.so? Являются ли атрибуты chmod хорошими? –

+0

Спасибо @Alexandre T, я думаю, что это такие атрибуты, как другие php-модули, '-rwxr-xr-x 1 корень root 624416 3 дек 15:42 oci8.so' для ex. '-rw-r - r-- 1 корень root 1463904 14 ноя 05:35 mbstring.so -rw-r - r-- 1 корень root 47256 ноя 14 05:35 mcrypt.so -rw-r- -r-- 1 корень root 55432 14 ноя 05:35 mysql.so' –

+0

Что произойдет, если вы удалите исполняемый флаг? 'chmod a-x oci8.so' Сохраняется ли ошибка? –

ответ

0

Проблема была из библиотеки libaio.so, поскольку @Alexandre сказал, что это несоответствие 32/64 бит.

Я нашел проблему с @Codo ответа: https://stackoverflow.com/a/10619763/1995358

Проблема решена после установки libaio.so библиотеки снова:

sudo apt-get install libaio1

0

Убедитесь, что LD_LIBRARY_PATH установлен там, где Apache находит его, возможно, файл envvars от Apache. Или вы можете обновить ldconfig, если у вас нет другого программного обеспечения Oracle на компьютере. Есть много информации в бесплатном Underground PHP & Oracle Manual

Несколько вопросов: Почему бы не использовать 12.1 Instant Client? С этим вы можете подключиться к Oracle DB 10.2 и более поздним.

Также почему вы преобразовали RPM, а затем переместите вывод в каталог пользователя? Почему бы просто не скачать zip-файлы Instant Client и не распаковать их? Все, что вам нужно сделать, это добавить ссылку sym, указанную в инструкциях на странице загрузки.

Смежные вопросы