2015-10-09 2 views
12

Я только что установил в своем MacBook pro «El capitan», и я не могу набрать какой-либо хост, установленный в vhost. В Йосемити все прекрасно работало. Когда я набираю один из своих виртуальных хостов, я получаю:После установки OS X El Capitan, Apache не работает

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

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

перейти к /etc/apache2/httpd.conf и uncoment эти строки:

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

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 

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

Чтобы установить все в Йосемити, я использовал доморощенный.

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

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

ответ

9

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

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

в

/private/etc/apache2/httpd.conf 

прокомментировал снова. После расторжения его и перезапуска апача все сработало хорошо.

+6

В дополнение к выше, я сделал diff-merge на '/ private/etc/apache2/httpd.conf' и'/private/etc/apache2/httpd.conf ~ предыдущий' для восстановления моих настроек до обновления. – Justin

+0

Я также столкнулся с такой же проблемой. Я раскомментировал строку и перезапустил apache, но проблема не решена. – abhishek

+0

@abhishek, это решило мою проблему: http://tomjbward.co.uk/symfony-on-osx-el-capitan/. Я сделал только шаг 2. – Munir

22

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

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

+0

'apachectl configtest' помогает, если DocumentRoot не существует (это может вызвать сообщение о разрешении). –

3

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

+0

Спасибо JVD! Работал как шарм. Я получал Запретный, пока я не сделал это. Я считаю (в конце концов) это моя настройка DocumentRoot. –

25

Процесс обновления хранит копию вашего старого 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 
+0

Он отлично работает для меня – rajakvk

+0

работал как шарм – HaCos

+0

Сделал мой день! : 3 – tomzi

0

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

Используйте nano или другой редактор, чтобы открыть httpd.конф ~ предыдущий и искать эти 2 строки:

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

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

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

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

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

sudo apachectl restart 
2

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

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

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> 

Start Apache sudo apachectl start и это все

Смежные вопросы