Thêm Virtualhost không thành công: Truy cập bị cấm 403 (XAMPP) (Windows 7)


161

Tôi đã có bản cài đặt XAMPP chạy trên Windows 7.

Ngay sau khi tôi thêm Virtualhost vào httpd-vhosts.conf, CẢ HAI 'thông thường' http://localhostVÀ cái mới dropbox.local không hoạt động.

Đây là những gì tôi đã thêm vào 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>

Vì vậy, tôi tìm kiếm dropbox.local-error.logthông tin của tôi :

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

Lỗi này dường như được giải quyết bằng cách thêm

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

Nhưng bây giờ tôi nhận được lỗi này trong 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/

Hơn nữa, khi tôi cố gắng truy cập http://localhost, tôi không gặp bất kỳ lỗi nào thường xuyên error.log, mặc dù tôi gặp phải error 403khi tôi cố gắng truy cập nó.

Ai có thể giúp ... Nó làm tôi phát điên: S

EDIT: Cũng httpd.confcó những điều sau đây (Tôi đã thấy nó được đề cập nhiều lần, vì vậy trước khi có ai nói điều đó):

<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
Tôi đã có cho mình một câu trả lời nhưng tôi chưa thể đăng nó :( Không đủ danh tiếng: /
Highmastdon

Không có câu trả lời nào trong số này trả lời cho tôi :(
Pathros

Có ai giúp tôi thoát khỏi đây không ? Tôi đang cố gắng để đạt được điều tương tự trong MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Câu trả lời:


340

Được rồi: Đây là những gì tôi đã làm bây giờ và nó đã được giải quyết:

httpd-vhosts.confBây giờ trông tôi như thế này:

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

Đầu tiên, tôi thấy rằng cần phải thiết lập các <Directory xx:xx>tùy chọn. Vì vậy, tôi đặt <Directory > [..] </Directory>-part bên trong <VirtualHost > [..] </VirtualHost>. Sau đó, tôi thêm AllowOverride AuthConfig Indexesvào các <Directory>tùy chọn.

Bây giờ http://localhostcũng trỏ đến dropbox-virtualhost. Vì vậy, tôi đã thêm dropbox.localvào <VirtualHost *:80>mà làm cho nó như là<VirtualHost dropbox.local:80>

Cuối cùng, nó hoạt động: D!

Tôi là một người đàn ông hạnh phúc! :) :)

Tôi hy vọng người khác có thể sử dụng thông tin này.


39
FWIW, tôi đã làm như vậy và vẫn gặp vấn đề khi truy cập vhost của tôi. Tuy nhiên, thêm Require all grantedsau khi Allow from alllàm cho cấu hình của tôi làm việc.
Camilo Díaz Repka

Đây httpd-vhosts.conflà một tệp cấu hình cho Apache. Apache 'chạy' mã php. Tải về và cài đặt xamppvà thay đổi cấu hình như đã nêu ở trên.
Highmastdon

6
Kể từ Apache 2.4 , lệnh chỉ thị kiểm soát truy cập , cho phép, từ chối và đáp ứng đều không được chấp nhận . Đảm bảo bạn đang chạy phiên bản thấp hơn khi sử dụng các chỉ thị này hoặc sử dụng Yêu cầu thay thế.
Pascalculator

4
Như @Pascalculator nói, sử dụng Require all granted thay thế . Tôi muốn nhấn mạnh thay vào đó bởi vì nó không hoạt động khi tôi có các tùy chọn khác trong cấu hình của mình, nhưng khi tôi chỉ để cái này phía sau nó hoạt động.
dùng2428118

1
@davejal Cảm ơn rất nhiều và không có vấn đề gì :) Tôi không muốn trở thành một thằng ngốc về nó. Thật vậy, một chút EQ có thể tốt đẹp ở đây :)
Highmastdon

60

Đối với tôi làm việc khi tôi thay đổi nội dung "thư mục" thành này:

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

Apache 2.4.3 - hiện đang hoạt động với phần bổ sung ở trên, cộng với việc tôi đã kiểm tra các dịch vụ Apache và MySQL trong Bảng điều khiển khiến XAMPP CP ngừng phản hồi. Các dịch vụ không được kiểm tra - Apache đã chạy, nhưng lỗi Cấm truy cập. Đã thêm các quyền trên, và nó hoạt động ngay bây giờ. Cảm ơn!!
Sean Kendle

2
Về cơ bản điều này - tôi đã thiếu chỉ thị Tùy chọn. Options Indexes FollowSymLinkslà tất cả những gì tôi cần trên Apache2.2, YMMV
Ed Orsi

Điều này làm việc tuyệt vời cho tôi trái ngược với câu trả lời được chọn. Vì một số lý do, "Yêu cầu tất cả được cấp" bởi chính câu trả lời đó cho thấy không hoạt động vì nó bị sập ngay lập tức XAMPP. Nhưng câu trả lời này đã làm việc với những người ở giữa <thư mục> vì vậy cảm ơn vì câu trả lời.
Scrydan 18/03/2015

Có ai giúp tôi thoát khỏi đây không ? Tôi đang cố gắng để đạt được điều tương tự trong MAMP stackoverflow.com/q/40405663/4480164
cyber8200

