考虑这个简单的代码:
<?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的同一系统上,如果我从命令提示符ex:c:\ php \ php.exe filename.php运行php(其中上面的代码在文件名中),那么我就不要得不到错误!
服务器onelocalserver.com正在侦听端口25:在那里运行一个SMTP服务器。
有什么想法吗?这真是太棒了
提前致谢
答案 0 :(得分:0)
经过多次尝试使用不同的IP地址后,我意识到唯一的问题是端口25上的fsockopen。它适用于命令行界面,但无法通过Web浏览器工作。 PHP早先作为CGI安装在Windows中。我想我会看到它在设置为Apache处理程序时是否仍然无法正常工作! http://www.php.net/manual/en/install.windows.apache2.php。
希望这有助于某人!