- Question: Q: http://localhost -> 403 forbidden
- All replies
- Как исправить 403 в Mac OS X встроенного Apache?
- Последствия:
- (13) В доступе отказано
- CGI-скрипты
- (13) Отказано в доступе: прокси: HTTP: попытка подключения к 127.0.0.1:8080 (localhost) не удалась
- 403 Запрещенная ошибка в Mac OS X Localhost
- 8 ответов
Question: Q: http://localhost -> 403 forbidden
I must have made some mistake somewhere. I encounter 403 error when accessing http://localhost but no issue with accessing via http://localhost/
Can I ask if I have enabled the user home directory, I can no longer access /Library/WebServer/Documents?
Kindly advise the necessary. Thank you.
Message was edited by: jameshoty I am working on my iMac (High Sierra) and learning about Apache/PHP and mySQL (but haven’t installed yet).
iMac, OS X El Capitan (10.11.5), null
Posted on Sep 10, 2018 6:42 AM
All replies
Loading page content
Page content loaded
Sep 11, 2018 10:55 AM
Thank you for the URL that is very detail and with clear instructions.
I am ok with getting PHP7, mySQL working and the URL is http://localhost/
jamesho/phpinfo2.php . I am also able to retrieve test data from a SQL table. All seems ok and I even uninstall mySQL. If I stop apache, then the above URL will not work. So I would consider the setup is working well for me. (I am learning the bit and pieces here and there and many thanks to all the forums)
What it is «not working» for me is http://localhost . I am getting error 403
The permission for is
There must be something here I don’t understand. What is forbidden?
Kindly advise the necessary. And if I did not write properly or you need additional information / clarification, please do let me know. Thank you.
Источник
Как исправить 403 в Mac OS X встроенного Apache?
Я пытаюсь установить локальную среду на моем новом MacBook Air 13 «: встроенный Apache с моими собственными DocumentRoot , PHP и MySQL. Я обычно обновляюсь, /etc/hosts чтобы просто запускать свои локальные веб-сайты с довольно постоянной local/example ссылкой. Для справок я обычно чек:
На этот раз я просто получаю 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 на самом деле это символическая ссылка, я затем попытался обновить DocumentRoot с помощью следующих путей (все указывают на один и тот же каталог):
/Sites
Все еще выбрасываю 403 . Любые идеи, как это исправить / отладить?
Быстрое обновление — вот как /var/log/apache2/joao.pt-error_log выглядит мой :
У меня есть псевдоним, указанный на сервере OSX, указывающий на каталог пользователя. Я потратил много времени на chmodding и связывался с пользователем _www, рекурсивно добавляя права на исполняемые файлы, удаляя macports и всякие другие вещи, пытаясь заставить это работать. Не знаю, почему это не сработало.
В конце концов, я просто установил флажок «Общая папка» в Finder для этой папки, и он работал , на указанном домене, с активным php, так, как я этого хотел. : / . так что было легко.
Я обновляю до 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:// и сделать все, что позволят ему эти сценарии.
Фактически, вы должны предотвратить это независимо от того, какие скрипты вы запускаете, или даже если вы не настраиваете пользователя Apache для себя, поскольку вы, вероятно, не хотите, чтобы случайные посторонние лица могли видеть содержимое вашего localhost .
Предупреждение:
Заставьте Apache слушать только localhost. Опять же, в httpd.conf :
И перезапустите Apache снова:
Отключите Apache в брандмауэре приложения (обратите внимание, что вы, возможно, уже отключили его, если щелкнули, Deny если / когда его спросили во время первого запуска Apache):
- Открыть System Preferences » Security & Privacy » Firewall .
- Нажмите на значок замка слева внизу и введите свой пароль, если это необходимо.
- Включите брандмауэр, если он отключен.
- Нажмите Firewall Options .
- Нажмите на + кнопку.
- Нажмите cmd ⌘ + ⇧ shift +, G войдите /usr/sbin/httpd и нажмите Add (Если httpd там нет, вы можете найти его в терминале which httpd )
- В списке нажмите httpd и выберите Block incoming connections .
- Хит OK .
Ограничить PHP до корня документа. В php.ini :
( /var/tmp/ для сессий)
Используйте все три решения, чтобы обезопасить себя на случай, если одно из них по какой-либо причине отключится.
— Обратите внимание, что, поскольку мой активный язык на моей машине не совсем английский, знайте, что формулировка может быть немного другой (параметры меню и формулировка могут отличаться независимо от языка в различных версиях OS X).
— Строки, начинающиеся с, $ необходимо вводить в командной строке (Терминал или iTerm и т. Д.), С $ удаленными.
Я просто решил свою проблему, установив разрешения не только для DocumentRoot каталога, но и для всех его родительских каталогов. Вот как я это сделал .
(13) В доступе отказано
Ошибка 13 указывает на проблему с разрешениями файловой системы. То есть Apache был запрещен доступ к файлу или каталогу из-за неправильных разрешений. Как правило, это не означает проблемы в файлах конфигурации Apache.
Чтобы обслуживать файлы, Apache должен иметь соответствующие разрешения, предоставленные операционной системой для доступа к этим файлам. В частности, пользователь или группа, указанные в httpd.conf, должны иметь возможность читать все файлы, которые будут обслуживаться, и искать каталог, содержащий эти файлы, а также все родительские каталоги вплоть до корня файловой системы.
Типичные разрешения в Unix-подобной системе для ресурсов, не принадлежащих пользователю или группе, указанных в httpd.conf, будут 644 -rw-r — r— для обычных файлов и 755 drwxr-xrx для каталогов или сценариев CGI. Вам также может понадобиться проверить расширенные разрешения (например, разрешения SELinux) в операционных системах, которые их поддерживают.
Если вы используете 2.4, код ошибки AH может дать вам больше информации здесь.
- AH00132: права доступа к файлу запрещают доступ к серверу
- AH00035: доступ запрещен, так как отсутствуют разрешения на поиск для компонента пути. Пример
Допустим, вы получили ошибку «Отказано в доступе» при доступе к файлу /usr/local/apache2/htdocs/foo/bar.html в Unix-подобной системе.
Сначала проверьте существующие разрешения на файл:
Исправьте их при необходимости:
Затем сделайте то же самое для каталога и каждого родительского каталога (/ usr / local / apache2 / htdocs / foo, / usr / local / apache2 / htdocs, / usr / local / apache2, / usr / local, / usr):
В некоторых системах утилиту namei можно использовать для поиска проблем с разрешениями, перечислив разрешения для каждого компонента пути:
namei -m /usr/local/apache2/htdocs/foo/bar.html Если в вашей системе нет namei, вы можете использовать parsepath. Это можно получить здесь.
Если все стандартные разрешения верны и вы все еще получаете ошибку «Отказано в доступе», вам следует проверить наличие расширенных разрешений. Например, вы можете использовать команду setenforce 0, чтобы отключить SELinux и проверить, исчезла ли проблема. Если это так, ls -alZ можно использовать для просмотра разрешений SELinux и chcon для их исправления.
В редких случаях это может быть вызвано другими проблемами, такими как проблема с правами доступа к файлам в другом месте вашего файла apache2.conf. Например, директива WSGIScriptAlias не сопоставляется с реальным файлом. Сообщение об ошибке может быть неточным о том, какой файл был нечитаемым.
НЕ устанавливайте файлы или каталоги в режим 777, даже «просто для проверки», даже если «это просто тестовый сервер». Цель тестового сервера — сделать все правильно в безопасной среде, а не уйти от неправильной работы. Все, что он скажет вам, если проблема с файлами, которые на самом деле существуют.
CGI-скрипты
Хотя разрешение сценария CGI может выглядеть правильно, фактический двоичный файл, указанный в shebang, может не иметь необходимых разрешений для запуска. (Или какой-то каталог на его пути, проверьте с namei, как описано выше.)
(13) Отказано в доступе: прокси: HTTP: попытка подключения к 127.0.0.1:8080 (localhost) не удалась
Эта ошибка на самом деле не касается прав доступа к файлам или чего-то подобного. На самом деле это означает, что httpd было отказано в разрешении подключиться к этому IP-адресу и порту.
Наиболее распространенной причиной этого является SELinux, не позволяющий httpd устанавливать сетевые подключения.
Чтобы решить эту проблему, вам нужно изменить логическое значение SELinux (которое будет автоматически сохраняться при перезагрузке). Вы также можете перезапустить httpd для сброса прокси-сервера, хотя это не обязательно.
# setsebool -P httpd_can_network_connect 1
Источник
403 Запрещенная ошибка в Mac OS X Localhost
Я настроил веб-доступ в системных настройках в Mac OS X 10.6 и щелкнул ссылку, которую он мне дал. К несчастью, Apache дал мне эту ошибку 403:
Запретный
У вас нет разрешения на доступ /
myusername/index.html об этом сервер.
Отображаются журналы доступа: 10.0.1.2 — — [30/Jun/2010:16:25:15 -0700] «GET /
myusername/ HTTP/1.1″ 403 210
Отображается журнал ошибок: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/
Любопытно, что доступ к http: //localhost отлично работает. Просто с двумя папками пользователей, с которыми у меня возникают проблемы, другая пользовательская папка, которая является более новой, чем моя системная версия, работает нормально.
У меня это работало на моей машине в Leopard раньше, поэтому я chmodded все в
/Sites до 755, что не делать что-нибудь хорошее. Какие-либо предложения? Я полагаю, что я сделал что-то для своей машины, что вызвало это, так как я не могу представить, чтобы Apple испортила что-то вроде этого.
Я установил PEAR с эти инструкции , но я не знаю, может ли это быть причиной этого.
8 ответов
У Apple есть документ поддержки для этой проблемы . Исправление проблемы связано с созданием файла /etc/apache2/users/yourusername.conf ( yourusername , являющегося учетной записью короткое имя , например danielbeck — обычно это имя вашей домашней папки в /Users ) со следующим содержимым:
Затем запустите sudo chown root:wheel /etc/apache2/users/yourusername.conf и перезапустите Apache.
Чтобы Apache мог видеть файл, пользователь Apache работает как (возможно, www или _www ) должен иметь доступ к каталогам этих пользователей. Чтение /выполнение доступа к содержимому
/Sites недостаточно, потому что ему разрешено проходить через / вниз по пути к
/Sites . Поэтому убедитесь, что / , /Users , —- +: = 7 =: + —- и /Users/myusername все имеют как минимум —- +: = 9 =: + —- (бит eXecute в каталогах позволяет этому классу пользователя перемещаться по каталогу, даже если доступ чтения недоступен).
Если какой-либо из этих каталогов не показывает последний набор a+x (тот, что для «других»), используйте что-то вроде ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites , чтобы установить его для этого каталога.
Если ACL для любого из этих каталогов показывает, что пользователь x был специально лишен доступа, затем используйте соответствующие аргументы для chmod a+x . , чтобы исправить ACL.
Для справки я только что занимался этим, и ни один из ответов здесь не работал в моем конкретном случае. Я настраивал виртуальные хосты, но что более важно, мне нужны были файлы htaccess для работы.
Я изменил значение «AllowOverride None» на «AllowOverride All» в файле /etc/apache2/users/USERNAME.conf, и все мои сайты стали запрещены.
Я изменил его и затем изменил его только для одного сайта в файле httpd-vhosts.conf, и только этот сайт был запрещен.
Посмотрев на журналы и увидев проблему с переписыванием URL-адресов и отсутствием FollowSymLinks, я вернулся в файл USERNAME.conf. Я переключаю «AllowOverride None» на «AllowOverride All» и добавляет «Options + FollowSymLinks» на следующей строке.
Начались работы. Я пришел из использования xampp в windows, и у него было много этих настроек, которые уже были установлены на сервере для таких манекенов, как я.
У меня была та же проблема: моя (старая) учетная запись не была доступна, но другая учетная запись пользователя, созданная после обновления до Lion, работала нормально.
Убедившись, что ваш /etc/apache2/users/USERNAME.conf выглядит так:
сделать sudo chown root: wheel /etc/apache2/users/USERNAME.conf
похоже, что этот параметр разрешения не установлен во время обновления ОС, и пользователь Apache не может прочитать файл конфигурации и выдает ошибку.
По крайней мере, это разрешило это для меня.
обновление для Lion в 10/2011 Я должен был добавить
UserDir включен, поэтому мой /etc/apache2/extra/httpd-userdir.conf выглядит следующим образом:
Продолжающийся разговор из первых вопросов — Проверьте свой файл /etc/apache2/httpd.conf . На моей машине у меня есть это:
Я подозреваю, что ваш комментарий прокомментирован. Я смутно помню об изменении этого вручную при переходе с 10.5 до 10.6 и по умолчанию.
Это, вероятно, очевидно, но вам нужно будет использовать sudo , чтобы отредактировать файл, потому что он будет принадлежать root.
В моем случае XAMPP + Mac OS X 10.7 + Directory в папке Dropbox (перекрестная ссылка на мой другой в переполнении стека)
Источник