VirtualHost 추가 실패 : 액세스 금지 오류 403 (XAMPP) (Windows 7)


161

Windows 7에서 XAMPP 설치가 실행 중입니다.

httpd-vhosts.conf에 VirtualHost를 추가하자마자 '일반' http://localhost과 새 기능 dropbox.local 이 작동하지 않습니다.

이것은 내가 추가 한 것입니다 httpd-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin postmaster@dummy-host.localhost
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ServerAlias www.dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
</VirtualHost>

그래서 나는 dropbox.local-error.log모든 정보를 찾았습니다 .

[Thu Feb 02 10:41:57 2012] [error] [client 127.0.0.1] client denied by server configuration: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

이 오류는 다음을 추가하여 해결 된 것 같습니다.

<directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
     Allow from all
</directory>

그러나 이제이 오류가 발생합니다 dropbox.local-error.log:

[Thu Feb 02 10:45:56 2012] [error] [client ::1] Directory index forbidden by Options directive: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

또한 액세스하려고 http://localhost하면 일반에 오류가 발생하지 error.log않지만 액세스하려고 하면 오류가 발생하지 않습니다 error 403.

누구든지 도와 줄 수 있니?

편집 : 또한 httpd.conf다음과 같은 것이 있습니다 (누군가가 말하기 전에 여러 번 언급했습니다).

<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

1
답변을 받았지만 아직 게시 할 수 없습니다 :( 충분한 평판 : /
Highmastdon

이 답변들 중 어느 것도 나를 위해 작동하지 않습니다 :(
Pathros

누군가 나를 도와주세요. MAMP에서 동일한 것을 달성하려고합니다. stackoverflow.com/q/40405663/4480164
cyber8200

답변:


340

좋아 : 이것은 내가 지금 한 일이며 해결되었습니다.

httpd-vhosts.conf모습은 다음과 같습니다.

<VirtualHost dropbox.local:80>
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
    <Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
        # AllowOverride All      # Deprecated
        # Order Allow,Deny       # Deprecated
        # Allow from all         # Deprecated

        # --New way of doing it
        Require all granted    
    </Directory>
</VirtualHost>

먼저 <Directory xx:xx>옵션 을 설정해야한다는 것을 알았습니다 . 그래서 나는 <Directory > [..] </Directory>-part를 INSIDE에 넣었습니다 <VirtualHost > [..] </VirtualHost>. 그 후, 추가 AllowOverride AuthConfig Indexes받는 사람<Directory> 옵션에 .

이제 http://localhostdropbox-virtualhost도 가리 킵니다. 그래서 추가 dropbox.local<VirtualHost *:80> 로 만드는<VirtualHost dropbox.local:80>

드디어 작동 : D!

나는 행복한 사람입니다! :) :)

다른 사람이이 정보를 사용할 수 있기를 바랍니다.


39
FWIW, 나는 똑같은 일을했지만 여전히 내 호스트에 액세스하는 데 문제가있었습니다. 그러나 추가 Require all grantedAllow from all구성이 작동했습니다.
Camilo Díaz Repka

httpd-vhosts.conf아파치의 설정 파일입니다. Apache는 PHP 코드를 '실행'합니다. xampp위에서 설명한대로 구성을 다운로드하여 설치 하고 변경하십시오.
Highmastdon

6
Apache 2.4부터 액세스 제어 지시문 순서, 허용, 거부 및 만족은 더 이상 사용되지 않습니다 . 이러한 지시문을 사용할 때 더 낮은 버전을 실행하고 있는지 확인하거나 대신 필요를 사용하십시오.
Pascalculator

4
@Pascalculator가 말했듯이 Require all granted 대신 사용하십시오 . 구성에 다른 옵션이있을 때 작동하지 않았기 때문에 대신 에 강조하고 싶습니다 .하지만이 옵션을 뒤에 남겨두면 작동했습니다.
user2428118

