0

次の簡単なコードを検討してください。

 <?php
   error_reporting(E_ALL);
   //error_reporting(E_STRICT);
   date_default_timezone_set('Asia/Calcutta');
   $smtp_server = fsockopen("onelocalserver.com", 25, $errno, $errstr, 120);
   if(!$smtp_server)
     {
  // We have an error, do something
  echo " Error found! <br>$errno <br>$errstr";
  exit;
     }
  ?>

Windows XP + php5.3.8 + Apache 2.2 で、次のエラーが表示されます: 警告: fsockopen(): onelocalserver.com:25 に接続できません (ターゲット マシンがアクティブに拒否したため、接続できませんでした。)

ただし、Apache と PHP がインストールされている同じシステムで、コマンド プロンプトから php を実行すると、例: c:\php\php.exe filename.php (上記のコードはファイル名にあります)、取得できません。エラー!

サーバー onelocalserver.com はポート 25 でリッスンしています。そこでは SMTP サーバーが実行されています。

何か案は?これは本当に奇妙です

前もって感謝します

4

1 に答える 1

0

異なる IP アドレスで何度か試行した後、唯一の問題はポート 25 の fsockopen にあることに気付きました。コマンド ライン インターフェイスではうまく機能しますが、Web ブラウザーでは機能しませんでした。PHP は以前は Windows に CGI としてインストールされていました。Apache ハンドラーとしてセットアップしたときにまだ機能しないかどうかを確認すると思いましたが、機能します。http://www.php.net/manual/en/install.windows.apache2.php

これが誰かを助けることを願っています!

于 2012-04-19T12:48:09.607 に答える