Я пытаюсь установить локальную среду на моем новом MacBook Air 13 ": встроенный Apache с моими собственными DocumentRoot
, PHP и MySQL. Я обычно обновляюсь, /etc/hosts
чтобы просто запускать свои локальные веб-сайты с довольно постоянной local/example
ссылкой. Для справок я обычно чек:
- Как превратить Mac OS X Lion в веб-сервер?
- Включение Apache в Mac OS X Mountaion Lion
- Разрешения Apache
На этот раз я просто получаю 403 Запретной ошибку каждый раз , когда я ударил 127.0.0.1
, localhost
или local
. Сначала я увидел через терминал, что Apache и PHP работают (хотя я не могу просматривать страницы PHP); затем я обновил все разрешения в соответствии с разрешениями Apache ; теперь я просто в отчаянии. Вот соответствующие конфиги Apache:
/etc/hosts
( просмотр файла - добавлена одна строка)/etc/apache2/httpd.conf
( просмотреть файл - обновилDocumentRoot
)/etc/apache2/users/joao.conf
( просмотреть файл - создал этот файл)/etc/apache2/extra/httpd-vhosts.conf
( просмотреть файл - обновленоVirtualHost
)
Похоже, что Apache почему-то отказывает мне в доступе к моему DocumentRoot
(что, кстати, есть ~/Sites
). Поскольку ~/Sites
на самом деле это символическая ссылка, я затем попытался обновить DocumentRoot
с помощью следующих путей (все указывают на один и тот же каталог):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
( оригинальный каталог)
Все еще выбрасываю 403 . Любые идеи, как это исправить / отладить?
Быстрое обновление - вот как /var/log/apache2/joao.pt-error_log
выглядит мой :
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(в своей корневой/
папке) и поместил туда свои файлы, соответственно настроив параметры Alias и Directory. Работал нормально.Я обновляю до macOSS Sierra , Версия 10.12
Я столкнулся с той же проблемой, я сделал две вещи, чтобы исправить это должным образом. Ниже приведены мои подходы.
1) Пожалуйста, проверьте файл " /private/etc/apache2/extra/httpd-userdir.conf ". + Изменить
в
2) ** И отредактируйте свой " /etc/apache2/httpd.conf"
менять
в
наконец, ваш корень документа будет выглядеть следующим образом,
3) Перезапустите apache
Тем не менее, вы столкнулись с проблемой, пожалуйста, проверьте, как настроить Apache в macOS Sierra 10.12
источник
Обычно я исправляю это, настраивая пользователя Apache для себя в локальной среде и на машинах, где единственным пользователем, использующим Apache, является я. В
/private/etc/apache2/httpd.conf
, установитеUser
ваше имя пользователя из_www
, например:->
А затем перезапустите Apache:
Дополнительные шаги:
Если у вас есть активные сеансы, они будут выдавать ошибки разрешения, так как они все еще принадлежат
_www
. Собственные им:Последствия:
После этого Apache (и PHP и др.) Будут работать от вашего имени и получат разрешение на чтение / запись для всех файлов, для которых у вас есть разрешение на чтение / запись. Но так как это всего лишь локальная среда разработки, это не должно быть проблемой, если у вас нет правил, чтобы блокировать Apache в брандмауэре и позволить сомнительным файлам, таким как проводники файлов, оболочки, скрипты, которые могут содержать уязвимости, работать под Apache; в этом случае любой, в том числе ваш общедоступный Wi-Fi-сосед в кафе, может войти
http://<your IP>
и сделать все, что позволят ему эти сценарии.Фактически, вы должны предотвратить это независимо от того, какие скрипты вы запускаете, или даже если вы не настраиваете пользователя Apache для себя, поскольку вы, вероятно, не хотите, чтобы случайные посторонние лица могли видеть содержимое вашего
localhost
.Предупреждение:
Заставьте Apache слушать только localhost. Опять же, в
httpd.conf
:->
И перезапустите Apache снова:
Отключите Apache в брандмауэре приложения (обратите внимание, что вы, возможно, уже отключили его, если щелкнули,
Deny
если / когда его спросили во время первого запуска Apache):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
кнопку./usr/sbin/httpd
и нажмитеAdd
(Еслиhttpd
там нет, вы можете найти его в терминалеwhich httpd
)httpd
и выберитеBlock incoming connections
.OK
.Перезагрузите брандмауэр:
Ограничить PHP до корня документа. В
php.ini
:(
/var/tmp/
для сессий)Используйте все три решения, чтобы обезопасить себя на случай, если одно из них по какой-либо причине отключится.
- Обратите внимание, что, поскольку мой активный язык на моей машине не совсем английский, знайте, что формулировка может быть немного другой (параметры меню и формулировка могут отличаться независимо от языка в различных версиях OS X).
- Строки, начинающиеся с,
$
необходимо вводить в командной строке (Терминал или iTerm и т. Д.), С$
удаленными.источник
Я просто решил свою проблему, установив разрешения не только для
DocumentRoot
каталога, но и для всех его родительских каталогов. Вот как я это сделал .источник
Следующие шаги работали для меня на High Sierra под управлением Apache 2.4
(Основано на следующем превосходном учебном пособии: http://www.cgi101.com/book/connect/mac.html , дополненном дополнительными шагами для определения различий в версиях).
Переместите файл в:
Убедитесь, что файл имеет разрешения на выполнение:
Если не использовать:
Раскомментируйте следующие строки в /etc/apache2/httpd.conf
Также измените раздел каталога / Library / WebServer / CGI-Executables на:
Затем перезапустите Apache:
Почти с каждой новой версией macOS изменения будут потеряны, и вам придется переделывать работу и даже делать разные шаги для ее исправления. Ваш лучший друг - журналы Apache, расположенные в / var / log / apache2 / (/ var / log / apache2 / error_log)
источник
Я использовал ACL для установки разрешений, следуя инструкциям в « Как установить разрешения для файлов и каталогов для Apache в Mac OS X », но все еще получал:
Затем я прочитал « (13) Отказано в разрешении » (ссылка на него содержится в ответе Жоао Рамоса ) и попытался добавить «выполнить» в ACL. Это сработало.
источник
Перезагрузите компьютер! Это сработало для меня.
Но прежде всего я сменил пользователя под apache на себя (с _www), так как это локальная / тестовая среда. Так что в конечном итоге это как-то связано с разрешениями.
Затем перезагрузите компьютер, как Windows;).
источник
OP описывает проблему, возникающую при попытке настроить локальную среду веб-сервера на Mac с использованием Apache, PHP и MySQL, с настраиваемым DocumentRoot, включая упоминание об использовании VirtualHost (vhost). ОП сообщает об ошибке 403 Forbidden при доступе к localhost.
В статье на coolestguidesontheplanet описывается, как настройка виртуальных хостов в Apache приводит к «потере локального хоста». Другими словами, коренная причина проблемы ОП может заключаться в неполной активации vhosts.
Далее в статье объясняется, как исправить localhost в среде vhost.
В нем также объясняется, как устранить «проблемы с разрешениями для таких вещей, как обновления и аутентификация», связанные с «использованием папки Users / username / Sites для vhosts».
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
источник