Trước tiên, bạn cần xóa ví dụ dummy định nghĩa từ tệp vhost-httpd.conf của bạn. Chúng ở đó chỉ là ví dụ chỉ để giúp bạn bắt đầu với cú pháp và không nên ở trong conf/extra/httpd-vhosts.conf
đang hoạt động vì chúng đang trỏ đến các thư mục không tồn tại.
Vì vậy, hãy xóa 2 định nghĩa này khỏi tệp:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/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 [email protected]
DocumentRoot "g:/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>
Apache thứ hai 2.4.x nhận biết IPV4 (127.0.0.1) và IPV6 (::1) để hosts
của bạn tệp sẽ trông giống như thế này với các định nghĩa cho cả phiên bản IPV4 và IPV6 cho mỗi trang web. Trình duyệt có thể tùy ý sử dụng vì vậy bạn cần cả hai nhưng có thể sẽ sử dụng mạng IPV6 thay vì IPV4 nếu cả hai thực sự hoạt động trên PC của bạn.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Bây giờ, trên 2 Máy chủ ảo thực sự tồn tại trên hệ thống của bạn, hãy thử điều này làm định nghĩa Máy chủ ảo:
<VirtualHost *:80>
DocumentRoot "g:/wamp/www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "G:/wamp/www">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
ServerAlias www.mysite.dev
ErrorLog "logs/mysite-error.log"
CustomLog "logs/mysite-access.log" common
<Directory "G:/wamp/www/mysite/public">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<Directory>....</Directory>
trong phần <VirtualHost>....</VirtualHost>
phần cho Apache biết Địa chỉ IP nào nó được phép chấp nhận kết nối từ đó, vì vậy hãy sử dụng cú pháp Apache 2.4 Require local
giới hạn quyền truy cập để chỉ PC chạy WAMPServer, tức là Apache mới có thể kết nối với bất kỳ trang web nào trong số này.
Tránh trộn cú pháp Apache 2.2 và cú pháp Apache 2.4 với nhau trong cùng một định nghĩa. Vì vậy, không sử dụng
Order Allow,Deny
Allow from all
và
Require all granted
trong cùng một định nghĩa. Bạn đang sử dụng Apache 2.4 vì vậy hãy sử dụng cú pháp Apache 2.4.
Nếu bạn thấy bạn muốn cho phép PC khác bên trong mạng cục bộ của mình nhìn thấy trang web của bạn, tức là bạn đời hoặc con cái, v.v., bạn có thể thêm cú pháp này vào một hoặc nhiều định nghĩa Máy chủ ảo của mình.
Chỉ cho phép một PC khác vào trang web của bạn
Require local
Require ip 192.168.1.100
hoặc 2 PC khác
Require local
Require ip 192.168.1.100, 192.168.1.101
Hoặc với bất kỳ ai trong mạng cục bộ của bạn, chỉ cần sử dụng 3 trong 4 phần tư đầu tiên của địa chỉ ip.
Require ip 192.168.1
Cũng tránh sử dụng cú pháp cho phép truy cập từ bất kỳ đâu, tức là
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Nó có thể giải quyết các vấn đề của bạn trong thời gian ngắn, nhưng chỉ chờ đợi để bắt gặp bạn vào một thời gian sau khi bạn quyết định muốn hiển thị trang web của mình cho bạn bè / khách hàng / ông chủ. Nếu bạn đến giai đoạn Chuyển tiếp cổng, bộ định tuyến của bạn để thế giới được phép vào mạng của bạn, điều này sẽ gây ra TẤT CẢ CÁC TRANG WEB CỦA BẠN để trở nên sẵn có trên toàn thế giới.
Tốt hơn là thay đổi MỘT Định nghĩa Máy chủ Ảo cho MỘT trang web mà bạn muốn mọi người xem để thử nghiệm / khoe khoang từ Require local
thành Require all granted
và chỉ cho phép một trang web duy nhất được truy cập từ internet.
Khi bạn đã thực hiện tất cả những thay đổi này, hãy nhớ khởi động lại Apache.
Ngoài ra, nếu bạn thay đổi tệp hosts để làm cho chnages hoạt động, bạn nên khởi động lại hoặc chạy lệnh này từ dòng lệnh của cửa sổ lệnh bắt đầu sử dụng Runs as Administrator
tùy chọn.
net stop dnscache
net start dnscache
ipconfig /flushdns