VirtualHostの追加が失敗する:アクセス禁止エラー403(XAMPP)(Windows 7)


161

Windows 7でXAMPPインストールを実行しています。

VirtualHostをhttpd-vhosts.confに追加するとすぐに、「通常」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私はそれにアクセスしようとします。

誰かが助けることができます...それは私を怒らせています:S

編集:また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

これらの答えはどれも私には
役に立た

誰かがここで私を助けてくれますか?私は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の内部に-part を置き<VirtualHost > [..] </VirtualHost>ます。その後AllowOverride AuthConfig Indexes<Directory>オプションを追加しました。

これでhttp://localhost、dropbox-virtualhostもポイントします。だから私はそれに追加dropbox.local<VirtualHost *:80>ました<VirtualHost dropbox.local:80>

最終的にそれは動作します:D!

私は幸せな男です!:) :)

他の誰かがこの情報を利用できることを願っています。


39
FWIW、私は同じことをしましたが、それでも私のvhostへのアクセスに問題がありました。ただし、Require all granted後から追加するとAllow from all、設定が機能します。
CamiloDíazRepka

これhttpd-vhosts.confはApacheの設定ファイルです。ApacheはPHPコードを「実行」します。xampp上記のように構成をダウンロードしてインストールし、変更します。
ハイマストドン

6
Apache 2.4以降、アクセス制御ディレクティブのorder、allow、deny、satisfyは非推奨になりました。これらのディレクティブを使用するときは、より低いバージョンを実行していることを確認するか、代わりにRequireを使用してください。
Pascalculator 2013年

4
@Pascalculatorが言うように、Require all granted 代わりにを使用してください。構成に他のオプションがあったときは機能しなかったので、代わりに強調したいと思います。
user2428118

1
@davejalありがとう、問題ありません:)私はそれについてジャークになりたくありません。実際、もう少しEQをここで
使う

60

「ディレクトリ」のコンテンツを次のように変更したときに私は働いていました:

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

Apache 2.4.3-上記の追加で動作するようになりました。さらに、コントロールパネルでApacheおよびMySQLサービスを「チェック」すると、XAMPP CPが応答を停止していました。未チェックのサービス-Apacheは実行されましたが、アクセスが禁止されています。上記の権限を追加しましたが、現在は機能しています。ありがとう!!
Sean Kendle、2014

2
基本的にこれ-オプションディレクティブがありませんでした。Options Indexes FollowSymLinksApache2.2、YMMVで必要なものはすべて
Ed Orsi

これは、選択された回答とは対照的に、私にとって素晴らしい働きをしました。XAMPPが即座にクラッシュしたため、その答えが示唆するように、何らかの理由で「すべて許可を要求する」自体は機能しませんでした。しかし、この回答は<directory>間の回答で機能したため、回答に感謝します。
Scrydan 2015年

誰かがここで私を助けてくれますか?私はMAMPで同じことを達成しようとしていますstackoverflow.com/q/40405663/4480164
cyber8200

ONLY Options All私のために働きました!欠けている成分です!
セオドアR.スミス

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 2015年

:index.htmlには不足していると、あなたはこのフォルダ上のすべてのページを表示したいとき、あなただけの<Directory>の下に次のディレクティブを追加するRequire all grantedOptions Indexes FollowSymLinks
tatskie

8

Windows 7でXAMPP 1.6.7を使用しています。この記事は役に立ちました。

私は、ファイルに次の行を追加httpd-vhosts.confC:/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>

Apacheを再起動した後、まだ動作していませんでした。次に、ファイルを編集して、記事に記載されている手順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 2014年

6

ありがとうございます。しかし、私はこれを交換しました

AllowOverride AuthConfig Indexes

それと

AllowOverride All

そうしないと、.htaccessが機能しませんでした。RewriteEngineでエラーが発生し、「RewriteEngineはここでは許可されません」というエラーメッセージが表示されました。


3

上記の提案は私にとってはうまくいきませんでした。http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.htmlからのインスピレーションを使用して、自分のウィンドウで実行しました

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. Apacheを停止する

  3. オープンのhttpd-vhosts.confにあります**your_xampp_directory**\apache\conf\extra\(あなたのXAMPPのディレクトリは、デフォルトで次のようになります。C:/xampp/htdocs

  4. 次の行の前のハッシュを削除します(約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が、次のヒントを参考にして、すべてのドメインに対して1つのループバックIPのみを使用します

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

すべてのインスタンスについて、2番目のブロックを繰り返します。最初のブロックは、「デフォルト」の目的のためだけのメインブロックです。


1
仮想ホストごとに異なるIPアドレスを設定するとうまくいきました!ただし、WAMPとは異なり、XAMPはすべてのサーバーが1つのIPアドレス(など127.0.0.1 localhost,test1.localhost)にバンドルされている場合、各サーバー名を解釈しません。
CPHPython

@CPHPython違いに言及し、私の答えを改善してくれてありがとう。助けてくれてうれしい!私はこの問題で何度も戦ったことを覚えています
Leandro

1
ありがとう、また助けてくれてうれしい!あなたの答えを見つける前に、Windowsのホストがサーバー名を反映していない理由を理解しようとかなりの時間を費やしていました。
CPHPython 2019

0

xampp 1.7.3を使用しています。ここからのインスピレーションを使用する:xampp 1.7.3アップグレード、壊れた仮想ホストへのアクセスは禁止されています

INSTEAD ADDの<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

多くの場合、それは許可の問題ですが、私が提出しようとしたフォームの誤りが原因でエラーが発生したことがわかりました。具体的には、「action」の値の後に誤って「より大」の記号を付けました。したがって、コードをもう一度確認することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.