что может заставить curl возвращать false при попытке доступа к локальному файлу?

Этот сайт работает уже несколько месяцев и работает отлично. У меня есть страница PHP, которая создает счет-фактуру из данных в URL-адресе (например, viewinvoice.php? Id = 250 строит счет-фактуру на основе записи 250). Эта страница доступна через веб-браузер и отлично работает.

На совершенно другой странице (т.е. test.php) я пытаюсь получить доступ к этому файлу через cURL. Однако, когда я делаю вызов и var_dump результаты, я получаю bool (false).

Вот функция, которая вызывает вызов cURL:

function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); return $data; } 

HOME – это константа, которая обозначает полный URL-адрес (например, http://www.example.com/ ).

 $invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242'); echo $invoice_contents; var_dump( $invoice_contents ); 

Я попытался изменить URL-адрес на внешний URL-адрес (например, http://www.google.com/ ), и страница загружается просто отлично. Я получаю домашнюю страницу Google. Но любая страница, находящаяся в том же домене, не загружается. Есть ли причина, что это произойдет?

Я не администратор сервера, но у меня есть root-доступ к серверу. Я недавно не изменил настройки, но администратор сервера, возможно, обновил версию apache или php?

В любом случае, есть ли настройка, которую я могу изменить, чтобы снова выполнить эту работу?

PS Я просто попытался сделать этот точный вызов с внешнего сервера (другой домен), и он работает нормально.

После выполнения завитка поставьте что-то вроде этого:

 echo curl_getinfo($ch) . '<br/>'; echo curl_errno($ch) . '<br/>'; echo curl_error($ch) . '<br/>'; 

Вы увидите, что не удалось во время выполнения завитки.

Дополнительная информация: curl_getinfo curl_errno curl_error

После выполнения поместите эту переменную, чтобы проверить свои ошибки

 echo "<pre>"; var_dump( curl_getinfo($ch) ) . '<br/>'; echo curl_errno($ch) . '<br/>'; echo curl_error($ch) . '<br/>';