У меня есть Oracle Express 11g, установленный на Linux-сервере Slackware. Я могу подключиться к нему и запускать запросы. У меня установлен apache и php и установлен oci8. phpinfo() показывает, что oci8 загружен и включен. Для следующей простой PHP скрипт на веб-странице отображаются:Страница не отображается с apache и php и OCI8 и Oracle Express 11g
<?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) : " ")."</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 установлен и включен.
Пожалуйста, помогите, если у вас есть идеи заблаговременно.
I СИЛЬНО советую не использовать putenv(). Это было очень проблематично в прошлом. Вместо этого добавьте переменные в правильный сценарий инициализации Apache, например/etc/sysconfig/httpd в RH Linux. Прочтите бесплатную книгу PHP и Oracle http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html –
Я нахожусь на Slackware и не могу заставить ее работать каким-либо другим способом. –
Продолжайте смотреть. Я сомневаюсь, что они удалили функцию из Apache. –