Страница не отображается с Apache и php и OCI8 и Oracle Express 11g

У меня Oracle Express 11g установлен на Slackware Linux и работает. Я могу подключиться к нему и выполнить запросы.
У меня установлены apache и php и установлен oci8.
phpinfo () показывает oci8 загружен и включен.
Для следующего простого сценария php веб-страница отображает:

<?php echo "Hello World!!!"; ?>

Так что PHP в Apache работает.
Теперь для следующего простого подключения к оракулу и показать версию:

<html>
<body>
Oracle Version <br/>
<?php

$conn = oci_connect('SYSTEM', 'password', 'localhost/XE');

$stid = oci_parse($conn, 'select banner from v$version');
oci_execute($stid);

echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo "  <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>
</body>
</html>

Это показывает следующее из источника просмотра в веб-браузере:

<html>
<body>
Oracle Version <br/>
<table>
</table>
</body>
</html>

Однако когда я запускаю скрипт с / usr / bin / php oratest.php, он выводит следующее правильно:

<html>
<body>
Oracle Version <br/>
<table>
<tr>
<td>Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production</td>
</tr>
<tr>
<td>PL/SQL Release 11.2.0.2.0 - Production</td>
</tr>
<tr>
<td>CORE      11.2.0.2.0      Production</td>
</tr>
<tr>
<td>TNS for Linux: Version 11.2.0.2.0 - Production</td>
</tr>
<tr>
<td>NLSRTL Version 11.2.0.2.0 - Production</td>
</tr>
</table>
</body>
</html>

Как это возможно. Почему php командной строки работает и apache, обслуживающий тот же самый скрипт php, не работает. И phpinfo (), обслуживаемый тем же apache, показывает, что oci8 установлен и включен.

Пожалуйста, помогите, если у вас есть идеи, спасибо заранее.

1

Решение

Ошибки происходили из-за неправильной установки ORACLE_HOME и LD_LIBRARY_PATH для путей установки клиента oracle и клиента oracle express 11g и т. Д.
Я использовал php-директиву putenv () при запуске php-кода, и она работала без ошибок.

putenv("ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe");
putenv("LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib:/usr/lib64/oracle/12.1/client64/lib");
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector