나는 실제로 오늘 같은 문제 (적어도 동일한 증상)에 부딪쳤다. 필자의 경우 /var/log/apache2/error_log
다음과 같은 오류를 보았습니다.
[Mon Mar 19 15:30:30 2012] [error] [client ::1] Directory index forbidden by Options directive: /var/empty/
그런 다음 /etc/apache2/httpd.conf
이 두 줄을보고…
<IfDefine MACOSXSERVER>
DocumentRoot /var/empty
… 그리고 나중에,이 라인들…
<IfDefine !MACOSXSERVER>
<IfDefine WEBSHARING_ON>
# Some comments were here
DocumentRoot "/Library/WebServer/Documents"
… MACOSXSERVER
이 기계는 서버 기계 가 아니므 로 어떻게 든 정의해서는 안되는 것으로 생각했습니다 . 그런 다음이 컴퓨터에 Lion Server 관리 도구를 설치해야한다는 사실을 기억했으며, Apple의 설명서에 따르면 관리자 컴퓨터의 Mac App Store에서 Lion Server 패키지를 설치하지 않았습니다. 서버 머신으로 고안되었습니다. 어쩌면 실제로 내 관리 컴퓨터를 Mac OS X Server 컴퓨터로 변형했습니다. 다시 확인하기 위해 다음을 실행했습니다.
$ sw_vers
제품 이름 : Mac OS X 서버
제품 버전 : 10.7.3
빌드 버전 : 11D50
물론 내가 원하는 것은 서버 관리 도구를이 컴퓨터에 두는 것만으로도 내 컴퓨터는 이제 Mac OS X Server로 자체보고되었습니다.
아파치 문제로 돌아가서 결국 /etc/apache2/ReadMe.txt
Mac OS X 관련 아파치 정의에 대해 설명했습니다 (더 자세한 정보는 직접 읽으십시오!).
MACOSXSERVER, WEBSHARING_ON, WEBSERVICE_ON과 같은 IfDefine 설정은 /System/Library/LaunchDaemons/org.apache.httpd.plist에있는 Apache의 시작 plist에 의해 설정되거나 설정되지 않습니다.
그래서 필자의 경우 실제로 컴퓨터를 서버로 간주하지 않기 때문에 launchd
plist
Apache가 정의되지 않도록 편집하여 수정하기로 결정했습니다. MACOSXSERVER
시스템 공유 패널의 웹 공유 확인란 에서이 내용을 제어하고 싶습니다. Server.app가 아닌 환경 설정.
그래서이 파일을 편집했습니다.
/System/Library/LaunchDaemons/org.apache.httpd.plist
ProgramArguments
배열 에서이 행을 제거하거나 주석 처리하려면 다음을 수행하십시오 .
<string>-D</string>
<string>MACOSXSERVER</string>
다음과 같이 SGML 주석 시작 / 종료 마커를 앞뒤에 배치하여 주석을 달았습니다.
<!--
<string>-D</string>
<string>MACOSXSERVER</string>
-->
해당 plist
파일에 대한 변경 사항을 저장 한 후 Apache를 정상적으로 다시 시작했습니다.
sudo apachectl graceful
… 그리고 더 좋았습니다!
브라우저에서 내가 가져 오려는 페이지에 대해 "403 Forbidden"결과를 캐시 한 경우 브라우저에서 한 두 번 페이지를 다시로드해야 할 수도 있습니다.
이것이 귀하의 문제의 정확한 근본 원인이 아니더라도, 귀하의 상황을 파악하는 데 도움이되기를 바랍니다.