|
УстановкаСборка PHP совместно с OCI8Перед сборкой OCI8 изучите предыдущий раздел "Требования". Для работы расширения OCI8, укажите при настройке PHP опцию --with-oci8 . Перед стартом веб-сервера, OCI8 обычно требуется несколько переменных окружения Oracle (см. ниже) для обнаружения библиотек, конфигурационных файлов и установки некоторых базовых свойств, таких как кодировка, используемая библиотеками Oracle. Эти переменные должны быть установлены перед запуском любого PHP-процесса. PHP должен использовать ту же, или более свежую основную версию библиотек Oracle, чем ту, с которой он был собран. Например, если вы собрали OCI8 с библиотеками Oracle 11.2, то PHP также должен работать с библиотеками Oracle 11.2. Установка OCI8 в виде подгружаемого (shared) расширенияУказание опции конфигурации shared позволяет собрать OCI8 в виде динамически подгружаемой библиотеки. Сборка в виде подгружаемого расширения позволяет легко обновлять OCI8 без пересборки всего PHP. Соберите OCI8 с помощью одной из следующих опций.
После настройки следуйте обычной процедуре сборки PHP, например, make install, после чего будет создано подгружаемая библиотека oci8.so. Возможно, вам потребуется вручную перенести ее в папку расширений PHP, указанную опцией extension_dir вашего php.ini. Для завершения установки OCI8 добавьте следующую строку в php.ini:
extension=oci8.so Установка OCI8 в виде статически скомпилированного расширенияСоберите OCI8 с помощью одной из следующих опций.
После настройки следуйте обычной процедуре установки PHP, например, make install. После успешной сборки нет необходимости добавлять oci8.so в файл php.ini. Никаких дополнительных шагов сборки больше не требуется. Установка OCI8 из PECLРасширение OCI8 может быть включено в текущую установку PHP как автоматически, так и вручную с помощью » http://pecl.php.net/. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/oci8. Для автоматической установки следуйте данным инструкциям:
Для установки вручную, скачайте пакет установки PECL OCI8, например, oci8-1.3.5.tgz.
После автоматической или ручной установки отредактируйте ваш php.ini, добавив в него следующую строку:
extension=oci8.so Убедитесь, что директива php.ini extension_dir установлена на ту самую папку, в которую была установлена библиотека oci8.so. Установка OCI8 в WindowsВ Windows, при использовании клиентских библиотек Oracle 10gR2, раскомментируйте строку php.ini extension=php_oci8.dll. При использовании клиентских библиотек Oracle 11g, раскомментируйте строку extension=php_oci8_11g.dll. Эти две DLL-библиотеки содержат одинаковый функционал, и могут быть включены только по отдельности. Убедитесь, что extension_dir установлена на папку, содержащую DLL-библиотеки расширений PHP. При использовании Instant Client, установите системную переменную окружения PATH на папку с библиотекой Oracle. Установка окружения OracleПеред использованием данного расширения, убедитесь, что переменные окружения Oracle правильно настроены для пользователя, под которым работает веб-сервер. Если ваш веб-сервер автоматически стартует при загрузке, то убедитесь, что окружение при загрузке также настроено корректно.
В Red Hat Linux и его вариантах, экспортируйте переменные в конце файла /etc/sysconfig/httpd. Другие системы с Apache 2 могут использовать скрипт envvars из папки bin в дистрибутиве Apache. Третьим вариантом является директива Apache SetEnv в файле httpd.conf, на каких-то системах она может работать, однако, известно, что на некоторых ее недостаточно. Чтобы удостовериться в корректной настройке переменных окружения, используйте функцию phpinfo() и проверьте, что раздел Environment (не Apache Environment) содержит ожидаемые переменные. Следующая таблица содержит переменные, которые могут вам потребоваться. За подробностями обо всех переменных обращайтесь к документации Oracle.
Решение проблемСамой частой проблемой при установке OCI8 является неправильная установка окружения Oracle. Обычно это выражается в проблеме при использовании функций oci_connect() или oci_pconnect(). Ошибка может проявляться в виде ошибок PHP, например, Call to undefined function oci_connect(), ошибок Oracle, таких как ORA-12705, или даже крушения Apache. Проверьте лог-файлы Apache на наличие ошибок запуска и вышеописанные разделы для разрешения этой проблемы. Несмотря на то, что сетевые ошибки, наподобие ORA-12154 или ORA-12514 сигнализируют ошибку в именовании или конфигурации сети Oracle, реальной причиной может быть некорректно установленное окружение PHP, из-за чего библиотеки Oracle не могут найти конфигурационный файл tnsnames.ora. В Windows, использование нескольких версий Oracle на одной машине может легко вызвать их конфликты, которых можно избежать при соблюдении особых мер предосторожности, предусматривающих, что PHP использует корректную версию Oracle. Утилита, помогающая определить искомые и загруженные в итоге библиотеки, может помочь в случае проблем при отсутствующих или конфликтующих библиотеках, особенно в Windows.
|
|||||||||||||||