2010-06-04 4 views
3

내가 사용하는 PHP 파일이 file_get_contents()크론 file_get_contents() 오류

그것은 브라우저에서 잘 작동하지만 cron 작업으로 실행할 때 다음과 같은 오류와 함께 실패합니다

경고 : file_get_contents () : 내가 사용하고있는 무슨 URL 파일 액세스가 줄에 /path/to/the/phpfile.php에 서버 구성에서 사용할 수 없습니다 (22)

이다 :

/path/to/the/phpfile.php

Iv'e 이미 php.ini 파일에 allow_url_fopen = true을 설정하지만 어떤을하지 않는 것 -q는/usr/빈/PHP5 효과.

모든 것이 브라우저에서 완벽하게 작동합니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

https 인 보안 프로토콜에서 읽으십니까? – Sarfraz

+0

아니요, http API 호출입니다. – Yeti

답변

1

원격 시스템에서 파일을로드하는 경우에는 대신 curl을 사용해야합니다. file_get_contents는 네트워크 지연, 리디렉션 또는 오류 캡처를 처리하지 않습니다. 그리고 서버 구성에서는 분명히 비활성화되어 있습니다.

0

실수로 시스템에 둘 이상의 PHP 및/또는 php.ini 사본이있을 수 있습니다. PC에 대한 관리자 권한이 있습니까? php에 대한 전 세계 검색을 수행하고 어떤 결과가 나타나는지 확인하십시오.

+0

이것은 내 웹 서버의 WRT이며 PC에 액세스 할 수 없습니다. "PHP의 사본"으로 PHP의 다른 버전을 의미합니까? – Yeti

+0

다른 설치, 다른 버전 또는 다른 구성 파일을 의미했습니다. 예를 들어, 크로노스의 대답. – zildjohn01

2
  1. php --info | more
  2. 실행을 수행하고의 php.ini 파일

또는 당신이 할 --php-ini /path/to/ini (사용할 수있는 (상위 5 선)

  • 변화 사용하는 php.ini 파일 참조 man php)를 사용하여 사용할 ini 파일을 지정하십시오.

  • +0

    내 답변을 병합하면 상당히 완전한 대답이 될 것이라고 생각합니다 :) – chronos

    +0

    php --info "more show - /usr/local/php-5.2.6-1/etc/php.ini. 그러나 찾을 수 없습니다. 그 폴더? – Yeti

    +0

    /home/my_site_folder에 액세스 할 수 있지만 어디에서나/usr이 표시되지 않습니다. 이것은 php.ini 파일을 변경할 수 없다는 것을 의미합니까? – Yeti

    1

    적어도 일부 Linux 배포판에는 여러 PHP 구성 (php.ini 파일)이 있습니다. 다른 구성은 PHP 웹 (아파치 통해) 호출 및 명령 라인에 대한 호출을 위해 사용되는 상기 예에서

    /etc/php5/apache2/php.ini 
    /etc/php5/cli/php.ini 
    

    : 예를 들어, 데비안 테스트는 두있다.

    이 문제가 될 수 있습니다.

    0

    대신 php -q를 사용하면 cron 구성에서 php -cron을 사용하십시오. 그것은 나를 위해 작동합니다.