CHỈ Options Alllàm việc cho tôi! Nó là thành phần còn thiếu!
Theodore R. Smith

10

Đối với tôi (cũng là XAMPP trên Windows 7), đây là những gì đã hoạt động:

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

Chính dòng này sẽ gây ra 403:

Order allow,deny

.htaccess không hoạt động cho đến khi tôi thay đổi câu trả lời của bạn, cảm ơn.
ssi-anik

khi index.html là mất tích và bạn chỉ muốn hiển thị tất cả các trang trên thư mục này, bạn có thể thêm chỉ sau dưới <Directory> chỉ thị: Require all grantedOptions Indexes FollowSymLinks
tatskie

8

Tôi đang sử dụng XAMPP 1.6.7 trên Windows 7. Bài viết này hoạt động với tôi.

Tôi đã thêm các dòng sau trong tập tin httpd-vhosts.conftại C:/xampp/apache/conf/extra.
Tôi cũng đã bỏ qua dòng# 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>

Sau khi khởi động lại apache, nó vẫn không hoạt động. Sau đó, tôi phải làm theo bước 9 được đề cập trong bài viết bằng cách chỉnh sửa tệp 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  

Sau đó tôi đã làm việc http://mysite.dev


Điều này thực sự có ích. Cảm ơn bạn rất nhiều. bạn đã cứu ngày của tôi :)
Gohishek Goel

6

Cảm ơn bạn, điều đó đã làm việc! Nhưng tôi đã thay thế cái này

AllowOverride AuthConfig Indexes

với

AllowOverride All

Mặt khác, .htaccess không hoạt động: Tôi gặp vấn đề với RewriteEngine và thông báo lỗi "RewriteEngine không được phép ở đây".


3

Những gợi ý trên không có tác dụng với tôi. Tôi đã nhận được nó chạy trên các cửa sổ của mình, sử dụng nguồn cảm hứng từ http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Đối với http bên trong httpd-vhosts.conf

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

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

Để sử dụng Https (SSL mở) bên trong httpd-ssl.conf

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

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

Hy vọng nó sẽ giúp được ai đó !!


2

Sau rất nhiều thay đổi và cố gắng và câu trả lời. Dành cho

SO: Windows 7 / Windows 10

Phiên bản Xampp: Xampp hoặc Xampp xách tay 7.1.18 / 7.3.7 (bảng điều khiển v3.2.4)

Trình cài đặt: win32-7.1.18-0-VC14-Installer / xampp-windows-x64-7.3.7-0-VC15-Installer

  1. Không chỉnh sửa các tệp khác như httpd-xampp

  2. Dừng Apache

  3. Mở httpd-vhosts.conf nằm trong **your_xampp_directory**\apache\conf\extra\(thư mục XAMPP của bạn có thể theo mặc định C:/xampp/htdocs:)

  4. Xóa hàm băm trước dòng sau (aprox. Dòng 20): NameVirtualHost *:80(điều này có thể là tùy chọn)

  5. Thêm các máy chủ ảo sau vào cuối tệp, xem xét đường dẫn thư mục của bạn:

    ##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. Chỉnh sửa (với quyền truy cập của quản trị viên) tệp máy chủ của bạn (nằm ở Windows\System32\drivers\etc, nhưng với mẹo sau, chỉ có một ip loopback cho mỗi tên miền :

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

Đối với mọi trường hợp, lặp lại khối thứ hai, khối thứ nhất chỉ là khối chính cho mục đích "mặc định".


1
Đặt địa chỉ IP khác nhau cho mỗi máy chủ ảo hoạt động! Không giống như WAMP, XAMP không diễn giải từng tên máy chủ khi tất cả chúng được gói trong một địa chỉ IP (ví dụ 127.0.0.1 localhost,test1.localhost).
CPHPython

@CPHPython cảm ơn vì đã đề cập đến sự khác biệt và cải thiện câu trả lời của tôi. Rất vui được giúp đỡ! Tôi nhớ đã chiến đấu rất nhiều với vấn đề này
Leandro

1
cảm ơn, rất vui được giúp đỡ Trước khi tìm thấy câu trả lời của bạn, tôi đã mất khá nhiều thời gian để cố gắng tìm hiểu tại sao máy chủ của các cửa sổ không phản ánh tên máy chủ.
CPHPython

0

Tôi đang sử dụng xampp 1.7.3. Sử dụng nguồn cảm hứng từ đây: xampp 1.7.3 nâng cấp bị cấm truy cập máy chủ ảo

INSTEAD OF add <Directory> .. </Directory>trong httpd-vhosts.conf , tôi thêm nó vào httpd.conf ngay sau đó <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

Đây là những gì tôi thêm vào httpd.conf:

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

Và đây là những gì tôi thêm vào httpd-vhosts.conf

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

Tôi cũng thêm Listen 8001vào httpd.conf để hoàn thành cài đặt của mình.

Hy vọng nó giúp


0

Đối với nhiều người, đây là một vấn đề về sự cho phép, nhưng đối với tôi, hóa ra lỗi đã xảy ra do một lỗi trong hình thức mà tôi đang cố gắng gửi. Để cụ thể, tôi đã vô tình đặt một dấu "lớn hơn" sau giá trị của "hành động". Vì vậy, tôi sẽ đề nghị bạn hãy xem lại mã của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.