2017-04-20 1 views
1

url에서로드하려고합니다. localhost에서 모든 것이 올바르게 작동합니다. 내 웹 서버에서 코드를 실행하면file_get_contents() : 스트림을 열지 못했습니다 : 사용 권한이 거부되었습니다.

Warning: file_get_contents(url): failed to open stream: Permission denied in /home/www/ .../imageup.php on line 64

내가 google에 검색 및 stackoverflow 많은 답변을 시도한을 말하고있다. 누구나 proper permission을 파일 및 폴더로 설정하려고합니다.

php filepermission을, 폴더에 777을 설정했습니다.

일부 명령을 실행하는 중 일부 응답이 있지만 수동으로 권한을 허용하도록 해당 코드를 실행하는 콘솔을 찾을 수 없습니다.

나는 허가가있는 것이 있지만 알아 내지 못하는 것을 알고 있습니다.

$file = file_get_contents($image['src']); 
+0

3 질문. 1) src는 무엇입니까? 2) 귀하의 웹 호스트 루트는 무엇입니까 3) 귀하의 PHP 파일의 동일한 폴더에있는 파일에 해당 기능을 사용할 수 있습니다. – Augwa

+0

1.'$ image [ 'src']'는'url'을 반환합니다. – Sudarshan

+0

그래서'http : // example.org/image.png'와 같습니다. 당신이 허가를받지 못하면'allow_url_fopen'은 그릇된.이 stackoverflow 질문, http://stackoverflow.com/questions/3488425/php-ini-file-get-contents-external-url을 참조하십시오. 웹 호스팅 제공 업체에서 허용하지 않습니다. – Augwa

답변

0

프로젝트 루트 디렉토리 및 실행 다음 명령으로 이동하십시오 (사람이이 중복이며이있을 수 있습니다,하지만 난 해결책을 찾기 위해 실패하고 말할 수 있습니다)

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; 

나는 그것이 당신의 문제를 해결할 수 있기를 바랍니다.

+0

코드를 실행하려면 콘솔이 필요합니까? 또는 코드에서 파일로? – Sudarshan

1

imagestmp_file_uploadroot 사용자에게만 쓰기 가능합니다. 업로드가 작동하려면 해당 폴더의 소유자를 httpd 프로세스 소유자와 같게 만들거나 전역 적으로 쓰기 가능하도록해야합니다 (나쁜 습관).

1. 아파치 프로세스 소유자를 확인하십시오 : $ps aux | grep httpd. 첫 번째 열은 소유자가 일반적으로는 이미지와 tmp_file_upload의 소유자가 nobody이든 1 단계

$sudo chown nobody /var/www/html/mysite/images/

$sudo chown nobody /var/www/html/mysite/tmp_file_upload/

에있는 소유자가 될 수 nobody

2.Change 될 것입니다 될 것입니다

3.Chmod imagestmp_file_upload은 필요한 경우 소유자가 쓰기 권한을 부여합니다. [이미 사용하고있는 것 같습니다.] @ 드미트리 Teplyakov 대답에서 언급.

이 행동 앞으로 일어날이, 수동 http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir을 확인 그것은 또한에 대한 open_basedir 지침을 이야기 있습니다 이유

$ sudo chmod -R 0755 /var/www/html/mysite/tmp_file_upload/

4.For 자세한 내용

$ sudo chmod -R 0755 /var/www/html/mysite/images/.

관련 문제