2017-01-18 17 views
1

私は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) : "&nbsp;")."</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がインストールされ、有効になっていることを示しています。

事前に感謝の気持ちがありましたらお手伝いください。

答えて

0

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

私はputenv()を使用することを強く推奨します。それは過去に非常に問題がありました。代わりにRH Linuxの/ etc/sysconfig/httpdなどの正しいApache初期化スクリプトに変数を追加します。無料のPHPおよびOracleの書籍を読むhttp://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html –

+0

私はSlackwareを使用しており、他の方法では動作させることができません。 –

+0

見てください。私は彼らがApacheから機能を削除したとは思わない。 –

関連する問題