После установки OS X El Capitan Apache не работает

Я только что установил в свой MacBook Pro "El capitan", и я не могу ввести какой-либо хост, настроенный на vhost. Раньше в Йосемити все работало отлично. Когда я набираю один из своих виртуальных хостов, я получаю:

403 «Запрещено. У вас нет разрешения на доступ к этому серверу».

Что я пробовал?

перейдите к /etc/apache2/httpd.conf и отмените комментарий к этим строкам:

Include /private/etc/apache2/extra/httpd-vhosts.conf

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

/etc/apache2/extra/httpd-vhosts.conf - это тот же файл, который давно работал в Йосемити, поэтому я не менял его.

Для установки всего в Йосемити я использовал homebrew.

Еще одна проблема, связанная с "El capitan", до того, как я смог набрать http://localhost/~myuser/ и получить доступ к любой папке в /Users/myuser/Sites, теперь я получаю это сообщение: 404 not found.

Я надеюсь, что это поможет, я не специалист по серверам, и мне действительно сложно его настроить, и очень неприятно тратить много времени каждый раз, когда в ОС появляется новое обновление.


person davidrg11    schedule 09.10.2015    source источник


Ответы (6)


В процессе обновления сохраняется копия вашего старого httpd.conf. Если вы не устарели, просто перезапишите новый файл своим старым. Сохраните копию нового на всякий случай ...

sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.after-update
sudo mv /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf
sudo apachectl restart
person DSG    schedule 04.12.2015
comment
Сделал мой день! : 3 - person tomzi; 20.09.2016

У меня была такая же проблема. Введите эту командную строку, у вас будет ошибка от apache:

apachectl configtest

Если у вас есть эта ошибка:

AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration.

поэтому эта ссылка может помочь: https://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526

person jerems    schedule 29.10.2015
comment
apachectl configtest помогает, если DocumentRoot не существует (это может вызвать сообщение о разрешении). - person Herr_Hansen; 18.05.2016

Я испытал, что после обновления до El Capitan линия

Include /private/etc/apache2/extra/httpd-userdir.conf

in

/private/etc/apache2/httpd.conf

был снова прокомментирован. После раскомментирования и перезапуска apache все снова заработало.

person janwo    schedule 15.10.2015
comment
В дополнение к вышесказанному я выполнил слияние различий на /private/etc/apache2/httpd.conf и /private/etc/apache2/httpd.conf~previous, чтобы восстановить мои настройки перед обновлением. - person Justin; 17.10.2015
comment
Я тоже столкнулся с точно такой же проблемой. Я раскомментировал строку и перезапустил apache, но проблема все еще не решена. - person Abhishek; 24.10.2015
comment
@abhishek, это решило мою проблему: tomjbward.co.uk/symfony-on -osx-el-capitan. Я сделал только Шаг 2. - person Munir; 29.10.2015
comment
Мне нужно было раскомментировать LoadModule userdir_module libexec / apache2 / mod_userdir.so - person Nick H247; 03.11.2015
comment
выполнение различий, предложенное @Justin, сработало для меня :) - person nerdess; 02.05.2016
comment
Я раскомментировал это, а также заменил свой httpd.conf на ~ предыдущий, это сработало! - person Vasily Hall; 14.09.2016
comment
Спасибо @janwo! Сделал мой день :) - person Martin Pfeffer; 09.03.2017

Я объединил две версии (httpd.conf и http.conf~previous) и после этого обнаружил, что v-host больше не работает. После отключения правила 19 #NameVirtualHost *:80 в /private/etc/apache2/extra/httpd-vhosts.conf все снова заработало!

person Jaap van Duijn    schedule 30.10.2015
comment
Спасибо JVD! Работал как шарм. Я получал запрет, пока не сделал это. Я считаю (в конце концов) это была моя настройка DocumentRoot. - person Bill Ortell; 01.12.2015

LockFile - это директива Apache ≤ 2.2. El Capitan поставляется с Apache версии 2.4. Итак, вам нужно отключить LockFile

Во-первых, чтобы убедиться, что apache остановлен:

sudo apachectl stop

Затем отредактируйте свой httpd-mpm.conf:

Прокомментируйте эти строки

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
  LockFile "/private/var/log/apache2/accept.lock"
</IfModule>
</IfModule>

Запускаем apache sudo apachectl start и все

person PolloZen    schedule 29.04.2016

Как уже упоминалось, проблема заключается в том, что при обновлении до El Capitan была создана резервная копия вашего предыдущего httpd.conf, он был переименован в httpd.conf ~ previous и дал вам новый httpd.conf. Что вам нужно сделать с этими файлами, чтобы решить вашу проблему:

С помощью nano или другого редактора откройте httpd.conf ~ previous и найдите эти 2 строки:

DocumentRoot "/Users/my-machine-name/Prev-Localhost-Path
<Directory "/Users/my-machine-name/Prev-Localhost_path">

Скопируйте их, а затем с помощью nano откройте httpd.conf и найдите эти 2 строки:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

Закомментируйте их, введя символ «#» перед каждым из них, а затем вставьте под ними две строки, скопированные из исходного файла. Сохраните файл и выйдите.

После этого вам потребуется перезагрузка. Моя установка не будет работать, пока я не внесу эти изменения, а затем не перезагружусь. Но, возможно, предложения DSG перезапустить apache будет достаточно:

sudo apachectl restart
person Alyoshak    schedule 30.03.2016