1
@ davejal 고마워요 그리고 아무런 문제가 없습니다 :) 나는 그것에 대해 바보가되고 싶지 않습니다. 실제로 조금 더 많은 EQ가 여기에 좋을 수 있습니다 :)
Highmastdon

60

"디렉토리"컨텐츠를 다음과 같이 변경했을 때 저를 위해 일했습니다.

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>

Apache 2.4.3-이제 위의 추가 작업을 수행하고 제어판에서 Apache 및 MySQL 서비스를 "확인"하여 XAMPP CP의 응답을 중지했습니다. 확인되지 않은 서비스-Apache가 실행되었지만 Access Forbidden 오류가 발생했습니다. 위의 권한을 추가했으며 지금 작동합니다. 감사!!
Sean Kendle

2
기본적으로 이것은-옵션 지시문이 누락되었습니다. Options Indexes FollowSymLinks모든 나는 Apache2.2, YMMV에 필요했던
에드 오르시

선택한 답변과는 반대로 이것은 나를 위해 훌륭하게 작동했습니다. 어떤 이유로 든 XAMPP가 즉시 충돌했기 때문에 그 대답은 효과가 없었기 때문에 자체적으로 "모든 권한 부여 필요"가 작동하지 않습니다. 그러나이 답변은 <directory> 사이의 사람들과 함께 작동하므로 답변 주셔서 감사합니다.
Scrydan

누군가 나를 도와주세요. MAMP에서 동일한 것을 달성하려고합니다. stackoverflow.com/q/40405663/4480164
cyber8200

오직 Options All나를 위해 일했다! 빠진 재료입니다!
Theodore R. Smith

10

나에게 (Windows 7의 XAMPP도) 다음과 같이 작동합니다.

<Directory "C:\projects\myfolder\htdocs">`
   AllowOverride All
   Require all granted
   Options Indexes FollowSymLinks
</Directory>` 

403의 원인은 다음과 같습니다.

Order allow,deny

.htaccess가 귀하의 답변으로 변경 될 때까지 작동하지 않았습니다. 감사합니다.
ssi-anik

index.html을 누락하고 방금이 폴더에있는 모든 페이지를 표시 할 때, 당신은 <디렉토리> 지시에 따라 다음과 같은 경우에만 추가 할 수 있습니다 : Require all grantedOptions Indexes FollowSymLinks
tatskie

8

Windows 7에서 XAMPP 1.6.7을 사용하고 있습니다. 이 기사 가 도움이되었습니다.

에 파일 httpd-vhosts.conf에 다음 줄을 추가 했습니다 C:/xampp/apache/conf/extra.
나는 또한 라인의 주석을 해제했다# NameVirtualHost *:80

<VirtualHost mysite.dev:80>
    DocumentRoot "C:/xampp/htdocs/mysite"
    ServerName mysite.dev
    ServerAlias mysite.dev
    <Directory "C:/xampp/htdocs/mysite">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

아파치를 다시 시작한 후에도 여전히 작동하지 않았습니다. 그런 다음 파일을 편집하여 기사에서 언급 한 9 단계를 따라야했습니다 C:/Windows/System32/drivers/etc/hosts.

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

그런 다음 일하고있어 http://mysite.dev


정말 도움이되었습니다. 정말 고맙습니다. 당신은 내 하루를 구했다. :)
Abhishek Goel

6

고마워요! 그러나 나는 이것을 바꿨다.

AllowOverride AuthConfig Indexes

그것으로

AllowOverride All

그렇지 않으면 .htaccess가 작동하지 않습니다. RewriteEngine에 문제가 있으며 "RewriteEngine not allowed here"오류 메시지가 표시됩니다.


3

위의 제안은 저에게 효과적이지 않았습니다. http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html 에서 영감을 사용하여 Windows에서 실행 중입니다.

httpd-vhosts.conf 내부의 HTTP

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:80>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

httpd-ssl.conf에서 Https (Open SSL)를 사용하는 경우

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:443>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

그것이 누군가를 돕기를 바랍니다!


2

너무 많은 변화와 시도와 답변 후에. 에 대한

