2011-07-29 2 views
4

약간 당혹 스럽습니다.php : file_get_contents()는 CLI에서 작동하지만 서버에서 호출 할 때 작동하지 않습니다. (페이지에서)

일부 URL을 줄이기 위해 bit.ly PHP API를 사용하고 있습니다. 이것은 로컬 호스트에서 잘 작동하지만 - 내 서버 (아파치에서 실행되는 PHP)에서 시도했을 때 file_get_contents()는 빈 문자열을 반환합니다.

나는 나의 아파치 로그를 확인하고 아파치 경고/오류를 볼 수 없습니다, 그래서 나는 (PHP CLI를 사용하여) CL에서 같은 명령 시도 :

>php -a 
php > $long_url = some_url_encoded_string; 
php > echo file_get_contents($long_url); 
{"errorCode": 0, "errorMessage": "", "results": {"http://www.example.html": {"userHash": "abc", "shortKeywordUrl": "", "hash": "xyz", "shortCNAMEUrl": "http://bit.ly/foobar", "shortUrl": "http://bit.ly/foobar"}}, "statusCode": "OK"} 

사람이 문제의 원인이 될 수 있는지 알고 있나요을 ?

+0

에 위치한 서버는 SELinux를 실행합니까? 그렇다면, 켜져 있어야하는 SELinux 부울'httpd_can_network_connect'가 있습니다. CLI에서 작동하면'allow_url_fopen'이 php.ini에서 켜져 있다고 가정합니다. –

+0

@ 마이클 : 아니요, 서버는 헤드리스 우분투 10.0.4 LTS 설치 – oompahloompah

답변

1

아마도 PHP 구성과 관련이 있습니다. 많은 서버는 CLI와 Apache에 대해 다른 php.inis를 가지고 있습니다./etc/php5 /를 점검하여 둘 이상의 구성이 있는지 확인하십시오. 특히 allow_url_fopen을 찾고 있어야합니다.

편집 : 기본적으로 그와 실제로 우분투 선박이의 .INI이 /etc/php5/apache2/php.ini

+0

예입니다. allow_url_fopen이 꺼져있었습니다. 참을성이없는 '나는 너무나도 그렇다.'라고 대답하면서, 나는 곱슬을 대신 사용함으로써 정답을 얻었습니다. 어쨌든 당신의 대답을 받아 들일 것입니다. 신속한 응답에 감사드립니다! – oompahloompah

관련 문제