Я на самом деле столкнулся с этой же проблемой (по крайней мере, те же симптомы) только сегодня. В моем случае я посмотрел на /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 Admin на этом компьютере, и в документации Apple мне было сказано установить пакет Lion Server из Mac App Store на моем компьютере администратора, хотя это было не так. предназначен для серверной машины. Так что, возможно, это фактически / случайно преобразовало мою машину администратора в машину Mac OS X Server. Чтобы перепроверить, я побежал:
$ sw_vers
ProductName: Mac OS X Server
ProductVersion: 10.7.3
BuildVersion: 11D50
Конечно же, теперь мой компьютер сообщал о себе как о Mac OS X Server, хотя все, что я хотел сделать, - это установить средства администрирования сервера на этом компьютере.
Возвращаясь к проблеме Apache, я в конце концов нашел /etc/apache2/ReadMe.txt
, в котором рассказывалось о тех специфичных для Mac OS X определениях Apache (не забудьте прочитать его самостоятельно для получения дополнительной информации!), А затем он сказал следующее:
Эти настройки IfDefine - MACOSXSERVER, WEBSHARING_ON, WEBSERVICE_ON - устанавливаются или не устанавливаются с помощью launchd plist Apache, который присутствует в /System/Library/LaunchDaemons/org.apache.httpd.plist.
Так что в моем случае, я решил исправить это путем редактирования в этом launchd
программ для Apache plist
не определен MACOSXSERVER
так как я не считаю свою машину сервер, и я хочу , чтобы контролировать этот материал с Web Sharing флажок в Sharing Панель системных настроек, а не из 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 Запрещено" для страницы, на которую я пытался попасть.
Даже если это не та же самая причина вашей проблемы, я надеюсь, что моя история поможет вам разобраться в вашей ситуации.