2013-02-19 2 views
0

test.php는 test.txt 파일을 열고 씁니다. 그것은 하나의 호스팅 서버에서 잘 작동합니다.텍스트 파일을 작성하는 방법

코드를 다른 호스트로 마이그레이션 한 후 test.php는 이제 test.txt를 쓸 수 없습니다. 이 오류는 보여줍니다

Warning: fopen(/home/username/public_html/test.txt) 
[function.fopen]: failed to open stream: Permission denied 

내가 권한을 부여 실종 무엇 그것은 단지 755

에있는 test.txt 파일, TEST.TXT가 설정된 원래 호스트에서 777로 설정되어있을 때 작동합니다 test.php가이 새 호스트에서 777없이 파일에 쓸 수 있습니까?

또한 파일 업로드 PHP 스크립트도 작동하지 않습니다.

+2

전체 폴더를 허용하려고 시도합니다. – user2051349

+0

테스트 파일은 public_html 폴더에 있으며 750으로 설정되어 있습니다. 어떻게 설정해야합니까? 왜 파일이 ​​아닌가? – detailCode

+1

이전 호스트에서 PHP는 파일 소유자 권한으로 실행 중이 었습니다. 새 파일은 퍼미션이 제한된 사용자 (예 :'www','apache' 또는'nobody')로 실행 중이며 다른 사용자 파일을 변경할 수 없습니다. –

답변

1

중요한 권한뿐 아니라 파일을 소유 한 사람도 아닙니다. 폴더/파일이 웹 서버를 실행하는 데 사용되는 동일한 사용자의 소유이면 755이면 충분합니다.

public_html 디렉토리에 직접 쓰는 것은 보안 상 매우 위험합니다. 난 하위 디렉토리 (아마도 public_html 밖에있는 폴더)를 만들고 그에게 적절한 권한/소유권을 부여하는 것이 좋습니다.

세계에 쓰기 권한을 부여하는 대신 apache (또는 사용중인 웹 서버가 사용되는) (일반적으로 Apache 또는 www-data와 같은)를 실행하는 사용자가 소유 한 폴더를 갖는 것이 더 안전합니다.

+0

옮길 것입니다. 이 사용자 액세스 물건,. htaccess 또는 php.ini에서 설정할 수 있습니까? – detailCode

+1

아니, 그 * nix 소유권/사용 권한 - chown (소유자 변경) 및 chmod (사용 권한)를 사용하여 명령 줄/ftp에서해야 할 일. 소유자를 변경할 수없는 경우 허용 권한 설정이 유일한 방법 일 수 있지만 독립 실행 형 폴더로 제한하면 위험이 최소화됩니다. –

관련 문제