MAMP php 5.6.2 file_get_contents не работает (тайм-аут)
Я искал и не могу найти причину, почему это не работает. Я попытался выполнить из командной строки, а также Apache, и это не работает.
<?php
echo file_get_contents("http://google.com");
?>
У меня есть простой скрипт php, как показано выше, который просто делает запрос в Google и выводит содержимое.
Ошибка:
Warning: file_get_contents(http://google.com): failed to open stream: Operation timed out in /Applications/MAMP/htdocs/p.php on line 2
Версия PHP: PHP 5.6.2 (cli) (сборка: 20 октября 2014 г., 16:21:27)
allow_url_fopen = On
Странная часть, если я использую /usr/bin/php, он работает нормально. (Встроенный в яблочную версию)
Вот захват провода: https://www.dropbox.com/s/u7jdg494fmud22i/packet_capture_php_network.pcapng?dl=0
2 ответа
Ваш сервер Apache может иметь ограничения на это. Проверьте этот пост, который детализирует исправление. Должно быть просто изменение конфигурации в вашем php.ini
файл (убедитесь, что вы изменили MAMP PHP php.ini
файл).
Я предлагаю вам использовать альтернативу CURL:
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}