Не находится переменная LD_LIBRARY_PATH

cepera

Новичок
Не находится переменная LD_LIBRARY_PATH

Собрал PHP 5.2.4 --with-oci8. Сам oracle на другой машине.

Написал простой скрипт:

<?
error_reporting(E_ALL);
$user = "user";
$pass = "password";
$host_db="0.0.0.0";
$charset="CL8MSWIN1251";
$conn = oci_connect($user,$pass,$host_db);
?>

получаем:

Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in /srv/www/portal/testdba.php on line 7

в phpinfo видим:

Environment
LD_LIBRARY_PATH /usr/lib/oracle/10.2.0.3/client/lib


PHP Variables
_ENV["LD_LIBRARY_PATH"] /usr/lib/oracle/10.2.0.3/client/lib

Что не так?
 

tony2001

TeaM PHPClub
- у апача нет прав на либы;
- сами либы отсутствуют;
- LD_LIBRARY_PATH указывает на неверную директорию и т.п.
 

cepera

Новичок
Автор оригинала: tony2001
- у апача нет прав на либы;
- сами либы отсутствуют;
- LD_LIBRARY_PATH указывает на неверную директорию и т.п.
В логах не вижу никакой ругани на отсутствие прав. Может включить что?

ll /usr/lib/oracle/10.2.0.3/client/lib
total 97627
lrwxrwxrwx 1 root root 17 Oct 25 12:56 libclntsh.so -> libclntsh.so.10.1
-rw-r--r-- 1 root root 18825267 Nov 15 2006 libclntsh.so.10.1
-rw-r--r-- 1 root root 5486009 Nov 15 2006 libnnz10.so
lrwxrwxrwx 1 root root 15 Oct 25 12:56 libocci.so -> libocci.so.10.1
-rw-r--r-- 1 root root 1398088 Nov 15 2006 libocci.so.10.1
-rw-r--r-- 1 root root 72480394 Nov 15 2006 libociei.so
-rw-r--r-- 1 root root 120135 Nov 15 2006 libocijdbc10.so
-rw-r--r-- 1 root root 1545954 Nov 15 2006 ojdbc14.jar

Вроде все на месте?
 

tony2001

TeaM PHPClub
>В логах не вижу никакой ругани на отсутствие прав. Может включить что?

а это что? Оракл не умеет ругаться по-другому.
>Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed.

>ll /usr/lib/oracle/10.2.0.3/client/lib
выполни:

# su - apache (или как там юзера апача звать)
# ls -l /usr/lib/oracle/10.2.0.3/client/lib

вывод сюда.

LD_LIBRARY_PATH должна быть видна апачу во время загрузки, т.е. должна устанавливаться ДО старта.
 

cepera

Новичок
Я вот думаю может собрал php не так?

ll /usr/lib/oracle/10.2.0.3/client/lib
total 97627
lrwxrwxrwx 1 root root 17 Oct 25 12:56 libclntsh.so -> libclntsh.so.10.1
-rw-r--r-- 1 root root 18825267 Nov 15 2006 libclntsh.so.10.1
-rw-r--r-- 1 root root 5486009 Nov 15 2006 libnnz10.so
lrwxrwxrwx 1 root root 15 Oct 25 12:56 libocci.so -> libocci.so.10.1
-rw-r--r-- 1 root root 1398088 Nov 15 2006 libocci.so.10.1
-rw-r--r-- 1 root root 72480394 Nov 15 2006 libociei.so
-rw-r--r-- 1 root root 120135 Nov 15 2006 libocijdbc10.so
-rw-r--r-- 1 root root 1545954 Nov 15 2006 ojdbc14.jar

# su wwwrun
# ls -l /usr/lib/oracle/10.2.0.3/client/lib
total 97627
lrwxrwxrwx 1 root root 17 Oct 25 12:56 libclntsh.so -> libclntsh.so.10.1
-rw-r--r-- 1 root root 18825267 Nov 15 2006 libclntsh.so.10.1
-rw-r--r-- 1 root root 5486009 Nov 15 2006 libnnz10.so
lrwxrwxrwx 1 root root 15 Oct 25 12:56 libocci.so -> libocci.so.10.1
-rw-r--r-- 1 root root 1398088 Nov 15 2006 libocci.so.10.1
-rw-r--r-- 1 root root 72480394 Nov 15 2006 libociei.so
-rw-r--r-- 1 root root 120135 Nov 15 2006 libocijdbc10.so
-rw-r--r-- 1 root root 1545954 Nov 15 2006 ojdbc14.jar


# cat /etc/rc.d/apache2 |grep LD_
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib
 

cepera

Новичок
не брат...не помогает...вот ведь заколдованный круг..

-~{}~ 25.10.07 23:32:

Apache стоит из базового rpm. Его патчить часом не надо?

-~{}~ 26.10.07 00:49:

Короче победил!
Спасибо!
 

vodish

Новичок
У меня похожая ситуация с SQLAnywhere.

PHP Warning: PHP Startup: The SQLAnywhere client libraries could not be loaded. Please ensure that libdbcapi_r.so can be found in your LD_LIBRARY_PATH environment variable. in Unknown on line 0

Но ошибка вылазит только когда я пытаюсь запустить скрипт под утилитой screen или через cron.
Под апачем через сайт, или под рутом через ssh библиотека подключается и все прекрасно, но скрипт выполняется очень долго...

что я делаю не так?
 
Последнее редактирование:

vodish

Новичок
эм...
Права на /lib пришлось разруливать
у меня 755 права на все папки, я проверил, т.е. и чтение и исполнение разрешено. про права это я уже из-за того что мозги не соображают )) если вы это имели ввиду...
 

AnrDaemon

Продвинутый новичок
У вас LD_LIBRARY_PATH не выставлена в терминале. С этого начнём. Права тут крайние вообще.
 
Сверху