データベース クラスのプロジェクト用にサーバーをセットアップしようとしています。プロジェクトを php で作成し、apache 経由で展開し、リモートの oracle サーバーに接続します。オラクル接続部分に問題があります。Oracle の InstantClient バージョン 10.2 とともに OCI8 モジュールをインストールしました。コンソールから次のプログラムを実行すると、正しい出力が得られたので、機能していると思いました。
プログラム:
<?php
$conn = oci_connect("asdf", "asdf", "asdf");
if (!$conn) {
die("connection error\n");
}
$stid = oci_parse($conn, 'SELECT * FROM PARTS');
if (!$stid) {
die("statement parsing error\n");
}
$r = oci_execute($stid);
if (!$r) {
die("execution error\n");
}
print "<table border='1'\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print "<tr>\n";
foreach ($row as $item) {
print "\t<td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
print "</tr>\n";
}
print "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>
結果:
<table border='1'>
<tr>
<td>1</td>
<td>wrench</td>
<td>silver</td>
</tr>
<tr>
<td>2</td>
<td>hammer</td>
<td>brown</td>
</tr>
</table>
だから私はすべてが大丈夫だと思った。しかし、ブラウザで同じ php ページにアクセスすると、次のエラー メッセージが表示されます。
Fatal error: Call to undefined function oci_connect() in /home/eric/apache2/htdocs/realestate/basicQuery.php on line 2
コマンド ラインと apache で 2 つの異なるバージョンの php が使用されている可能性があると考えたため、phpinfo(); を実行しました。両方のための。しかし、どちらも同じ php 情報 (PHP バージョン 5.2.10-2ubuntu6.4) で戻ってきました。これらは異なる php.ini ファイル (/etc/php5/apache2/php.ini と /etc/php5/cli/php.ini) を使用していますが、どちらもまったく同じです。ある環境と別の環境で異なる可能性があるものを他にどこで探すべきかわかりません。
助けてくれてありがとう!