Apache PHP脚本可以';t连接到远程数据库/ODBC/MySQL,但从命令行工作
将WindowsVista系统与Apache2.2和PHP5一起使用 我有一个脚本,可以测试到各种ODBC和MySQL数据库的连接。 当脚本从浏览器窗口中加载的Apache运行时,它无法连接到任何远程ODBC或MySQL数据库。本地数据库工作正常。插座连接也不工作 在命令提示符下运行时,所有连接都正常 在ODBC控制面板中测试连接时,它们也可以正常工作。我们网络上不同系统上的其他应用程序可以连接到这些数据库 此外,我还可以从安装在远程位置的另一个系统的Windows下的Apache提供的浏览器窗口运行此脚本 Windows Apache服务器系统已禁用防火墙,但它位于网络防火墙/代理之后。虽然由于脚本在命令行中工作,所以我认为这不是防火墙问题 我已经看到了这方面的解决方案,但它们是针对Linux系统的,我找不到任何适用于Windows机器的解决方案 这可能是php.ini或http.conf文件中的某些设置吗?这是Windows设置吗 这是密码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提供的浏览器窗
$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控制面板或从命令行进行连接时出现问题,一切正常。