Сломанная конфигурация Apache после обновления до Yosemite

Вчера я обновился до Yosemite, и теперь моя локальная конфигурация для веб-разработки больше не работает.

Мне удалось настроить userdir под /Users/user/public_html и я мог получить доступ ко всем сайтам через localhost/~user/websitename, Ничего особенного, но мне потребовалось время, чтобы настроить.

Заглянув в каталог apache, я увидел, что многие файлы были заменены с сохранением резервной копии. Я попытался вернуть файлы с моими настройками снова, но все еще не работает. Может быть, мне не хватает файла, который я не помню.

Это httpd-userdir.conf:

# Settings for user home directories
#
# Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir public_html

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>

<Directory "/Users/*/public_html/">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
</Directory>

Затем в http.conf я включил несколько модулей:

Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule userdir_module libexec/apache2/mod_userdir.so

и это:

DocumentRoot «/ Users / user / public_html»

Directory "/Users/user/public_html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride all

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

Если я просто попытаюсь получить доступ localhost, он отображает сообщение «Это работает!». Если я пойду к localhost/user просто не загружается и то же самое, если я пытаюсь получить доступ к одному из сайтов.

Я пропустил какой-нибудь файл? В логах apache он даже не отображает никаких ошибок.

7

Решение

OS X 10.10 Yosemite поставляется с Apache 2.4 вместо Apache 2.2 в Mavericks.
Основное отличие в конфигурации заключается в том, что вы должны заменить …

Order allow,deny
Allow from all

…с…

Require all granted

Смотрите руководство Apache doc Обновление до 2.4 с 2.2 Больше подробностей.

ОБНОВИТЬ:
Пожалуйста, имейте в виду, что после обновления OS X вы обычно найдете ваши старые конфигурационные файлы в качестве резервных копий рядом с новыми, написанными Yosemite. Они помечены, например, httpd.conf.pre-обновление и / или httpd.conf ~ предыдущая и могут быть найдены в тех же путях, что и новые конфиги (например, в / Частный / и т.д. / apache2).

18

Другие решения

После попытки решить эту проблему в течение 6 часов я наконец смог заставить это работать. Я отредактировал httpd.conf, httpd-userdir.conf, httpd-vhosts.conf и т. Д. Безрезультатно. Оставив все эти файлы неотредактированными из конфигурации yosemite, мне наконец удалось отредактировать файл httpd_server_app.conf, расположенный по адресу /Library/Server/Web/Config/apache2/ добавив следующее (для каждого сайта) следующим образом:

<Directory />
Options +FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>

<Directory "/Library/Server/Web/Data/Sites/Default/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

<Directory "/Library/Server/Web/Data/Sites/[OTHER SITE DIRECTORY]/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Убедитесь, что если вы используете textedit для редактирования этого файла, вы отменяете автоматическую вставку наклонных кавычек, в противном случае вы получите сообщение об ошибке Unicode.

Надеюсь это поможет!

1

По вопросам рекламы [email protected]