php5无法通过apache

时间:2016-02-27 11:31:48

标签: php linux oracle apache2 oci8

我使用Linux Mint,Apache2,PHP5,Oracle Xe 11并且没有安装SELINUX。
我在我的机器上安装了oci8。我在/ etc / php5 / mods-available上设置了oci8扩展,我用phpinfo()检查,启用了oci8。

我尝试连接到oracle。我有这个PHP代码:

    <?php
// error_reporting(E_ALL);
// Connects to the XE service (i.e. database) on the "localhost" machine
echo "[1]start connect<br>\n";
$conn = oci_new_connect('usertest', 'pwtester', 'localhost/XE');
echo "[2]check connection<br>\n";
if (!$conn) {
    $e = oci_error();
    echo "[3]Connection is error<br>\n";
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
echo "[4]test query\n";
$sql = oci_parse($conn, 'SELECT * FROM users');
oci_execute($sql);

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

?>

此代码正在处理php-cli并显示该表。但是,从浏览器访问时,此代码不起作用,没有返回结果错误。代码流程以“[3]连接错误
\ n”消息结束。

如何解决这个问题?

添加信息: 我尝试使用这个php命令的php服务:

php -S localhost:8000

并且php代码可以连接到oracle。

[更新]
我尝试在代码顶部添加此代码。

PutEnv("ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe");
PutEnv("LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib");

并且代码正在运行。 我认为,问题是变量环境。

2 个答案:

答案 0 :(得分:0)

您只在php.ini中为cli启用了oracle扩展。您也应该在php.ini中为web启用它。写简单的PHP脚本

me,val1,val2,val3,val4,val5,val6,
me,val1,val2,val3,val4,val5,val6,

在浏览器中打开它并检查php.ini路径。 也可能是你重启Apache或php-fpm

答案 1 :(得分:0)

Oracle 11g + WAMP + Windows 本教程将向您展示如何将PHP与Oracle Database 11g一起使用。 首先让我们假设我使用的是Windows 7 64bit以及oracle 数据库11G和wamp服务器,所以我已经下载了Oracle即时 客户端x64。如果你使用32位Windows然后下载32位客户端 否则它不会工作。 脚步 : - 1.安装oracle数据库11g XE

2.安装WAMP

3.下载适当的oracle即时客户端

4.提取Oracle即时客户端的所有内容并复制所有内容 .DLL文件并粘贴到这样的目录中 d:\瓦帕\ BIN \阿帕奇\ Apache2.2.17 \ BIN

5.打开Wamp服务器,然后左键单击图标&gt; php&gt; PHP扩展&gt;只检查php_oci8_11g。 如果你使用旧的oracle数据库那么11g就像10g一样 你必须只检查php_oci8。

6.打开oracle数据库11g XE服务。还有 OracleServiceORCL应该在服务中。

7.编写一个PHP代码来连接oracle和数据库11g XE,以及 将代码保存在wamp服务器的www目录中。

下面是

<?php
$userName = "username"; $password = "paswword"; $dtabasePort = "1521"; $serverName = "localhost";
$databaseName = "ORCL";
$c = oci_connect($userName, $password, "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL =
TCP)(HOST =$serverName)(PORT = $dtabasePort)))(CONNECT_DATA=(SID=$databaseName)))");
print_r($c); ?>

享受!!!!