0

Apache2.2およびPHP5でのWindowsVistaシステムの使用。

さまざまな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をダウンロードして、インストールに問題がないかどうかを確認してください。既存のインストールを置き換えることはお勧めしません(ただし、機能する場合は変更することをお勧めします)。これは、インストールまたはOSに問題があるかどうかを判断するために行うことをお勧めします。

WAMPダウンロード

于 2012-11-15T19:22:10.677 に答える
0

問題は、当社のファイアウォールでした。(Microsoft ISA Server 2000)。

このファイアウォールは、すべてが実行されているサーバーを含む内部システムにインストールされたユーティリティ (ISA クライアント) を使用します。

コマンド ラインの PHP スクリプトと ODBC コントロール パネルは、このクライアントを介して動作するように思えます。残念ながら、何らかの理由で Apache にはありません。

これは、MySQL プロキシ アプリケーションを使用して解決しました。これは、リモート データベースをローカル IP アドレスにミラーリングします。プロキシ アプリケーションはコマンド ラインから実行され、ファイアウォール クライアントで動作するようです。

于 2012-11-24T20:19:09.263 に答える