У меня есть среда CentOS, работающая в качестве гостя виртуальной машины. Он работает и Oracle 12.1 Database, наряду с PHP 5.4.16, на Apache 2.0.
Я прошел все этапы установки, чтобы убедиться, что установлены правильные драйверы OCI. Я использую версию 2.0.10, как указано здесь: здесь >>, и указал на правильный $ORACLE_HOME
.
Как видно из phpinfo()
, расширение oci загружается из каталога расширений:
Однако в оставшейся части phpinfo()
нет соответствующей записи OCI8 (как описано здесь >>).
Содержимое /etc/php.d/oci8.ini
выглядит следующим образом:
; Created by me: 2016-02-08
extension=oci8.so
Мой каталог расширений:
И файлы в этом каталоге выглядят корректно в отношении привилегий и контекста SELinux (как вы видите здесь):
Когда я загружаю свой файл index.php
в браузер, он загружается в основном успешно, за исключением того факта, что любая ссылка на код OCI (переменные, константы, функции) является ошибочной (это означает, что расширение не имеет был зарегистрирован внутри PHP):
У кого-нибудь есть идея относительно того, что я должен сделать, чтобы правильно зарегистрировать расширение OCI8 внутри PHP?
=== РЕДАКТИРОВАТЬ / РЕШЕНИЕ ?? ===
Я выключил SELinux (см. Это с практическими рекомендациями), и внезапно OCI, казалось, работал. Это ни в коем случае не идеальное решение, поскольку делает всю ОС более уязвимой. Но это будет соответствовать моим требованиям на данный момент.
С другой стороны, если кто-то знает, как включить SELinux и заставить его работать с OCI8, ваши комментарии будут очень благодарны!