私はOracle Express 11gをSlackware Linuxにインストールして実行しています。私はそれに接続してクエリを実行することができます。 私はapacheとphpをインストールし、oci8をインストールしました。 phpinfo()は、oci8がロードされて有効になっていることを示しています。次の単純なPHPスクリプトのWebページが表示用 :ページがApacheとPHPで表示されず、OCI8とOracle Express 11g
<?php echo "Hello World!!!"; ?>
ので、Apacheの中に、PHPが動作しています。
<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>
これは、Webブラウザで表示ソースから、次の表示されています: は今すぐ次のような単純なため、バージョンのOracleに接続して、表示さしかし
<html>
<body>
Oracle Version <br/>
<table>
</table>
</body>
</html>
Iが、/ usrでスクリプトを実行します/ビン/ 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仕事と同じPHPスクリプトを提供しているApacheは動作しませんでした。そして、同じapacheによって提供されたphpinfo()は、oci8がインストールされ、有効になっていることを示しています。
事前に感謝の気持ちがありましたらお手伝いください。
私はputenv()を使用することを強く推奨します。それは過去に非常に問題がありました。代わりにRH Linuxの/ etc/sysconfig/httpdなどの正しいApache初期化スクリプトに変数を追加します。無料のPHPおよびOracleの書籍を読むhttp://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html –
私はSlackwareを使用しており、他の方法では動作させることができません。 –
見てください。私は彼らがApacheから機能を削除したとは思わない。 –