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;
}
Другие вопросы по тегам