День добрый всем. Есть проблема. ОС RedHat Enterprise Linux 5.4 с установленными oracle instant client 11.2, apache, php-5.3.2. Есть скрипт (назовем еге cli.php) с одной строчкой: $DB = &NewADOConnection("oci8://".__LGN.":".__PASS."@".__HOST."/".__SID."?charset=AL32UTF8"); При выполнении из коммандной строки: root@localhost# php cli.php или через сервер apache (по http): http://localhost/cli.php подключене НЕ устанавливается. Причина следующая: на сервере БД стоит некая защита. Если смотреть в логи сервера apache, то видим следующее: [warn] mod_fcgid: stderr: ORA-20001 php-cgi@webacc ... (tns v1-v3),WEBACC,,WEBACC При выполнении скрипта из командной строки видим ORA-20001: Запрещен запуск модуляhp@webacc (tns v1-v3),ROOT,PTS/3,WEBACC Разница в ошибках видна в следующем: в случае http не передается имя TTY, т.к. за http-сервером не закреплено имя TTY. А в случае командной строки это PTS/3. Теперь вопрос. Как заставить oracle instant client или php передать что угодно в качестве имя TTY. Я согласен даже на изменение и пересбор самого php. Просто ткните меня мордой в строчку. Сам я в c++ не силен.
Спасибо всем, кто посмотрел это сообщение. Посмотрел исходники PHP и убедился, что нужно изменять код oracle instant client. После этого напряг админа БД и все разрешилось.