VirtualHost eklenemiyor: Erişim Yasak Hatası 403 (XAMPP) (Windows 7)


161

Windows 7 üzerinde çalışan bir XAMPP kurulumum var.

Httpd-vhosts.conf dosyasına bir VirtualHost ekler eklemez, 'normal' İYİ http://localhostVE yeni dropbox.local çalışmaz.

Benim eklediğim budur 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.logHerhangi bir bilgi için aradım :

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

Bu hata,

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

Ama şimdi bu hatayı alıyorum 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/

Ayrıca erişmeye çalıştığımda, erişmeye çalıştığım zaman http://localhostdüzenli error.logolmasına rağmen herhangi bir hata almıyorum error 403.

Biri yardım edebilir mi? Beni deli ediyor: S

DÜZENLEME: Ayrıca httpd.confaşağıdakiler de var (birden fazla kez bahsettiğini gördüm, bu yüzden kimse söylemeden önce):

<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
Kendime bir cevap aldım ama henüz gönderemiyorum :( Yeteri kadar itibar yok: /
Highmastdon

Bu cevapların hiçbiri benim için çalışmıyor :(
Pathros

Lütfen biri bana yardım edebilir mi? Aynı şeyi
MAMP'te

Yanıtlar:


340

Tamam: Şimdi yaptım ve çözüldü:

Benim httpd-vhosts.confşimdi böyle görünüyor:

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

İlk olarak, <Directory xx:xx>seçenekleri belirlemenin gerekli olduğunu gördüm . Ben koymak Yani <Directory > [..] </Directory>-part INSIDE <VirtualHost > [..] </VirtualHost>. Bundan sonra, ilave AllowOverride AuthConfig Indexesetmek <Directory>seçenekler.

Şimdi http://localhostdropbox-sanal ana makineye de işaret ediyor. Eklediğim Yani dropbox.localetmek <VirtualHost *:80>gibi yapar<VirtualHost dropbox.local:80>

Nihayet işe yarıyor: D!

Ben mutlu bir adamım! :) :)

Umarım başka biri bu bilgiyi kullanabilir.


39
FWIW, aynısını yaptım ve hala hayaletime erişmekte sorunlar yaşıyordum. Ancak, Require all grantedsonra eklemek Allow from allbenim yapılandırma çalışması yaptı.
Camilo Díaz Repka

httpd-vhosts.confApache için bir yapılandırma dosyasıdır. Apache php kodunu 'çalıştırır'. xamppYapılandırmayı yukarıda belirtildiği gibi indirip yükleyin ve değiştirin.
Highmastdon

6
Apache 2.4'ten itibaren erişim kontrol direktifleri siparişi, izin verme, reddetme ve tatmin etme önerileri kaldırılmıştır . Bu yönergeleri kullanırken daha düşük bir sürüm kullandığınızdan emin olun veya bunun yerine Require kullanın.
Pascalculator

4
@Pascalculator'ın dediği gibi, Require all granted bunun yerine kullanın . Bunun yerine vurgulamak istiyorum çünkü yapılandırmamdaki diğer seçeneklere sahip olduğumda işe yaramadı, ancak bunu geride bıraktığımda işe yaradı.
user2428118

1
@davejal Çok teşekkürler ve sorun değil :) Bu konuda bir pislik olmak istemiyorum. Gerçekten biraz daha fazla EQ burada güzel olabilir :)
Highmastdon

60

Benim için "dizin" içeriğini değiştirdiğimde çalıştı:

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

Apache 2.4.3 - şimdi yukarıdaki toplama ile çalışıyor, artı ben XAMPP CP yanıt vermemesine neden olan Kontrol Paneli'nde "kontrol" Apache ve MySQL hizmetleri vardı. Denetlenmeyen hizmetler - Apache çalıştı, ancak Erişim Yasak hatası. Yukarıdaki izinler eklendi ve şimdi çalışıyor. Teşekkürler!!
Sean Kendle

2
Temelde bu - Seçenekler yönergesi eksikti. Options Indexes FollowSymLinksihtiyacım olan tek şey Apache2.2, YMMV
Ed Orsi

Bu, seçilen cevabın aksine benim için harika çalıştı. Bazı nedenlerden ötürü, "Tümü kabul et" ifadesinin kendisi, XAMPP'yi anında çökerttiği için yanıt vermediğini gösterir. Ama bu cevap <dizin> arasındakilerle çalıştı, bu yüzden cevap için teşekkürler.
Scrydan

Lütfen biri bana yardım edebilir mi? Aynı şeyi
MAMP'te

SADECE Options Allbenim için çalıştı! Eksik içerik!
Theodore R. Smith

10

