<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_1_thread_7414"  />
<title>rulinux.net - Форум - General - не получается подключиться к БД oracle из пхп </title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - General - не получается подключиться к БД oracle из пхп </title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53232</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53232</guid>
<pubDate>Thu, 01 Jul 2010 09:55:55 +0400</pubDate>
<description><![CDATA[<p>Это хорошо, что оно у тебя заработало. Плохо только что непонятно что было неправильно и, соответственно, и решение такое.. В следующий раз, скажем через год, когда ты про эту проблему и думать забудешь, кто-нибудь поставит нового клиента, скажем в /home/oracle/ora/12, централизованно обновит настройки для всех аккаунтов а твой крон так и будет по прежнему лазать в девятку пока ты снова не встретишься с разницей в конфигурации и не угробишь ещё неделю на поиски решения.</p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53231</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53231</guid>
<pubDate>Thu, 01 Jul 2010 06:07:40 +0400</pubDate>
<description><![CDATA[<p>не рискну примеры разместить. уволят)</p><p>вот что помогло: в cron перед заданием написал задал значения следующим переменным.</p><p>[code] ORACLE_HOME=/home/oracle/ora/9 TNS_ADMIN=/home/oracle/ora/9/network/admin ORACLE_SID=bla ORACLE_BASE=/home/oracle/ora LOGNAME=bla [/code]</p><p>всем спасибо</p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53230</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53230</guid>
<pubDate>Tue, 29 Jun 2010 12:02:41 +0400</pubDate>
<description><![CDATA[<p><i>> разницы в полученных двух наборах нет.</i><br> А сами-то переменные какие есть из перечисленных? </p><p> Можешь отквотить описание алиаса из tnsnames.ora и точные примеры строк коннекта (с фейковыми именами и паролями конечно)?</p><p>Я бы ещё попробовал сделать su - под кроновского юзера и там уже интерактивно пытаться запустить sqlplus. Всяко удобнее.</p><p> </p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53229</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53229</guid>
<pubDate>Tue, 29 Jun 2010 11:37:52 +0400</pubDate>
<description><![CDATA[<p>сравнивал переменные. из ко строки запустил env > /tmp/cron-env , сформировался тектовый файл, в котором, как я понимаю, содержатся переменные, используемые пользователем, из под которого скрипт запускается.</p><p>затем  в самом пхп-скрипте написал команду echo `env`;  после запуска его получил вывод переменных, которые использует скрипт.</p><p>разницы в полученных двух наборах нет.</p><p>сама база oracle находится на удаленной машине, с ней и устанавливаю соединение...</p><p>листенер скорее всего включен, потому что если  этот скрипт запускается не кроном, а вручную из ком.строки (с использованием псевдонима asd), то соединение устанавливается.</p><p></p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53228</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53228</guid>
<pubDate>Tue, 29 Jun 2010 08:33:27 +0400</pubDate>
<description><![CDATA[<p>На локаль он ещё не ругается</p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53227</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53227</guid>
<pubDate>Tue, 29 Jun 2010 08:25:25 +0400</pubDate>
<description><![CDATA[<p><i>>>If not specified, the Oracle Client libraries determine a character set from the NLS_LANG environment variable.</i><br> Т.е. разница в том, что видимо, в консоли NLS_LANG установлен, а в кроне - нет. Ну, и в хелпе написано, что явное указание четвертого параметра укорачивает время соединения.</p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53226</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53226</guid>
<pubDate>Tue, 29 Jun 2010 08:25:11 +0400</pubDate>
<description><![CDATA[<p>ORA-12514 - это другая ошибка. У тебя база локально установлена или ты к серверу на другой машине коннектишься? Листенер там запущен?</p><p>Непонял, переменные ты с чем сравниваешь? Тебе надо проверить какие переменные видит твой скрипт. Вставь ему в начало команду echo `env`; и сравнивай с переменными, что видишь из-под юзера в котором у тебя всё работает.</p><p>ORACLE_HOME должна быть определена в любом случае, другие переменные которые стоит проверить: ORACLE_SID,TNS_ADMIN,ORACLE_BASE,TWO_TASK</p><p>Третья компонента в OCILogon("xyz", "xyz11", "asd") - не пустая ли строка?</p><p></p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53225</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53225</guid>
<pubDate>Tue, 29 Jun 2010 05:53:46 +0400</pubDate>
<description><![CDATA[<p>возможно сейчас буду тупить, так как слабо во всем этом разбираюсь, но вот что могу пока сказать.</p><p>с правами на файл всё нормально. 777</p><p>скрипт вряд ли запускается из-под другого пользователя. cron несколько месяцев запускает еще один сценарий, доступ к котрому есть только у этого пользователя. да и не понятно с чего бы юзеру меняться, я под ним настраивал эти задачи...</p><p>в $ORACLE_HOME/network/admin/tnsnames.ora действительно прописан тот ip-адрес, соответствующий псевдониму. но, используя его в скрпте, получаю такую ошибку:  ORA-12514: TNS:listener does not currently know of service requested in connect descriptor</p><p>чтобы проверить выставлена ли переменная я делаю следующее. в ком.строке пишу  env > /tmp/console-env  не совсем понимаю какую именно переменную я должен там увидеть? в hostname не ip-адрес, который я использую вскрипте... остальные пути так или иначе совпадают с домашним каталогом oracle $ORACLE_HOME/network/admin/tnsnames.ora</p><p>я совсем запутался %</p><p></p><p></p><p></p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53224</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53224</guid>
<pubDate>Mon, 28 Jun 2010 14:26:35 +0400</pubDate>
<description><![CDATA[<p>Ну что, победил?</p>]]></description>
</item>
<item>
<title>Re: не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53223</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53223</guid>
<pubDate>Mon, 28 Jun 2010 13:37:57 +0400</pubDate>
<description><![CDATA[<p>Это собственная ошибка оракловой клиентской библиотеки. Т.е. она сама в соответствии со своими настройками не может найти нужный псевдоним. А настройки задаются переменными окружения (ну, т.е. местоположение конфигурационных файлов). Если дело под вендой - ещё через реестр, но переменные окружения имеют более высокий приоритет.</p><p>Я бы предположил, что по крону у тебя скрипт загружается из-под другого юзера OS.</p><p>Псевдоним "asd" (и не только) она скорее всего ищет в  $ORACLE_HOME/network/admin/tnsnames.ora</p><p>Проверь выставлена ли у тебя эта переменная под тем юзером (в том же месте скрипта где выводишь сообщение об ошибке можно просто env скинуть в дамп) и если она установлена, то на правильныую ли директорию указывает. И есть ли права на чтение файла. </p><p>Если всё ОК (хотя я думаю что выше всё решится) - следующим шагом было бы сравнение остальных настроек переменных окружения в сессиях где всё работает и где не работает. В основном тебя должны интересовать переменные окружения, начинающиеся с ORA:   env | grep ^ORA</p>]]></description>
</item>
<item>
<title>не получается подключиться к БД oracle из пхп </title>
<link>https://rulinux.net/message.php?newsid=7414&amp;page=1#53222</link>
<guid>https://rulinux.net/message.php?newsid=7414&amp;page=1#53222</guid>
<pubDate>Mon, 28 Jun 2010 13:26:00 +0400</pubDate>
<description><![CDATA[<p>помогите пожалуйста разобраться.</p><p>у меня linux debian. я написал пхп-скрипт. он простейший, содержит примерно такой код:</p><p><fieldset><legend>php</legend><code><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span><span style="color: #339933;">=</span>OCILogon<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;xyz&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;xyz11&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;asd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span> <br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Successfully connected to Oracle.&quot;</span><span style="color: #339933;">;</span> <br />
<span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">else</span> <br />
<span style="color: #009900;">&#123;</span> <br />
<span style="color: #000088;">$err</span> <span style="color: #339933;">=</span> OCIError<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Oracle Connect Error &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$err</span><span style="color: #009900;">&#91;</span>message<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <br />
<a href="http://www.php.net/exit"><span style="color: #990000;">exit</span></a><span style="color: #339933;">;</span> <br />
<span style="color: #009900;">&#125;</span> <br />
&nbsp;</code></fieldset> если его запускать вручную из командной строки, то проблем нет, отрабатывает. но когда я прописываю задание в cron, то этот скрипт выдаёт такую ошибку: ORA-12154: TNS:could not resolve the connect identifier specified (она записывается в файл /var/spool/)</p><p>вероятно какой-то переменной окружения присвоено значение asd. (здесь asd это не ip-адрес, а псевдоним)</p><p>хочу спросить как мне добраться до этой переменной. или может быть возможно в том же кроне перед выполнением моей пхп-программы пинать логин-скрипт пользователя, от кого рого эта программа запускается? как это сделать я не представляю...</p><p>есть ли еще какие-нибудь способы решить мою проблему?</p><p>еще дело в том, что когда я в пхп-скрипте прописываю не псевдоним, а ip-адрес (и с ууказанием порта, и без него), то пхп-программа не работает в любом случае. однако ошибки в ip-адресе быть не может, это совершенно точно.</p><p>заранее благодарен за ответы  </p>]]></description>
</item>
</channel>
</rss>