【发布时间】:2014-09-08 10:16:12
【问题描述】:
首先,我使用的是 Windows (XP -- 是的,我知道)、php-fpm (5.4.9) 和 nginx (1.5.10)。我的本地开发环境运行良好。
我使用本地域名的.dev 扩展名来指向本地网站项目。例如:example.dev 或 www.example.dev。
我已设置我的主机文件 (C:\Windows\System32\drivers\etc\hosts) 以包含以下附加记录:
127.0.0.1 example.dev www.example.dev
当我 ping 他们时,域名www.example.dev 解析为127.0.0.1,正如您所期望的那样。
我可以在我的浏览器中访问该页面:http://www.example.dev,它会显示一些您希望看到的“Hello World”文本。
现在,如果我在浏览器中运行以下脚本,它就不起作用了:
<?php var_dump( file_get_contents( 'http://www.example.dev' ) ); ?>
对我来说,nginx 只是超时,即使我可以在浏览器中毫无问题地导航到它。
现在对于 cURL,以下操作也不起作用:
<?php
$url = 'http://www.example.dev';
$ch = curl_init();
$options = array(
'CURLOPT_URL' => $url,
'CURLOPT_HEADER' => TRUE,
'CURLOPT_FAILONERROR' => FALSE,
'CURLOPT_FOLLOWLOCATION' => TRUE,
'CURLOPT_AUTOREFERER' => TRUE,
'CURLOPT_RETURNTRANSFER' => TRUE,
'CURLOPT_FRESH_CONNECT' => TRUE,
);
foreach ( $options as $k => $v )
{
curl_setopt( $ch, constant( $k ), $v );
};
$response = curl_exec( $ch );
$header_size = curl_getinfo( $ch, CURLINFO_HEADER_SIZE );
$status_code = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
$info = curl_getinfo( $ch );
curl_close( $ch );
var_dump( $response ); exit;
?>
但是,如果我将 example.dev 替换为 localhost,这些代码示例似乎确实有效。
【问题讨论】:
标签: php windows curl nginx dns