WAMP 403 Запрещенное сообщение в Windows 7


101

Я установил WAMP версии 2.1 на свой компьютер с Windows 7. Когда я перехожу на localhost в моем браузере, отображается страница сервера WAMP.

Но когда я перехожу на свой IP-адрес в браузере, я получаю сообщение

403 Запрещено: у вас нет разрешения на доступ к этому серверу.

Какие-либо предложения?


Доступ к серверу Apache запрещен из других адресов , чем 127.0.0.1в httpd.conf(конфигурационный файл Apache)
Насреддин

Я исправил это, теперь я получаю 403 Forbidden в моем phpMyAdmin, какие-либо предложения по этому поводу?
Джейк

есть также phpmyadmin.confдирективы для псевдонима localhost / phpmyadmin
Nasreddine

если вы здесь для Windows 8, отметьте это stackoverflow.com/questions/13945783/…
потрепанный

Ответы:


126

Доступ к серверу Apache запрещен из других адресов 127.0.0.1в httpd.conf(конфигурационный файл Apache):

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

То же самое касается вашего доступа к PHPMyAdmin, файл конфигурации phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
</Directory>

Вы можете настроить их так, чтобы разрешать соединения со всех IP-адресов, как показано ниже:

AllowOverride All
Order allow,deny
Allow from all

7
Это, безусловно, откроет доступ с любого IP-адреса, но разве это не опасно? Правило, разрешающее «из 127.0.0.1», должно быть достаточно, чтобы разрешить локальный доступ, если это основная цель здесь, 127.0.0.1 - это, по сути, возврат к сетевому адаптеру. Если вы наберете в адресной строке http: //127.0.0.1: {portNumber} / {folderOrFileName}, все должно работать нормально. Это должно работать так же, как при использовании localhost, но я обнаружил, что в некоторых браузерах по какой-то причине возникают проблемы с localhost.
Джереми

Я не смог отформатировать адресную строку в этом последнем комментарии, поэтому в нем есть лишний "", просто проигнорируйте это извините, если это кого-то смутит.
Джереми

Примечание: в файле устанавливаются значения по умолчанию, которые затем переопределяются по одному, поэтому убедитесь, что эти строки идут после всех переопределений.
встреча

3
Не забудьте «Перезапустить все службы» из меню на панели задач WAMP (или как вы это делаете)
Пламмер

12
Для Apache версии 2.4.x замените Require localна Require all grantedв файле httpd.conf внутри <Directory "c:/wamp/www/">тега, затем перезапустите все службы
Ракеш

62

Нашел попроще ...

Несмотря на то, что значок был зеленым, WAMP все же необходимо «поставить в сеть» (последний пункт меню при щелчке левой кнопкой мыши по значку).

После этого у меня был доступ как обычно.


3
Фактически, это должно быть отмечено как принятый ответ. Спасибо, чувак.
ummahusla

Это решение заслуживает одобрения, потому что конфигурация обновляется, когда вы действительно нажимаете кнопку «онлайн»: forum.wampserver.com/read.php?1,119467,119546
Pierre-Yves Guillemet

Это исправило это и для меня. Хотя в моем случае мне пришлось сначала «Перевести в автономный режим», затем «Перевести в онлайн» и работать без каких-либо других изменений в моих файлах конфигурации! Спасибо!!
Осмар

1
Собственно, я начал делать все это в первом принятом ответе. И это не помогло. Потом я увидел это здесь и подумал: «Ни в коем случае не может быть этого ...», но это было то, и это сработало.
Fusseldieb

Supercalifragilisticexpialidocious!
Вахид

25

Для меня включение «Требовать локальный» помогло решить ошибку 403. Конфигурационный файл псевдонима выглядит так:

Alias /mytest/ "C:/mytest/" 

<Directory "C:/mytest/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
    Require local
</Directory>

3
У меня это тоже сработало, используя Apache 2.4.9. Давно искал это. Спасибо!
Джонатан Лидбек,

Options Indexes FollowSymLinks MultiViewsтакже требуется
Хаммад Хан

Есть ли причина для добавления части "C: / mytest /"? Похоже, что это не имеет никакого эффекта, и просто оставить / в конце, как это
обычно,

Лучше использовать «Требовать все предоставлено» вместо «Требовать локальный», если вы хотите открывать свой сайт на других устройствах в вашей локальной сети
Ракеш

Добавление «Разрешить от всех» сделало это за меня.
Рекс Странный

10

Решение для изменения разрешений в httpd.conf будет работать, если вы согласны предоставить доступ к серверу WAMP извне.

Если вы не хотите этого делать, все, что вам нужно сделать, это сообщить Windows, что домен «localhost» указывает на 127.0.0.1. Вы можете сделать это, отредактировав файл hosts в системном каталоге.

