0

使用带有 Apache 2.2 和 PHP 5 的 Windows Vista 系统。

我有一个脚本可以测试与各种 ODBC 和 MySQL 数据库的连接。当脚本从浏览器窗口中加载的 Apache 运行时,它无法连接到任何远程 ODBC 或 MySQL 数据库。本地数据库工作正常。套接字连接也不起作用。

当我从命令提示符运行时,所有连接都正常。

在 ODBC 控制面板中测试连接时,它们也可以正常工作。我们网络上不同系统上的其他应用程序可以连接到这些数据库。

此外,我可以从远程位置的另一个系统上的 Windows 下安装的 Apache 提供的浏览器窗口运行此脚本。

Windows Apache 服务器系统禁用了防火墙,但它位于网络防火墙/代理之后。虽然由于脚本在命令行中工作,所以我认为它不是防火墙问题。

我已经看到了解决方案,但它们适用于 Linux 系统,我找不到任何适用于 Windows 机器的东西。

这可以是 php.ini 或 http.conf 文件中的一些设置吗?这是一些 Windows 设置吗?

这是代码

$lmSock = fSockOpen('www.server.com',80, $errno, $errstr, 30);
if(!$lmSock) {
echo("Can't open Remote socket<br />\n");
}
else {
echo("Remote Socket Success<br />\n");
}    

$odbcConn = odbc_connect('remote.mysql','','');
if(!$odbcConn) {
    echo("Cannot Connect To ODBC remote.mysql Server<br />\n");
}
else {
  echo("ODBC remote.mysql Connection success<br />\n");
}

$odbcConn = odbc_connect('local.sql','','');
if(!$odbcConn) {
    echo("Cannot Connect To ODBC local.sql Server<br />\n");
}
else {
  echo("ODBC local.sql Connection success<br />\n");
}

$toyConn = odbc_connect('remote.sql','','');
if(!$toyConn) {
    echo("Cannot Connect To ODBC remote.sql Server<br />\n");
}
else {
  echo("ODBC remote.sql Connection success<br />\n");
}

$mysqlConn = mysql_connect('server.address','login','pass');
if(!$mysqlConn) {
    echo("Cannot Connect To MYSQL server.address Server<br />\n");
}
else {
  echo("MYSQL server.address Connection success<br />\n");
}
4

2 回答 2

0

我要检查的第一件事是确保您的连接没有被 Windows 防火墙阻止。尝试暂时禁用它只是为了测试。

打开或关闭 Windows 防火墙

如果这没有帮助,您可能想尝试下载 WAMP 以查看您的安装是否有问题。我不是建议您替换现有的安装(尽管如果它有效,您可能想要),我建议您尝试确定安装或您的操作系统是否有问题。

下载

于 2012-11-15T19:22:10.677 回答
0

问题是我们公司的防火墙。(微软 ISA 服务器 2000)。

该防火墙使用安装在我们内部系统上的实用程序(ISA 客户端),包括运行所有这些的服务器。

在我看来,命令行 PHP 脚本和 ODBC 控制面板通过这个客户端工作。不幸的是,由于某种原因,Apache 没有。

通过使用 MySQL 代理应用程序解决了这个问题,它将远程数据库镜像到本地 IP 地址。代理应用程序从命令行运行,并且似乎与防火墙客户端一起工作。

于 2012-11-24T20:19:09.263 回答