2010-06-07 5 views
0

fopen 함수가 PHP에서 작동하지 않습니다.브라우저에서 fopen & fwrite 기능이 작동하지 않습니까?

나는 내 PHP 파일에 다음 코드를 썼다.

  $fh = fopen("/home/sugumar/Public_html/sugumar/public_html/123","a+"); 

      fwrite($fh,"hello"); 

이 코드는 명령 줄에서 실행했습니다. php file_name.php는 정상적으로 작동합니다. 하지만 브라우저에서이 코드를 실행하면 다음 오류가 표시됩니다.

경고 : fopen을 (로그/add_employee.logs는) 는 [function.fopen] : /home/sugumar/Public_html/sugumar/public_html/HRMS/HRMS_add_emp_DB.php 에서 거부 권한 : 스트림을 열지 못했습니다 라인 111

경고 :에 fwrite() : 공급 라인 인수 /home/sugumar/Public_html/sugumar/public_html/HRMS/HRMS_add_emp_DB.php 유효한 스트림 리소스 아니다 113

,

이 문제를 해결하는 방법?

미리 감사드립니다.

답변

4

을 오류 메시지는 사용 권한 문제가있는 public_html 폴더가 아니라 Logs 폴더 ... 특히 Logs 폴더의이 특정 파일에 "쓰기"액세스가 없음을 나타냅니다. add_employee.logs

사용 권한을 변경하려면 로그 폴더의 위치를 ​​찾은 다음 SSH에 액세스 할 수 있으면 서버의 로그 폴더로 이동하여 다음을 입력하십시오.

chmod 666 add_employee.logs 

이것은 당신의 PHP 파일에 쓸 수 있도록, + 읽기, 쓰기 위해 add_employee.logs의 권한을 변경합니다.

SSH가없는 경우 FTP 클라이언트를 사용하여 서버에 연결해보십시오. 그런 다음 호스팅 제공 업체에서이 폴더에 대한 FTP 액세스를 허용하는지 여부에 따라 서버의 Logs 폴더로 이동하십시오. 보유한 FTP 클라이언트에 따라 파일/폴더를 마우스 오른쪽 단추로 클릭하고 선택한 파일/폴더에 대한 사용 권한을 변경할 수 있어야합니다.

FTP를 사용하여 로그 폴더에 액세스 할 수없는 경우 호스팅 제공 업체는 사용자가 로그인 할 수있는 CPanel 웹 사이트를 제공해야합니다. CPanel에서 Logs 폴더에 액세스 할 수있는 파일 관리자의 종류에 액세스해야하며 거기에서 파일 사용 권한을 변경할 수 있습니다. 귀하의 호스팅 제공 업체가 사용하는 CPanel 소프트웨어가 무엇인지 전혀 모르기 때문에 여기에 지침을 제공 할 수 없으며 모두 매우 다릅니다.

+1

로그 파일의 소유자를 설정하는 이유 실행 가능한 비트? 그것은 단지 문제를 요구하는 것일뿐입니다. 특히 세계가 쓰기 쉽기 때문에. 666으로 설정하십시오. 미신적이고 숫자를 감당할 수 없다면 말입니다. – Piskvor

+0

좋은 캐치. 나는 The Beast Number를 사용하기 위해 게시물을 개정했습니다. 감사! –

1

파일을 수정할 수 있도록 웹 서버가 실행중인 사용자에게 적절한 권한이 설정되어 있지 않습니다. 사용 권한을 적절히 수정하려면 chmod 등을 사용하십시오.

0

오류 메시지가 자체 설명입니다 : 권한이/FTP 클라이언트를 사용하여 0777에이 디렉토리

대문자 생각에있는 파일에 대한 웹 서버 쓰기 액세스 권한을 부여

당신은/public_html을 chmod를해야

거부 P 매우 의심스러운 것 같습니다.

2

웹 서버에서 쓰기 권한이있는 디렉토리를 쓰기 권한으로 설정해야합니다. 예를 들어

:

chown -R www-data:www-data /home/sugumar/Public_html/sugumar/public_html/123 
chmod 644 /home/sugumar/Public_html/sugumar/public_html/123 
+1

그들에게 FTP로 액세스 할 수 없으므로 –

+0

사실 FTP를 사용하는 경우 디렉토리 권한 만 수정하면됩니다. chmod 777/home/sugumar/Public_html/sugumar/public_html/123 –

1

다른 사용자들에 의해 지적 된 바와 같이, 웹 서버에서 실행되는 경우, 해당 파일에 대한 권한이 없습니다.

그러나 오히려 그 디렉토리에 권한을 부여, 나는 다른 파일을 사용하는 것이 좋습니다 것입니다 : 내가이 외에 777에 공개 HTML 폴더를 chmod를 위해 모든 좋은 아이디어라고 생각하지 않습니다

$fh = fopen("/var/tmp/123","a+"); 
관련 문제