오늘은 IIS에서 PHP 데모를 실행해 보겠습니다. IIS에서 웹사이트 구성은 다음과 같습니다.
응용 프로그램 풀은 통합 모드의 .net Framework 2.0입니다(PHP가 fastCGI 모드에서 실행되므로 2.0인지 4.0인지는 중요하지 않습니다). 응용 프로그램 풀 ID는 IIS에 내장된 NETWORKSERVICE로 구성되며 인증은 다음과 같습니다. 사용된 방법은 익명 신원 확인입니다.
로컬 홈페이지를 열어서 php페이지에 접속했더니 500에러가 발생하더군요.
권한 문제입니다. 가장 간단한 해결책은 C:UsersAdministratorPhpstormProjectsphpDemo의 권한을 모든 사람으로 설정하고 모든 권한을 허용하는 것입니다.
php 페이지를 다시 방문하여 성공했습니다.
위 방법은 충분히 간단하지만 너무 안전하지도 않습니다. 이를 위해 로컬 데모를 설정하는 것은 일반적으로 문제가 되지 않지만, 실제로 온라인 상태가 되면 조만간 문제가 발생할 것입니다.
그래서 재설정하고 NETWRORKSERVICE 계정에 디렉터리의 읽기 전용 권한을 부여하고 다시 시도했습니다
그러나 여전히 문제가 해결되지 않고 접속시 401에러가 발생했습니다
오류 메시지에는 로그인한 사용자가 익명이라는 내용이 포함되어 있습니다. 웹사이트에서 인증을 확인하세요(그런 다음 익명 인증->편집을 클릭하세요). 기본적으로 웹사이트는 로그인 시 기본 로그인 사용자를 사용하는 것으로 나타났습니다. 메소드는 IUSR(우리가 보는 익명 로그인 사용자)의 경우
입니다.그러면 해결책은 다음과 같습니다.
1. NETWORKSERVICE의 이전 설정과 유사하게 IUSR을 C:UsersAdministratorPhpstormProjectsphpDemo의 읽기 권한으로 설정합니다.
2. 또는 애플리케이션 풀 ID를 사용하도록 선택합니다.
테스트 결과 1번과 2번 방법 모두 성공했습니다.
참고: NETWORKSERVICE는 IIS7의 iis_iusers 사용자 그룹에 속합니다. NETWORKSERVICE의 이전 설정을 iis_iusers의 설정으로 변경할 수도 있습니다. 이를 통해 문제를 해결할 수도 있지만 권한이 더욱 완화됩니다.
위 내용은 관련 내용을 포함하여 PHP가 fastCGI 모드에서 iis에서 실행될 때 발생하는 파일 시스템 권한 문제와 해결 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.