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 早期作为 CGI 安装在 Windows 中。我想我会看看它在设置为 Apache 处理程序时是否仍然无法工作并且它可以工作!http://www.php.net/manual/en/install.windows.apache2.php

希望这对某人有帮助!

于 2012-04-19T12:48:09.607 回答