2

Apache 2,运行 mod_chroot。可以正常访问基本的html和php脚本。

这个测试脚本使用 cli php 可以正常工作,所以我知道连接字符串很好。

$host = '127.0.0.1:pubdata';
$password ="*******";
$username="SYSDBA";
$dbh = ibase_connect($host, $username, $password);
.. do query etc

但是,当我在 Chrooted Apache 下运行它时,它会返回一条错误消息:

Warning: ibase_connect(): Can't access lock files' directory /tmp/firebird in /html/app/webroot/test2.php

这似乎真的很奇怪。/tmp/firebird 存在并在 CLI 编写脚本时被 firebird 使用。

当我编译 PHP 时,我使用了 --with-interbase=/opt/firebird/

希望这是有道理的,有人有想法!

4

1 回答 1

1

尝试在连接之前使用 Always localhost: 在前面或另一个外部 IP,并在连接之前重新启动 apache + firebird

我的猜测是您使用 Classic 或 SuperClassic firebird,它会尝试直接附加到 /tmp 和 db

http://firebird.1100200.n4.nabble.com/Fwd-Have-you-tried-firebird-2-5-SuperClassic-from-the-packages-td3053790.html

ps:同样,一旦 chrooted,Apache 将无法访问位于 ChrootDir 之上的任何内容

于 2011-04-05T19:27:06.793 回答