Benim için (ayrıca Windows 7'de XAMPP), bu işe yaradı:

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

403'e neden olan bu çizgi:

Order allow,deny

Cevabınızı değiştirene kadar .htaccess çalışmadı, teşekkürler.
ssi-anik

index.html eksik olduğunda ve bu klasördeki tüm sayfaları göstermek istediğinizde, <Directory> yönergesi altına yalnızca aşağıdakileri ekleyebilirsiniz: Require all granted veOptions Indexes FollowSymLinks
tatskie

8

Windows 7'de XAMPP 1.6.7 kullanıyorum. Bu makale benim için çalıştı.

Ben dosyasında aşağıdaki satırları ilave httpd-vhosts.confolarak C:/xampp/apache/conf/extra.
Ben de hattı uncommented vardı# 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 yeniden başlatıldıktan sonra hala çalışmıyor. Sonra dosyayı düzenleyerek makalede belirtilen 9. adımı takip etmek zorunda kaldım 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  

Sonra çalışmaya başladım http://mysite.dev


Bu gerçekten yardımcı oldu. Çok teşekkür ederim. günümü kurtardın. :)
Abhishek Goel

6

Teşekkür ederim, işe yaradı! Ama ben onun yerini aldım

AllowOverride AuthConfig Indexes

Bununla

AllowOverride All

Aksi takdirde, .htaccess işe yaramadı: RewriteEngine ve "RewriteEngine burada izin verilmiyor" hata iletisiyle ilgili sorunlar var.


3

Yukarıdaki öneriler benim için işe yaramadı. İlham kaynağımı kullanarak pencerelerimde çalıştırdım Http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html adresinden

Httpd-vhosts.conf içindeki Http için

<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 içinde Https (Açık SSL) kullanmak için

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

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

Umarım birine yardımcı olur !!


2

Çok fazla değişiklikten sonra dener ve cevaplar. İçin

S.o.s: Windows 7 / Windows 10

Xampp Sürümü: Xampp veya Xampp taşınabilir 7.1.18 / 7.3.7 (kontrol paneli v3.2.4)

Yükleyiciler: win32-7.1.18-0-VC14-yükleyici / xampp-windows-x64-7.3.7-0-VC15-yükleyici

  1. Httpd-xampp gibi diğer dosyaları düzenlemeyin

  2. Apache'yi Durdur

  3. Açık httpd-vhosts.conf bulunan **your_xampp_directory**\apache\conf\extra\(varsayılan olarak duyabilecek XAMPP dizinine: C:/xampp/htdocs)

  4. Aşağıdaki satırdan önce karmayı kaldırın (yaklaşık satır 20): NameVirtualHost *:80(bu isteğe bağlı olabilir)

  5. Dizin yollarınızı göz önünde bulundurarak dosyanın sonuna aşağıdaki sanal ana makineleri ekleyin:

    ##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. Ana makine dosyanızı düzenleyin ( yönetici erişimiyle) (şu konumda bulunur Windows\System32\drivers\etc, ancak aşağıdaki ipucunda her alan adı için yalnızca bir geri döngü ipi bulunur) :

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

Her örnek için, ikinci bloğu tekrarlayın, ilk blok sadece "varsayılan" amaçlar için ana bloktur.


1
Her sanal ana bilgisayar için farklı IP adresleri ayarlama çalıştı! Yine de WAMP'tan farklı olarak, XAMP, hepsi bir IP adresinde (örn. 127.0.0.1 localhost,test1.localhost) Bir araya getirildiğinde her sunucu adını yorumlamaz .
CPHPython

@CPHPython farklılıklardan bahsettiğiniz ve cevabımı geliştirdiğiniz için teşekkürler. Yardımcı olduğuma sevindim! Bu konuyla çok savaştığımı hatırlıyorum
Leandro

1
teşekkür ederim, yardım etmekten memnunum! Cevabınızı bulmadan önce, pencerelerin sunucularının neden sunucu adlarını yansıtmadığını anlamaya çalışmak için epey zaman geçirdim.
CPHPython

0

Xampp 1.7.3 kullanıyorum. Buradan ilham almak: xampp 1.7.3 kırık sanal ana bilgisayarlara yükseltme yasak

YERİNE eklenti OF <Directory> .. </Directory>içinde httpd-vhosts.conf , ben de eklemek httpd.conf hemen sonra <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

İşte ben httpd.conf eklemek:

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

İşte httpd-vhosts.conf dosyasına eklediğim şey

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

Listen 8001Ayarımı tamamlamak için httpd.conf da ekliyorum .

Umarım yardımcı olur


0

Birçoğu için bu bir izin meselesi, ama benim için hatanın göndermeye çalıştığım formdaki bir hatadan kaynaklandığı ortaya çıktı. Spesifik olarak ben yanlışlıkla "eylem" değerinden sonra bir "daha büyük" işareti koymuştu. Bu yüzden kodunuza ikinci bir göz atmanızı öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.