Вчера я обновился до 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 он даже не отображает никаких ошибок.
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).
После попытки решить эту проблему в течение 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.
Надеюсь это поможет!