DBD:: Oracle не удается подключиться к OCIEnvInit при вызове при доступе только через веб-сервер

#perl #oracle #dbi

#perl #Oracle #dbi

Вопрос:

У меня есть простой perl-скрипт, который использует DBD:: Oracle для выполнения запроса и печати результатов. Он отлично работает из командной строки, но у меня также есть PHP-скрипт, который запускает его и считывает выходные данные. При обращении к PHP-скрипту через apache не удается подключиться с ошибкой «OCIEnvInit».

Я попытался создать сценарий оболочки, который повторно устанавливает все переменные среды, доступные в оболочке, но это не помогло, и я также попытался настроить отладочный вывод для DBI, но ничего не получил. Что может вызвать эту ошибку, когда скрипт работает?

Ответ №1:

Вы уверены, что ORACLE_HOME и другим соответствующим переменным среды (например, LD_LIBRARY_PATH ), которые устанавливаются в вашей командной оболочке при запуске скрипта из командной строки, также установлены те же значения в процессе apache / PHP?

Комментарии:

1. Странно, что в командной строке не установлены значения, но у apache есть. Я узнаю, поможет ли их удаление.

2. Оказывается, что удаление их из среды apache действительно сработало.