За последние 24 часа нас посетили 17072 программиста и 1652 робота. Сейчас ищут 911 программистов ...

[РЕШЕНО] PHP + Oracle DB 11g Call to undefined function oci_connect()

Тема в разделе "PHP и базы данных", создана пользователем Sout, 27 июл 2016.

Статус темы:
Закрыта.
  1. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    Коротко к делу.
    Локальный сервер WAMP, PHP 5.6.16.
    БД Oracle 11g установлена на виртуальной Машине ОС Oracle linux 6.6 32bit.
    OS Windows 8.1 64bit.

    Вывод tnsping:
    Код (Text):
    1.  
    2. C:\Users\Darkhan>tnsping orcl
    3.  
    4. TNS Ping Utility for 32-bit Windows: Version 11.2.0.3.0 - Production on 27-JUL-2
    5. 016 23:12:44
    6.  
    7. Copyright (c) 1997, 2011, Oracle.  All rights reserved.
    8.  
    9. Used parameter files:
    10. D:\app\Darkhan\product\11.2.0\client_1\network\admin\sqlnet.ora
    11.  
    12.  
    13. Used TNSNAMES adapter to resolve the alias
    14. Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    15. (HOST = 192.168.10.111)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
    16. OK (10 msec)
    Проблема, только начал изучать php, хочу научиться работать с бд посредством php, хочу законнектиться к hr
    Код (Text):
    1.  
    2. $conn = oci_connect('hr', 'password', 'ORCL');
    3. if (!$conn) {
    4.   $e = oci_error();
    5.   trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    6. }
    php выводит ошибку Call to undefined function oci_connect(), неопределенная функция. Копал по гуглу, все мои действия, добавил php 5.6.16 в path, скачал instantclient_12_1 32bit, распаковал в корень D (там же в корне лежит WAMP сервер). instantclient добавил в path, в php.ini разкоментировал extension=php_oci8_12c.dll (в файле php.ini это единственное расширение). Все эти действия ни к чему не привели.

    Вывод phpinfo
    Код (Text):
    1.  
    2. System
    3.  
    4. Windows NT SOUT 6.3 build 9600 (Windows 8.1 Home Premium Edition) AMD64
    5. Build Date Nov 25 2015 18:45:23
    6.  
    7. Compiler MSVC11 (Visual C++ 2012)
    8. Architecture x64
    9.  
    10. Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"
    Помогите пожалуйста, уже не знаю что и делать
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Лучше начать с изучения основ администрирования linux, и поставить PHP на него самостоятельно.
    Почему была выбрана база oracle?

    В phpinfo() больше данных, oracle dll был загружен?
     
  3. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    Вы лучше мне скажите в чем проблема, если oracle dll подгружается с расширений php, то нет не загружается, такого файла в расширениях нет вообще, а если он подгружается с других файлов, то как мне проверить?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ну я не вижу полного вывода функции phpinfo(), а на Windwos мало кто использует PHP в реальных проектах, так что вопрос сложно решить без данных.
     
  5. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    php_oracle dll не подгружает, потому что такого расширения нет
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    этот файл есть в папке instantclient? PHP смотрит в неё? / В PHP должна быть информация об этом.
    Нет ли ошибок в логе ошибок и настроен ли он?
     
  7. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    еще вот что меня смущает, в program configuration пишет
    Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"
    и путь к примеру c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared, такого пути у меня в диске C нет вообще
    --- Добавлено ---
    я так понимаю папку instantclient_12_1 он не видит вообще
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Это когда PHP для сборки WAPM делали, то указали этот путь, у тебя в самом PHP не было DLL для oracle?
    --- Добавлено ---
    Я вот посмотрел на PHP для Windows с официального сайта, там php_oci8_12c.dll есть в папке ext
     
  9. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    ну да, я его раскоментировал
     
  10. Sout

    Sout Новичок

    С нами с:
    27 июл 2016
    Сообщения:
    11
    Симпатии:
    0
    Проблему решил!!!

    В общем проблема была вот в чем, oci 8 не запускался, делал я все правильно, кроме одного. Те, кто столкнулся с этой проблемой, вот пути ее решения:

    1. Раскоментируйте в файле php.ini расширение php_oci8_12c.dll
    2. Скачайте oracle instant client 12_1
    3. Содержимое папки скопируйте и вставьте в в папку D:\wamp64\bin\php\php5.6.16\ext (это мой путь, конечная папка ext)
    4. Это же содержимое папки oracle instant client 12_1 скопируйте в папку D:\wamp64\bin\apache\apache2.4.17\bin

    Надеюсь это вам поможет, как помогло мне!
    --- Добавлено ---
    как закрыть тему?
     
Статус темы:
Закрыта.