После установки 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