Ответ 1
Я только узнал, что старый файл.conf сохраняется во время обновления El Captain в этой папке:
/private/etc/apache2/httpd.conf.pre-update
Так что я просто скопировал старые определения в новый :)
Я только что перешел из Йосемиты в Эль-Капитан, но, к сожалению, забыл скопировать мой старый httpd.conf, и теперь мне нужно снова настроить все его настройки.
Я уже изменил documentroot на предыдущий /users/admin/www, а также настроил на выпуск доступ к этой папке:
<Directory "/users/admin/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Перезапущенный Apache, но даже таким образом я получаю ошибку "Запрещено" при попытке доступа к 127.0.0.1.
Что мне здесь не хватает?
Я только узнал, что старый файл.conf сохраняется во время обновления El Captain в этой папке:
/private/etc/apache2/httpd.conf.pre-update
Так что я просто скопировал старые определения в новый :)
Выполните следующие действия:
Бег:
cd /etc/apache2/
sudo mv httpd.conf httpd.conf.OLD
sudo mv httpd.conf~previous httpd.conf
sudo apachectl restart
Проведя 3 часа на вопрос - это сработало для меня!
Вы можете перейти к /private/etc/apache2/
а затем diff httpd.conf httpd.conf.pre-update
чтобы увидеть различия между старым файлом conf и новым, который был добавлен.
Для меня было много строк LoadModules
, и мой пользователь/группа apache был изменен на _www
Я не знаком с изменениями в Apache 2.4, так что это действительно заглохло меня примерно на 30 минут. Я только что обновился от Mavericks до El Capitan (Apache 2.2 до 2.4), и я не смог загрузить свой личный каталог сайтов (http://localhost/~ {username}. Я продолжал получать "Запретный". После хорошего исследования я обнаружил что мне нужно было изменить /etc/apache2/users/{username}.conf, чтобы добавить "Требовать все предоставленные". Поскольку я никогда не обновлялся до Yosemite (который также использует Apache 2.4), я никогда не сталкивался с этим.
Я надеюсь, что эта информация поможет кому-то
Обновление управления доступом к каталогу работало для меня:
В этом примере разрешены все запросы.
2.2:
Order allow,deny Allow from all
2.4:
Require all granted
Источник: http://httpd.apache.org/docs/trunk/upgrading.html (под контролем доступа)
Примечание. Я сохраняю свои собственные настройки отдельно в /private/etc/apache2/other/
.
Это помогло также (после всего остального):
Как и @delphirules, вы можете скопировать старый файл httpd.conf следующим образом:
sudo cp /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf
У меня были проблемы с подключением к моему локальному хосту весь день, но, наконец, нашли это: https://mallinson.ca/web-development-with-el-capitan/
Просто запустите команду копирования, а затем выполните sudo apachectl restart
Ive также отключил SIP (System Integrity Protection) в режиме восстановления. Я не знаю, действительно ли это что-то сделало. Вы можете найти эти инструкции здесь: https://forums.developer.apple.com/thread/3981
У меня была аналогичная проблема, получившая ошибку 404 при попытке доступа к страницам в моем локальном каталоге сайтов, после того как я позволил себе на уровне пользователя обслуживать сайты после обновления до El Capitan. Проблема заключалась в том, что Apache сбросил файл httpd.conf по умолчанию, который отключает папки пользователя для загрузки файлов. Таким образом, http://localhost загружается нормально, но http://localhost/~username/index.html НЕ загружается. Здесь исправление:
создать резервную копию нового файла конфигурации, который был создан:
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf_capitan
восстановить "старый" файл конфигурации, который был переименован:
sudo cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
Если у вас есть символические ссылки на некоторые из ваших проектов в каталоге DocumentRoot, после обновления до El Capitan вы можете получить 403 для этих проектов, как и я. Для их работы вам понадобятся следующие вещи:
1) Ваш пользователь apache (_www по умолчанию) должен иметь доступ к каталогу, в котором находится каталог, к которому вы ссылаетесь. В моем случае в apache DocumentRoot у меня было:
MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject
И почему-то настройки доступа для /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject
были -rw------- 1 Me staff
Предполагалось, что он был установлен во время обновления ОС x. Итак, после устранения ошибки sudo chmod 755 Aptana\ Studio\ 3\ Workspace
.
2) Поскольку обновление также изменяет httpd.conf, убедитесь, что у вас есть это для каталога DocumentRoot или восстановлено из резервной копии httpd.conf, как было предложено выше:
Options Indexes FollowSymLinks
Если вы обновили Mavericks или более раннюю ОС x и восстановили резервную копию httpd.conf, вы должны, как сказал jcfranko, заменить настройку apache 2.2 для разрешения на запрос:
Require all granted
Создайте символическую ссылку в папке /Users/{user name}/Sites
ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}