【发布时间】:2014-01-23 23:25:58
【问题描述】:
在 PHP cURL 无法解析主机名时首次发现。 fopen('google.com', 'r') 也因同样的错误而失败。
我检查了我的 php.ini 设置和allow_url_fopen = On
我正在使用 Nginx 运行自定义编译的 PHP-FPM。
这是我的配置命令:
./configure --disable-rpath --disable-cli --disable-cgi --enable-fpm --with-fpm-user=php --with-fpm-group=php --enable-mbstring --enable-mbregex --enable-bcmath --enable-zip --enable-sockets --enable-pdo --enable-opcache --enable-ftp --with-regex --with-mhash --with-curl --with-zlib --with-pcre-regex --with-mcrypt --with-openssl --with-gd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
我可以运行任何需要解析 dns 解析的命令(wget、ping 等)在命令行上运行良好,resolv.conf 也很好。我正在运行 Cent OS 6.5
在让 PHP 开始解析主机名方面我有什么遗漏吗?
【问题讨论】:
-
fopen('google.com', 'r') 应该寻找一个名为 google.com 的本地文件,这可以理解为失败。您传递给 fopen 的参数究竟是什么导致它失败?
-
它实际上尝试了google.com
-
我真的不认为它会尝试 google.com。我想如果你想让它尝试 google.com,你必须这样做: fopen('google.com', 'r');否则,您将如何在自己的驱动器上打开名为 google.com 的文件?当然,它把它变成了一个链接。试试: (fopen('http://' . 'google.com', 'r');