Файл находится по адресу: C: \ Windows \ System32 \ drivers \ etc \ hosts

по умолчанию Windows 7 поставляется с:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

Вы должны не комментировать сопоставление для localhost:

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
#   ::1         localhost

Примечание: вы не сможете редактировать файл hosts, поскольку он доступен только для чтения. Для редактирования вы должны быть администратором, скопировать файл в другое место, отредактировать его, а затем скопировать обратно в каталог etc.

Не рекомендую менять файл hosts. Используйте разрешения файла httpd.conf. используйте подход с использованием файлов hosts только в том случае, если вы не хотите, чтобы к серверу осуществлялся доступ извне.


8

Попробуйте добавить следующие строки кода в файл httpd-vhosts.conf:

<VirtualHost *:80>
ServerAdmin serveradmin@host.com
DocumentRoot "C:\wamp\www"
ServerName localhost
</VirtualHost>

7

Еще я выяснил, что если ваш сетевой адаптер использует IPV6, он не будет отображаться как 127.0.0.1, а :: 1

В итоге я сделал следующее:

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
</Directory>

То же самое касается вашего доступа к PHPMyAdmin, файл конфигурации - phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
</Directory>

Я думаю, что этот ответ действительно обращается к важной задаче, а именно к тому, что когда IPv6 включен, localhost преобразуется в адрес IPv6 (:: 1), что, в свою очередь, означает, что запрашивающий адрес также будет адресом IPv6 (также :: 1), который НЕ совпадает с 127.0.0.1, который является единственным адресом, с которого разрешены соединения. Кроме того, localhost разрешается через локальный DNS-сервер по умолчанию (а не через хосты), и, на мой взгляд, лучше всего оставить его таким образом и вместо этого либо отключить IPv6, чтобы localhost разрешился до 127.0.0.1, либо измените / включите, как указано выше.
fast-reflexes

просто добавление 'Allow from :: 1' в файл "c: \ wamp \ alias \ phpmyadmin.conf" решило проблему phpmyadmin 403.
ewroman 03

4

если вы использовали localhost / phpmyadmin /

просто используйте

127.0.0.1/phpmyadmin/ для PHPMyAdmin

127.0.0.1/sqlbuddy/ для SQLBuddy

или если вы использовали localhost: 8080 / phpmyadmin /, тогда

127.0.0.1:8080/phpmyadmin/ для PHPMyAdmin

127.0.0.1:8080/sqlbuddy/ для SQLBuddy


4

Не забудьте удалить фиктивные элементы в httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Спасибо! Это исправило это.
Стив

4

Для Apache версии 2.4.x просто заменить Require localс Require all grantedв httpd.conf файл в <Directory "c:/wamp/www/">теге Перезапустите все услуги


1
Это помогло мне. Странно то, что 2 других VirtualHosts (в httpd-vhosts.conf) не имеют «Требовать локальный» или «Требовать все предоставлено» и по-прежнему работают нормально. ¯_ (ツ) _ / ¯
kmdsax

3

Для Wamp 3.1.3 и Apache 2.4 мне просто пришлось изменить одну строку в моем файле httpd-vhosts.conf.

  1. Откройте httpd-vhosts.conf
  2. Измените "Требовать локальный" на "Требовать всех разрешенных".
  3. Перезапустить все службы

Затем я смог добраться до моего сервера apache с других компьютеров.

Отметьте это видео: https://www.youtube.com/watch?v=Sy_f6wBGnjI


2

У этой проблемы может быть много причин

Что я испытал:
1) 127.0.0.1 localhostзапись была дублирована в файле hosts
2) Apache mod_rewriteне был включен

Независимо от причины, резервное копирование вашей wwwпапки, файла конфигурации vhost (и файла конфигурации httpd) поможет. И такой процесс занимает несколько минут.

Удачи


2

Я прочитал и попробовал все исправления, но ни одно не помогло. Наконец я обнаружил, что логотип сервера Wamp зеленый, но должен быть "ВЫКЛЮЧЕНО". Так просто и быстрое исправление после проверки PHPMyAdmin.Cofgи HttPD.cofgпросто нажмите кнопку ВЫПОЛНИТЬ ОНЛАЙН


1

Я пробовал указанные выше конфигурации, и только это сработало для моей конфигурации WAMP Apache 2.4.2. Для нескольких корневых сайтов без именованных доменов в файле хостов Windows используйте http://locahost:8080, http://localhost:8081, http://localhost:8082следующую конфигурацию:

#ServerName localhost:80
ServerName localhost

Listen 8080
Listen 8081
Listen 8082
#..... 
<VirtualHost *:8080>
    DocumentRoot "c:\www"
    ServerName localhost
    <Directory "c:/www/">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
