После установки 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 - это тот же файл, который работал в Yosemite с давних времен, поэтому я не изменил его.

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

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

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

Ответ 1

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

Ответ 2

У меня были такие же проблемы. Введите эту командную строку, у вас будет ошибка от 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

Ответ 3

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

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

в

/private/etc/apache2/httpd.conf

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

Ответ 4

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

Ответ 5

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 и что все

Ответ 6

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

Используйте nano или другой редактор, чтобы открыть httpd.conf ~ previous и искать эти две строки:

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

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

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

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

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

sudo apachectl restart