Изменить локальный каталог для Yosemite Apache 2.4
У меня есть чистая Mac OSX Yosemite, но я не могу настроить Apache 2.4, как я всегда делал в более старых версиях OSX.
Вот что я хочу сделать: установите для каталога "localhost" значение "/Users/username/Public/".
Но все, что я пробовал, не будет работать, я всегда получаю "Forbiden, не могу получить доступ к /", или я получаю дефолт "Он работает!". страница...
Как просто перезагрузить мой localhost?
спасибо
EDIT (спасибо Кристер Андерссон за ответ)
Для Mac OSX 10.10 Yosemite
Я также отправляю изменения, которые мне нужно было сделать, чтобы все было в порядке.
В "/etc/apache2/users/" я создал файл, названный моим именем пользователя, таким как "myUsername.conf".
Вы можете получить свое имя пользователя, набрав "id" в терминале. Вы должны найти свое имя пользователя при запуске в "uid = 501 (myUsername)".
В этом новом файле "myUsername.conf" просто скопируйте это:
<Directory "/Users/myUsername/Sites/">
AllowOverride All
Options Indexes MultiViews
Options +FollowSymLinks
Require all granted
</Directory>
Не пытайтесь изменить значение myUsername
.
Затем в файле "/etc/apache2/httpd.conf" раскомментируйте все эти две строки:
167 #LoadModule userdir_module libexec/apache2/mod_userdir.so
169 #LoadModule php5_module libexec/apache2/libphp5.so
Линия 236, измените каталог "DocumentRoot" на то, что вы хотите.
Строка 250, установите "Опции" в "Параметры" Параметры Индексы FollowSymLinks Multiviews ".
Строка 258, установите для параметра "AllowOverride None" значение "AllowOverride All".
Строка 263, установите для параметра "Требовать все отклоненные" значение "Требовать все предоставленные"
В терминале перезапустите apache, набрав "sudo apachectl restart".
Он работает для меня на Mac OS X 10.10. Йосемитская чистая установка.
Ответы
Ответ 1
Я только что установил Yosemite, и мне удалось без проблем изменить DocumentRoot
. Сначала я изменил следующие строки в /private/etc/apache2/httpd.conf
:
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Options FollowSymLinks Multiviews
AllowOverride None
</Directory>
в
DocumentRoot "<CUSTOM_PATH>"
<Directory "<CUSTOM_PATH>">
Options Indexes FollowSymLinks Multiviews
AllowOverride All
</Directory>
В приведенном выше примере будет установлен пользовательский DocumentRoot
, включить список каталогов и разрешить переопределение конфигураций с помощью файлов .htaccess
.
Затем я перезапустил apache, выполнив sudo apachectl restart
.
Другим подходом было бы создание виртуального хоста. Сначала убедитесь, что следующая строка в файле /private/etc/apache2/httpd.conf
раскоментирована:
# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf
Затем вы можете добавить следующее в файл httpd-vhosts.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/Library/WebServer/Documents"
ServerName example.local
ErrorLog "/private/var/log/apache2/example.local-error_log"
CustomLog "/private/var/log/apache2/example.local-access_log" common
<Directory "/Library/WebServer/Documents">
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Вышеописанная настройка будет настраиваться для нового виртуального хоста с именем example.local
и включить список каталогов и разрешить переопределение конфигураций с помощью файлов .htaccess
. Конечно, вам также потребуется перезапустить apache, чтобы изменения вступили в силу:
sudo apachectl restart
Ответ 2
На El Capitan вы должны перезапустить apache с флагом "-k":
sudo apachectl -k restart