2012-04-27 6 views
5

pojawia się komunikat ostrzegawczy: file_get_contents failed to open stream zgody odmówionophp file_get_contents zwraca null gdy allow_url_fopen jest

Mam ustawiony all_url_open włączona w pliku php.ini.

Mój plik php znajduje się na moim serwerze apache i próbuje uzyskać dostęp do adresu URL (który zwraca JSON) z serwera Tomcat na tym samym komputerze.

Kod w pliku php wygląda następująco:

$srcURL = 'http://samemachine:8080/returnjson/'; 

    $results = file_get_contents($srcURL); 

Próbowałem również zwijania i nic nie zwraca i nie trafić na serwer tomcat albo:

function curl($url){ 
     $ch = curl_init(); 

     curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language: en-us')); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
     $data = curl_exec($ch); 

     curl_close($ch); 
     return $data; 
    } 

Dlaczego Permission denied ?

+1

Zakładam, że oznacza to znaczy [ 'allow_url_fopen'] (http: // php. net/allow_url_fopen)? – Wiseguy

+0

Czy jest to być może zdalny serwer zwracający błąd odmowy dostępu 401? Czy próbowałeś już kliknąć adres URL w przeglądarce? –

+0

Czy możesz uzyskać dostęp do pliku za pomocą przeglądarki? –

Odpowiedz

2
  • Upewnij się, że to naprawdę allow_url_fopen i nie all_url_open jak napisałeś
  • dwukrotnie sprawdzić uruchamiając phpinfo(). Upewnij się, że wyświetla listę opcji jako włączone. Jeśli nie zrestartować serwer WWW
  • Do debugowania curl problemu, uruchom Wireshark i oglądać na interfejsie lo