2017-01-11 2 views
1

ArchLinux에서 서버를 실행하려고하는데 아파치와 PHP가 정상적으로 작동하지만 PHP로 파일을 업로드 할 수 없습니다. . 나는 Stackoverflow에서 이런 종류의 많은 질문을 보았고 내가 찾은 모든 제안을 사용한 것처럼 보이지만 여전히 얻을 수있다.move_uploaded 파일 : 스트림을 열지 못했습니다 : /srv/http/upload.php에 권한이 없습니다.

failed to open stream: Permission denied in /srv/http/upload.php 

오류.

(나는 잘하지 그게 전부 알고 있지만 내가 로컬로 일하고 내가 777에/tmp를 /,/가정/관리자/SCRIPTS/TR 및 /는 SRV/HTTP에 대한 사용 권한을 설정

Warning: move_uploaded_file(): Unable to move '/tmp/phpZvJK1l' to '/home/administrator/SCRIPTS/tr/solution.cpp' in /srv/http/upload.php on line 20 

정확하게하려면 지금 당장 나는 그것을 어떻게 든 작동 시키려고한다).

또한이 디렉토리의 모든 소유자를 http (즉, PHP를 실행하는 사용자)로 설정했지만 여전히 문제가 없습니다.

답변

2

일부 PHP 구성에서는 사용자 docroot 디렉토리 외부에서 파일 액세스를 허용하지 않으므로 PHP 내에서/tmp에 액세스 할 수 없습니다. 파일을/home/administrator 디렉토리의 임시 디렉토리 - 웹 브라우저에서 액세스 할 수없는 디렉토리 (docroot의 형제 디렉토리)로 업로드하십시오. 을/tmp 디렉토리에

+0

임시 디렉토리를/home/temp로 변경했지만 여전히 동일한 오류가 발생합니다. 내가 방금 알 수없는 바보 같은 실수를하고있는 것 같습니다. – Petr

+0

UPD : 모두 완료되었습니다./administrator 폴더 소유자를 http : // – Petr

0

사용 권한 부여 : 나는 웹 프로젝트에서 작업 할 때

sudo는 chmod를 777/tmp를

+0

으로 변경했습니다./tmp 문제가 아닙니다. – funilrys

+0

/tmp 문제가 발생하면 그는/tmp/phpZvJK1l 파일을 만들 수 없습니다. – funilrys

0

아치 사용자로서 나는 같은 문제가 있습니다.

내가 http://localhost/~yourusername/를 통해 기본적으로 사용할 수있는 아치 위키

사용자 디렉토리의 this 부분을보고 ~/public_html을의 내용을 표시 할 추천 해드립니다가 (이/등으로 변경 될 수 있습니다/아파치/conf/extra/httpd-userdir.conf).

는 이렇게하는 그래서 당신은 당신이 아파치가 얻을 수 있도록 홈 디렉토리 권한이 제대로 설정되어 있는지 확인해야합니다 ~/public_html을 디렉토리 다음

을 만들어야합니다. 여러분의 홈 디렉토리 ~/public_html을은 ("나머지 세계") 다른 사람에 대한 실행해야합니다 : 당신이 /srv/http/에서 파일을 넣을 필요가 없습니다 그 후

$ chmod o+x ~ 
$ chmod o+x ~/public_html 
$ chmod -R o+r ~/public_html 

을 지금 개발로 ~/public_html을 사용할 수 있습니다 예배 규칙서.

+0

@Petr이 방금 내 답변을 "아치"지향으로 업데이트했습니다. :) – funilrys

관련 문제