2012-09-24 3 views
1

저는 시스템에 fedora15를 설치했고, apache와 php5.3 및 mysql을 설치했습니다. 어떤 구성 파일에서도 기본 설정을 변경하지 않았습니다.리눅스 파일 업로드, fwrites가 작동하지 않습니다.

'/ var/www/html /'인 Documentroot에 파일 하나를 업로드하고 PHP 파일을 실행할 때 모든 파일이 성공적으로 실행됩니다.

하지만 파일 업로드, fopen, fwrite, imagemagick 변환 등은 프로그램 작성과 관련된 모든 프로그램이 작동하지 않습니다. 나는 PHP 스크립트를 실행하지만 아직도 액세스 거부 오류를주는 폴더에 777 권한을 부여했습니다.

다음은 사용 권한 거부 오류를 만드는 예제 코드입니다.

$handle = fopen("test.txt","w+"); 
    if(!$handle)die("Could not open file for writing"); 
    fwrite($handle,"Testing Uploads Successfull."); 
    fclose($handle); 

위의 파일이 내 새로 설치 fedora15 시스템 '의/var/www/html/테스트 /'디렉토리에 있습니다.

php 명령 줄을 사용하여 루트 사용자로이 파일을 실행해도 새로운 파일과 그 안에있는 텍스트를 올바르게 작성하지만 실행됩니다. 다른 사용자와 동일한 파일을 명령 줄에서 실행하면 권한 거부 오류가 발생하지만 디렉토리에는 777 권한이 있습니다.

어느 한 사전에이 이상한의 behaiour와

감사를 도와주세요.

+1

app-armor 또는 se-linux 일 수 있습니까? – RomanKonz

+0

답장을 보내 주셔서 감사합니다. 그러나 내가해야 할 일을 알기 위해 더 자세히 설명 할 수 있습니까? – Kishore

+0

그것은 시스템을 보호하는 서비스입니다. 나는 fedore를 사용하는 사람이 아니지만, 이것이 이런 문제를 일으킬 수 있다는 것을 기억합니다. 테스트를 위해 selinux를 비활성화 할 수 있습니다. http://www.crypt.gen.nz/selinux/disable_selinux.html – RomanKonz

답변

1

SELinux는 웹 서버가 파일을 만들고 쓰지 못하게합니다. 자세한 내용은 httpd_selinux(8) 매뉴얼 페이지를 참조하십시오.

+0

RomanKonz와 Ignacio에게 올바른 방향으로 안내해 주셔서 감사합니다. 문제는 지금 해결되었습니다. 그것은 selinux에서만 문제가되었습니다. httpd_write 옵션을 활성화하지 않았습니다. httpd로 문제를 해결했습니다. 로그 다시 한번 감사드립니다. – Kishore

관련 문제