<VirtualHost *:8081>
    DocumentRoot "C:\www\directory abc\svn_abc\trunk\httpdocs"
    ServerName localhost
    <Directory "C:\www\directory abc\svn_abc\trunk\httpdocs">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
#<VirtualHost *:8082></VirtualHost>.......

1

Я столкнулся с этой проблемой с wamp на Windows 7. Добавление следующего кода в httpd-vhosts.conf решило проблему для меня.

<VirtualHost *:80>
  DocumentRoot "F:/wamp_server/www/"
  ServerName localhost
</VirtualHost>

1

Спасибо за вопрос. Я использую Wamp 3 сейчас. И я нахожу простой ответ на ваш вопрос. Но этот ответ должен немного измениться на wamp 3. Шаги следующие:

  1. Щелкните правой кнопкой мыши значок wamp
  2. Выберите настройку Wamp
  3. Щелкните пункт меню: онлайн / офлайн
  4. Щелкните левой кнопкой мыши значок wamp
  5. Вы обнаружите, что появился новый пункт под названием «Разместить в сети».

Спасибо, @ miltonb.
Smart Du

1

Мне потребовалась целая вечность, чтобы понять это.

C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-vhosts.conf

В этом файле вы увидите несколько примеров файлов виртуального хоста, которые выглядят так:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Просто удалите эти записи и замените на:

<VirtualHost *:80>
    ServerAdmin serveradmin@host.com
    DocumentRoot "C:\wamp\www"
    ServerName localhost
</VirtualHost>

Вам определенно нужно убедиться, что другие ваши утки находятся в ряду, но это для меня с решением, которое сработало.


0

привет есть 2 решения:

  1. измените порт 80 на 81 в текстовом файле (httpd.conf) и щелкните 127.0.0.1:81

  2. изменить настройки сети перейти в панель управления - сеть и Интернет - сеть и центр обмена

щелкните -> подключение по локальной сети выберите -> проверьте правильность в параметрах -разрешить другое ..... и --- разрешить другое .....


0

У меня тоже была эта пробема. Моя проблема заключалась в том, что я сделал ошибку в файле vhosts.conf. Если вы используете vhosts, это еще одна вещь, которую нужно проверить


0

Эта конфигурация в httpd.conf мне подходит.

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Directory>

0

Убедитесь, что вы не используете символ разделителя каталогов Windows (обратная косая черта) в именах путей в файле .conf, даже если вы работаете в Windows. Apache их не понимает, но все равно запустится, а затем выведет файл 403 Forbidden Message.

неправильно:

<Directory "c:\websites\my-website\">

право:

<Directory "c:/websites/my-website/">

0

Удивительно, но квадратные скобки в путях DocumentRoot (и связанных, например, <Directory>) также могут вызывать ошибку 403:

  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master[bang]" не удалось с 403, в то время как
  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master" работал нормально.

(Я не удосужился выяснить, какой путь Apache экранирует, если он есть, просто вместо этого переименовал путь. Если кто-нибудь знает, комментарии приветствуются.)


0

Мое решение состояло в том, чтобы отключить кодировку для закодированных файлов (эти файлы в окнах зеленые). Я получил эти файлы с компьютера MAC, и по умолчанию они были зашифрованы.

Ive select these files > right click > properities > general tab > andvanced > uncheck encrypt files...

И вуаля работает.


0

Я перепробовал все, кроме устранения беспорядка в файле .htaccess.

Перейдите в каталог www / и сделайте копию файла .htaccess в другой папке. Затем очистите все строки в .htaccess исходном файле . И добавьте эту строку,

RewriteEngine On

Затем перезапустите сервер. Это решило мою проблему и получил доступ ко всем моим сайтам localhost. Надеюсь, это решит и вашу.


0

Также на Apache 2,4 вам может потребоваться добавить это в директиву каталога в conf, если вы решили включить httpd-vhosts.conf.

По умолчанию вы можете установить Wamp в C: \, но все же выбрать развертывание веб-разработки в другом месте.

Для этого внутри vhosts.conf вы можете добавить эту директиву:

<Directory "e:/websites">
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride All
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
    Allow from all
    Allow from localhost ::1 127.0.0.1
  </IfDefine>
</Directory>

0

убедитесь, что имя файла в каталоге c:/wamp/apps/phpmyadmin3.1.3.1/соответствует имени (или версии) в phpMyAdmin.conf ( Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/")


0

Я обнаружил, что если вы используете усилители, которые по какой-то причине всегда запрещены, когда они находятся в вашей корневой папке, поэтому я помещаю его в каталог над моей корневой папкой и создал псевдоним в httpd.conf этом

Alias /phpmyadmin "C:/Program Files (x86)/Ampps/phpMyAdmin"

обратите внимание, я использую усилители, и я не знаю наверняка, подойдет ли он для других, но попробовать стоит;)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.