Недавно я обновил свой openuse 12.3 до более нового 13.1
К сожалению, я не могу скомпилировать pdo_oci.so. Используя это руководство, y может скомпилировать экстенцию на 12.3:
http://forums.opensuse.org/english/other-forums/development/programming-scripting/418966-installing-pdo_oci-php.html
Но, к сожалению, в реальной версии я изо всех сил пытаюсь найти решение. На данный момент я пытаюсь выполнить make, но я получаю следующую ошибку:
/home/temp/PDO_OCI-1.0/pdo_oci.c:34:1: error: unknown type name 'function_entry' function_entry pdo_oci_functions[] = { ^ /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: braces around scalar initializer [enabled by default] {NULL, NULL, NULL} ^ /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: (near initialization for 'pdo_oci_functions[0]') [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: initialization makes integer from pointer without a cast [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: (near initialization for 'pdo_oci_functions[0]') [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: excess elements in scalar initializer [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: (near initialization for 'pdo_oci_functions[0]') [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: excess elements in scalar initializer [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:35:2: warning: (near initialization for 'pdo_oci_functions[0]') [enabled by default] /home/temp/PDO_OCI-1.0/pdo_oci.c:56:2: warning: initialization from incompatible pointer type [enabled by default] pdo_oci_functions, ^ /home/temp/PDO_OCI-1.0/pdo_oci.c:56:2: warning: (near initialization for 'pdo_oci_module_entry.functions') [enabled by default]
make: * [pdo_oci.lo] Ошибка 1
Кто-нибудь знает, что происходит?
Решение hefengxian для меня работало, но я не могу комментировать, поэтому вот что я сделал.
Отредактируйте файл pdo_oci.c, вокруг строки 34 выполните поиск:
/* {{{ pdo_oci_functions[] */ function_entry pdo_oci_functions[] = { {NULL, NULL, NULL} }; /* }}} */
заменить
/* {{{ pdo_oci_functions[] */ zend_function_entry pdo_oci_functions[] = { {NULL, NULL, NULL} }; /* }}} */
снова запустите make.
просто измените имя функции «function_entry» на «zend_function_entry» в pdo_oci.
Это означает, что при компиляции отсутствует «pdo_oci.lo». Простое решение – скопировать oci lib из вашей библиотеки Oracle-Instant-Client на скомпилированный путь следующим образом:
cp -f /usr/include/oracle/10.2.0.3/client64/* include/
Надеюсь, это поможет вам!
вы можете найти более подробную информацию по ссылке: http://www.indiangnu.org/2010/how-to-install-pdo_oci-extension-for-php-5/