У меня возникли проблемы с настройкой 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
делает выгрузку постоянной (без нее элемент был бы перезагружен при следующей перезагрузке).