Apache не отвечает на OS X Mountain Lion после обновления

Apache не отвечает на OS X Mountain Lion после обновления

У меня возникли проблемы с настройкой Apache на моем MacBook в Mountain Lion после обновления с Leopard. Я попробовал следующееэти инструкции. У меня LoadModule php5_module libexec/apache2/libphp5.soраскомментирована строка в /etc/apache2/httpd.conf, у меня есть my_user_name.confфайл в /etc/apache2/usersс содержимым:

<Directory "/Users/sarah/Sites/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

У меня есть файл index.html в /Users/my_user_name/Sites, имеющий права 644 и принадлежащий my_user_name.

  • Однако когда я захожу на сайт http://localhost/~my_user_name, я все равно получаю сообщение 403 Forbidden.
  • Я создал /Library/WebServer/Documents/phpinfo.phpего <?php phpinfo(); ?>в нем, и когда я просматриваю его в браузере, я вижу только исходный код.
  • Когда я захожу на http://localhost, я вижу «Это работает!». Однако после этого, sudo apachectl stopесли я захожу на http://localhost, я все еще вижу «Это работает!» — разве это не должно быть недоступно, если я остановил Apache?

Похоже, что за моим стоит какой-то другой веб-сервер localhost, и поэтому мои изменения в httpd.confи my_user_name.confне имеют никакого значения. Есть идеи?

решение1

Итак, мы установили, что вы используете несколько apacheсерверов.

Первое, что я бы посоветовал сделать, это перезагрузить компьютер. Обычно я не рекомендую прибегать к такому решению, но если ваша система находится в каком-то нестабильном состоянии из-за полумертвого Apache, это решит проблему и вернет вас в состояние, в котором обычные инструменты будут работать для запуска/остановки веб-сервера.

Если это не поможет вам вернуться в рабочее состояние, вам придется определить, откуда берется дополнительный httpd (вы можете использовать lsof(как root), чтобы определить, какой httpd.confфайл он считывает, который может содержать некоторые подсказки о том, кто его установил, и как вы можете отключить или перенастроить его).

решение2

Я предполагаю, что дополнительный веб-сервер — это тот, который встроен в OS X. Он все еще есть в Mountain Lion, но пользовательский интерфейс для его включения и выключения был удален. Однако вы все еще можете управлять им из командной строки. OS X запускает и поддерживает встроенный веб-сервер с помощью launchd, поэтому вы используете launchctlего для управления. Сначала проверьте, запускает ли launchd Apache:

$ sudo launchctl list | grep apache
1526    -   org.apache.httpd

Этот результат говорит мне, что launchd запустил элемент с меткой org.apache.httpd, и он работает как процесс с идентификатором 1526. Если бы у него не было активного элемента Apache, результаты были бы пустыми.

Если это системный элемент launchd, вы можете отключить его с помощью:

$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Обратите внимание, что -wделает выгрузку постоянной (без нее элемент был бы перезагружен при следующей перезагрузке).

Связанный контент