WAMP 403 Заборонене повідомлення в Windows 7


101

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

Але коли я переглядаю свій IP в браузері, я отримую повідомлення

403 Заборонено: Ви не маєте дозволу на доступ / на цьому сервері.

Будь-які пропозиції?


Доступ до вашого сервера Apache заборонено з інших адрес, ніж 127.0.0.1у httpd.conf(файл конфігурації Apache)
Nasreddine

Я це виправив, тепер я отримую 403 Заборонено в моєму phpMyAdmin, якісь пропозиції щодо цього?
Джейк

Є також, phpmyadmin.confщо містить директиви для псевдоніма "localhost / phpmyadmin"
Nasreddine

якщо ви тут для Windows 8 chk цей 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} / {папкаOrFileName} ', він повинен працювати нормально. Це має працювати так само, як використання localhost, але я виявив, що деякі браузери з певних причин мають проблеми з localhost.
Джеремі

Я не зміг відформатувати свій адресний рядок у цьому останньому коментарі, щоб у ньому було зайве "" "просто ігноруйте це вибачення, якщо хтось бентежить.
Джеремі

Примітка: файл встановлює параметри за замовчуванням, які потім переопределяються по черзі, тому переконайтеся, що ці рядки йдуть після всіх переопределень.
meetar

3
Не забудьте "Перезапустити всі сервіси" з меню лотка системи WAMP (або як би ви це зробили.)
Plummer

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
П'єр-Ів Гільємет

Це зафіксувало і для мене. Хоча в моєму випадку мені довелося спочатку "Покласти офлайн", потім "Покласти в Інтернет" і працював без будь-яких інших змін у моїх конфігураційних файлах! Дякую!!
Осмар

1
Власне, я почав робити всі ці речі в першій, прийнятій відповіді. І це не допомогло. Потім я побачив це тут, і подумав: "Ні в якому разі це не може бути таке ...", але, це було і воно спрацювало.
Фуссельдіб

Суперкаліфрагілістіцекспіалідоці!
Вахід

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 /"? Це, мабуть, не має ніякого ефекту, і просто залишити a / врешті-решт, як це стандартно, здається, працює так само добре
Squazz

Краще скористайтеся пунктом "Потрібні всі надані" замість "Вимагати місцевого", якщо ви хочете відкрити свій сайт на інших пристроях вашої локальної мережі
Ракеш

Додавання "Дозволити від усіх" зробило це для мене.
Rex the Strange

10

Рішення щодо зміни дозволів у httpd.conf спрацює, якщо ви все в порядку із забезпеченням доступу до сервера WAMP ззовні.

Якщо ви не хочете цього робити, то все, що вам потрібно зробити, це сказати Windows, що домен "localhost" вказує на 127.0.0.1. Це можна зробити, відредагувавши файл хосту у вашому системному каталозі.

Файл розміщується за адресою: C: \ Windows \ System32 \ driver \ 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

Примітка. Ви не зможете редагувати хост-файл як його файл, доступний лише для читання. Для редагування ви повинні бути адміністратором, скопіювати файл в якесь інше місце, відредагувати його та знову скопіювати у каталог тощо.

Я не рекомендую змінювати файли хостів. Використовуйте дозволи файлу httpd.conf. використовуйте підхід до файлів хостів лише у тому випадку, якщо ви не хочете, щоб сервер отримував доступ ззовні.


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, або змінити / включити як зазначено вище.
швидкі рефлекси

просто додавши "Дозволити від :: 1" до "c: \ wamp \ alias \ phpmyadmin.conf файл" вирішено проблему phpmyadmin 403.
євроман

4

якщо ви використовували localhost / phpmyadmin /

просто використовувати

127.0.0.1/phpmyadmin/ для PHPMyAdmin

127.0.0.1/sqlbuddy/ для SQLBuddy

або якщо ви використовували localhost: 8080 / phpmyadmin / then

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
Це зробило для мене трюк. Дивна річ у тому, що у двох інших VirtualHosts (в httpd-vhosts.conf) немає "Потрібна локальна" або "Вимагати всіх наданих", і вони все ще працюють чудово. ¯_ (ツ) _ / ¯
kmdsax

3

Для Wamp 3.1.3 та Apache 2.4 мені просто довелося змінити 1 рядок у моєму файлі 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запис дублюється у файлі хостів
2) Apache mod_rewriteне ввімкнено

Незалежно від причини, допоможе створити резервну копію вашої wwwпапки, файл конфігурації vhost (та конфігураційний файл httpd). І такий процес займає кілька хвилин.

Удачі


2

Я читав і випробував усі виправлення, але жодна не працювала. Нарешті я виявив, що логотип сервера Wamp зелений, але потрібно бути "ПІДКЛЮЧИТИ ОНЛАЙН". Настільки просте та швидке виправлення після перевірки Вашого PHPMyAdmin.Cofg& HttPD.cofgпросто натисніть на кнопку PUT ONLINE


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 Setting
  3. Клацніть пункт меню: онлайн / офлайн
  4. Клацніть лівою кнопкою миші значок
  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. змінити налаштування мережі перейдіть до панелі управління - мережа та Інтернет - мережа та центр обміну

клацніть -> виберіть місце з’єднання з місцевою зоною -> перевірити propertis у вікні -дозволити інше ..... та --- алло інше .....


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 не розуміє їх, але все одно запуститься, а потім виведе a 403 Forbidden Message.

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

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

правильно:

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

0

Дивно, але квадратні дужки в DocumentRoot (і пов'язані з ними, як <Директорія>) також можуть спричинити помилку 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 оригінальному файлі . І додайте цей рядок,

ПереписатиEngine On

Потім перезавантажте сервер. Це вирішило мою проблему і отримало доступ до всіх моїх сайтів localhost. Сподіваюся, це вирішить і ваше.


0

Також на Apache 2,4 вам може знадобитися додати це до директиви каталогів конф, якщо ви вирішили включити 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.