Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache PHP脚本可以';t连接到远程数据库/ODBC/MySQL,但从命令行工作_Php_Windows_Apache_Odbc - Fatal编程技术网

Apache PHP脚本可以';t连接到远程数据库/ODBC/MySQL,但从命令行工作

Apache PHP脚本可以';t连接到远程数据库/ODBC/MySQL,但从命令行工作,php,windows,apache,odbc,Php,Windows,Apache,Odbc,将WindowsVista系统与Apache2.2和PHP5一起使用 我有一个脚本,可以测试到各种ODBC和MySQL数据库的连接。 当脚本从浏览器窗口中加载的Apache运行时,它无法连接到任何远程ODBC或MySQL数据库。本地数据库工作正常。插座连接也不工作 在命令提示符下运行时,所有连接都正常 在ODBC控制面板中测试连接时,它们也可以正常工作。我们网络上不同系统上的其他应用程序可以连接到这些数据库 此外,我还可以从安装在远程位置的另一个系统的Windows下的Apache提供的浏览器窗

将WindowsVista系统与Apache2.2和PHP5一起使用

我有一个脚本,可以测试到各种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");
}
$lmSock=fSockOpen('www.server.com',80,$errno,$errstr,30);
如果(!$lmSock){
echo(“无法打开远程套接字
\n”); } 否则{ echo(“远程套接字成功
\n”); } $odbcConn=odbc_connect('remote.mysql',''); 如果(!$odbcConn){ echo(“无法连接到ODBC remote.mysql服务器
\n”); } 否则{ echo(“ODBC remote.mysql连接成功
\n”); } $odbcConn=odbc_connect('local.sql',''); 如果(!$odbcConn){ echo(“无法连接到ODBC local.sql Server
\n”); } 否则{ echo(“ODBC local.sql连接成功
\n”); } $toyConn=odbc_connect('remote.sql',''); 如果(!$toyConn){ echo(“无法连接到ODBC remote.sql Server
\n”); } 否则{ echo(“ODBC remote.sql连接成功
\n”); } $mysqlConn=mysql_connect('server.address','login','pass'); 如果(!$mysqlConn){ echo(“无法连接到MYSQL服务器。地址服务器
\n”); } 否则{ echo(“MYSQL server.address连接成功
\n”); }
我要检查的第一件事是确保您的连接没有被Windows防火墙阻止。尝试暂时禁用它只是为了测试

如果这没有帮助,您可能想尝试下载WAMP,看看您的安装是否有问题。我不是建议您更换现有的安装(尽管您可能希望它能正常工作),而是建议您尝试确定安装或操作系统是否有问题


问题是我们公司的防火墙。(Microsoft ISA Server 2000)

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

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


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

如果您提供实际的mysql\u连接错误,可能会有所帮助…您的代码到处都是---@请看,这不是实际的代码,服务器地址/密码已被删除。当从命令行运行时,代码可以工作,但在浏览器中,只有到本地服务器的连接可以工作。是否为远程MySQL连接指定端口3306?执行以下操作:开始>运行>cmd:键入不带引号的“php-i-vv>>%userprofile%/Desktop/php.txt”打开该端口并查看odbc设置。windows防火墙关闭。这些连接只在Apache、尝试通过ODBC控制面板或从命令行进行连接时出现问题,一切正常。