SO : Windows 7 / Windows 10

Xampp 버전 : Xampp 또는 Xampp 휴대용 7.1.18 / 7.3.7 (제어판 v3.2.4)

설치 프로그램 : win32-7.1.18-0-VC14-installer / xampp-windows-x64-7.3.7-0-VC15-installer

  1. httpd-xampp와 같은 다른 파일을 편집하지 마십시오

  2. 아파치 중지

  3. 에 위치한 httpd-vhosts.conf를 엽니 다 **your_xampp_directory**\apache\conf\extra\(XAMPP 디렉토리는 기본적으로 다음과 같습니다 C:/xampp/htdocs)

  4. 다음 행하기 전에 제거 해시 (함께 aprox 라인 (20).) NameVirtualHost *:80(이 선택 사양 일 수 있음)

  5. 디렉토리 경로를 고려하여 파일 끝에 다음 가상 호스트를 추가하십시오.

    ##127.0.0.1
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs"
        ServerName localhost
        ErrorLog "logs/localhost-error.log"
        CustomLog "logs/localhost-access.log" common
    </VirtualHost>
    
    ##127.0.0.2
    <VirtualHost *:80>
        DocumentRoot "F:/myapp/htdocs/"
        ServerName test1.localhost
        ServerAlias www.test1.localhost
        ErrorLog "logs/myapp-error.log"
        CustomLog "logs/myapp-access.log" common
        <Directory  "F:/myapp/htdocs/">
            #Options All # Deprecated
            #AllowOverride All # Deprecated
            Require all granted  
        </Directory>
    </VirtualHost>
    
  6. 호스트 파일을 ( 관리자 액세스 권한으로) 편집하십시오 ( 에서 위치 Windows\System32\drivers\etc하지만 다음 팁 으로 모든 도메인에 대해 하나의 루프백 IP 만 사용하십시오 .

    127.0.0.1 localhost
    127.0.0.2 test1.localhost
    127.0.0.2 www.test1.localhost
    

모든 경우에 두 번째 블록을 반복하십시오. 첫 번째 블록은 "기본"목적으로 만 메인 블록입니다.


1
각 가상 호스트마다 다른 IP 주소를 설정했습니다! WAMP와 달리 XAMP는 각 서버 이름이 모두 하나의 IP 주소 (예 :)로 묶여있을 때 해석하지 않습니다 127.0.0.1 localhost,test1.localhost.
CPHPython

@CPHPython의 차이점을 언급하고 답변을 개선해 주셔서 감사합니다. 기쁘다! 나는이 문제로 많은 싸움을했던 것을 기억합니다
Leandro

1
도와 주셔서 감사합니다! 귀하의 답변을 찾기 전에 Windows 호스트가 서버 이름을 반영하지 않는 이유를 알아 내려고 꽤 오랜 시간을 보냈습니다.
CPHPython

0

xampp 1.7.3을 사용하고 있습니다. 여기에서 영감을 사용하여 : xampp 1.7.3 업그레이드 깨진 가상 호스트 액세스 금지

INSTEAD OF 추가 <Directory> .. </Directory> httpd-vhosts.conf , 나는 httpd.conf에 바로 추가합니다 <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

httpd.conf에 추가 한 내용은 다음과 같습니다.

<Directory "D:/CofeeShop">
    AllowOverride All
    Options  All
    Order allow,deny
    Allow from all
</Directory>

그리고 여기 내가 httpd-vhosts.conf에 추가 한 것입니다

<VirtualHost *:8001>
    ServerAdmin postmaster@dummy-host2.localhost
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

또한 Listen 8001설정을 완료하기 위해 httpd.conf에 추가 합니다.

그것이 도움이되기를 바랍니다.


0

많은 사람들에게 그것은 허가 문제이지만, 저에게 제출하려는 형태의 실수로 오류가 발생했습니다. 구체적으로 말하면 "액션"의 ​​값 뒤에 실수로 "보다 큼"표시를했습니다. 따라서 코드를 다시 살펴 보는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.