2015-10-01 3 views
16

Я только что перешел из Йосемиты в Эль-Капитан, но, к сожалению, забыл скопировать мой старый httpd.conf, и теперь мне нужно снова настроить все его настройки.OSX El Capitan - Apache 403 Forbidden

Я уже изменил DocumentRoot к предыдущему/пользователям/администратор/WWW, а также сконфигурирован, чтобы освободить доступ к этой папке:

<Directory "https://stackoverflow.com/users/admin/www"> 
Options Indexes MultiViews FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
</Directory> 

перезапущена Apache, но даже таким образом, я получаю «Запрещенный» ошибки при попытке доступа к 127.0.0.1.

Что мне здесь не хватает?

ответ

16

Я только что узнал, что старый файл .conf сохраняется во время обновления Эль Капитана, в этой папке:

/private/etc/apache2/httpd.conf.pre-update

Так я просто скопировали старые определения в новый :)

+1

While принятый ответ работает и прост в использовании, он конкретно не решает проблему. Восстановление старых конфигураций apache отбрасывает все обновления, сделанные для конфигурации Apache, сделанные для El Captain ... sorta, как исправление сломанной лампы, используя вместо нее свечу (гиперболическим способом). @jcfranco и Todd Hammer имеют несколько ответов ниже, которые специально касаются проблемы с разрешениями. – TheMadDeveloper

8

Вы можете перейти к /private/etc/apache2/, а затем diff httpd.conf httpd.conf.pre-update, чтобы увидеть различия между старым файлом conf и новым, который был добавлен.

Для меня было много LoadModules линий закомментирована, и мой пользователь апач/группа была изменена обратно _www

5

Я не знаком с изменениями в Apache 2.4, так это один действительно тупик меня около 30 минут. Я только что обновил Mavericks до El Capitan (Apache 2.2 до 2.4), и я не смог загрузить свой личный каталог сайтов (http://localhost/~ {username}. Я продолжал получать «Запретный». После небольшого исследования я обнаружил, что мне нужно изменить/etc/apache2/users/{username} .conf, чтобы добавить «Требовать все предоставленные». Поскольку я никогда не обновлялся до Yosemite (который также использует Apache 2.4), я никогда не сталкивался с этим.

Я надеюсь, что эта информация поможет кому-то

+0

Хорошо, спасли мой день. Не забудьте добавить это определение на свой /etc/apache2/extras/httpd-vhosts.conf, если вы используете virtualhosts;) – jpbourbon

4

Обновление контроля доступа к каталогам работал для меня:

В этом примере все запросы разрешены

.

2,2 Конфигурация:

Order allow,deny Allow from all

2,4 Конфигурация:

Require all granted

Источник: http://httpd.apache.org/docs/trunk/upgrading.html (под контролем доступа)

Примечание: Я держу свои пользовательские настройки separa tely под /private/etc/apache2/other/.

0

У меня была аналогичная проблема, получившая ошибку 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 
2

Как @delphirules сказал, вы можете скопировать старый файл httpd.conf следующим образом:

sudo cp /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf 

у меня были проблемы с подключением к моему localhos т весь день, но в конце концов нашел это: https://mallinson.ca/web-development-with-el-capitan/

Просто запустите команду копирования, а затем сделать sudo apachectl restart

Я также отключил SIP (System Protection Integrity) в режиме восстановления. Я не знаю, если это на самом деле ничего, хотя .. Вы можете найти эти инструкции здесь: https://forums.developer.apple.com/thread/3981

68

Выполните следующие действия:

  • Open Terminal
  • Run:

    cd /etc/apache2/ 
    sudo mv httpd.conf httpd.conf.OLD 
    sudo mv httpd.conf~previous httpd.conf 
    sudo apachectl restart 
    

Проведя 3 часа по выпуску - работал для меня!

+7

Вам нужно больше upvotes :) Прошло всего 5 минут благодаря вам! –

+0

Подтверждено к работе. – pietv8x

+2

Спасибо любовь все, что хорошо в этом мире –

0

Если у вас есть символические ссылки на некоторые из ваших проектов в каталоге DocumentRoot, после обновления до El Capitan вы можете получить 403 для этих проектов, как и я. Для их работы вам понадобятся следующие функции:

1) Ваш пользователь apache (по умолчанию) должен иметь доступ к каталогу, в котором находится каталог, к которому вы привязываетесь. В моем случае в апача DocumentRoot я имел:

MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject 

И для некоторых настроек доступа причина для /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject были -rw------- 1 Me staff Моя догадка была установлена ​​во время OS X обновления. Итак, после sudo chmod 755 Aptana\ Studio\ 3\ Workspace ошибка была разрешена.

2) Как обновления и изменения httpd.conf, убедитесь, что у вас есть это для каталога DocumentRoot, или восстановить из резервной копии httpd.conf, как было предложено выше:

Options Indexes FollowSymLinks 

Если вы обновились с Mavericks или более ранней версии OS X и восстановил резервную копию httpd.conf, вы должны, как сказал jcfranko, заменить apache 2.2 установки по резерву запроса с:

Require all granted 
0

Создание символической ссылки в вашей /Users/{user name}/Sites папке

ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name} 
Смежные вопросы