Tôi không thể truy cập bên ngoài trang web wordpress của máy chủ nhà của tôi


0

Về cơ bản, tôi có thể truy cập mọi thứ tốt chỉ bằng cách sử dụng 127.0.0.1, nhưng nếu tôi sử dụng IP bên ngoài của mình (123.123.123.123), tôi sẽ không tìm thấy trang.

Bộ định tuyến của tôi là cổng chuyển tiếp cổng HTTP 80 đến cổng 8080 trên địa chỉ IP bên trong máy chủ của tôi. Nói cách khác: (Ứng dụng: HTTP | Bắt đầu: 80 | Kết thúc: 8080 | Giao thức: Cả | Địa chỉ IP 192.168.0.101 | Kích hoạt [CÓ]) Tôi biết nó chuyển tiếp đúng cách, vì khi tôi dừng chuyển tiếp cổng, tôi có thể truy cập bộ định tuyến của mình trang bằng cách sử dụng IP bên ngoài của tôi.

Tệp máy chủ ảo của tôi là:

NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
    ServerName example.com
    ServerAlias www.example.com
</VirtualHost>

và tệp httpd.conf của tôi là:

Listen 80
Servername localhost:80
DocumentRoot "/opt/lampstack-5.3.16-0/apache2/htdocs
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny, allow
    deny from all
</Directory>
<Directory "/opt/lampstack-5.3.16-0/apache2/htdocs">
    Options FollowSymLinks
    AllowOverride None
    Order allow, deny
    allow from all
</Directory>

Bạn có thể truy cập nó cục bộ, từ một máy tính khác trong mạng của bạn không?
Tanner Faulkner

Nếu tôi sử dụng máy tính khác trong mạng của mình và nhập vào 127.0.0.1, tôi sẽ không tìm thấy trang. BTW, tôi đã bỏ chọn "Bộ lọc chuyển hướng Internet NAT" trong cài đặt bộ định tuyến của mình. Nhưng nó không tạo ra sự khác biệt nếu tôi bật hoặc tắt.
piratepartypumpkin

tốt, bạn sẽ gõ http://192.168.0.101/từ một máy tính khác trong mạng của bạn, 127.0.0.1 luôn đề cập đến máy cục bộ.
Lu-ca

Cảm ơn Luke, tôi đã thử nó với NAT Redirection và tắt 192.168.0.101 cho tôi một trang không tìm thấy cả hai lần.
piratepartypumpkin

Bạn đã kiểm tra xem nhật ký lỗi apache của bạn đang nói gì chưa? Tìm ErrorLogtrong httpd.conf của bạn để tìm vị trí của nó.
Lu-ca

Câu trả lời:


1

Bạn đang sử dụng lưu trữ ảo dựa trên tên. Nếu bạn cố gắng truy cập trang web của mình bằng tên khác, bạn sẽ có được trang mặc định.

NameVirtualHost *:80

Servername localhost:80

Xin lỗi nếu tôi không hiểu đúng. Tôi phải làm gì để khắc phục điều này? Tôi có đặt "Tên máy chủ 123.123.123.123:80" thay vì "Tên máy chủ localhost: 80" không? 123.123.123.123 là IP bên ngoài của tôi. Ngoài ra nếu tôi cố gắng truy cập trang web của mình bằng example.com hoặc www.example.com, nó cũng cung cấp cho tôi một trang không tìm thấy.
piratepartypumpkin

Theo apache.org , "Dấu hoa thị khớp với tất cả các địa chỉ, do đó máy chủ chính không phục vụ yêu cầu. Do www.example.com là đầu tiên trong tệp cấu hình, nó có mức ưu tiên cao nhất và có thể được xem là mặc định hoặc máy chủ chính. Điều đó có nghĩa là nếu nhận được yêu cầu không khớp với một trong các chỉ thị ServerName được chỉ định, nó sẽ được cung cấp bởi Virtualhost đầu tiên này. " vì vậy nó nên mặc định là vhost đầu tiên (duy nhất). Nếu nó đang sử dụng trang mặc định, anh ta sẽ thấy apache2 / htdocs phải không?
Luke

Bạn cũng đúng với những gì tôi đã đọc Luke, tôi đã thử www.example.com, tôi đã thử example.com, tôi đã thử example.com:80 và www.example.com:80 và không gặp may mắn cho đến nay.
piratepartypumpkin

1

Tôi nghĩ vấn đề xuất phát từ việc chỉ định DocumentRoot có quyền từ chối quyền đó - nhưng bạn sẽ nhận được 403 Lỗi bị cấm chứ không phải 404 Không tìm thấy (ít nhất là tôi làm khi tôi cố gắng bắt chước cấu hình của bạn).

DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress

Vì thư mục này không có <Directory >mục, nó thừa hưởng các quyền mặc định của

<Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny, allow
  deny from all
</Directory>

hãy thử bình luận những dòng từ chối

  #Order deny, allow
  #deny from all

hoặc tạo một mục mới, để kiểm tra vấn đề này

<Directory "/opt/lampstack-5.3.16-0/apps/wordpress">
  Options FollowSymLinks
  AllowOverride None
  Order allow, deny
  allow from all
</Directory>

Lưu ý: hiện tại bạn nên cố gắng truy cập máy chủ bằng địa chỉ IP, www.example.com sẽ không đưa bạn đến bất kỳ nơi nào vì không có mục DNS nào cho nó (hoặc nếu có, nó không trỏ đến máy chủ của bạn ).


Những gì tôi đã làm là tôi đã thay đổi từ chối Đơn hàng, cho phép Đặt hàng cho phép, từ chối và tôi đã thay đổi Từ chối từ tất cả thành Cho phép từ tất cả. Sau đó tôi khởi động lại apache, vấn đề vẫn không thay đổi.
piratepartypumpkin

Chà, nếu bạn thực sự đang gặp lỗi "404 Không tìm thấy" và không phải là "403 Bị cấm", tôi không chắc chắn. Bạn có chắc chắn rằng bạn không có tường lửa phần mềm hoặc thứ gì đó chặn lưu lượng truy cập đến trên 80 không? Bạn cần tìm ErrorLog và truy cập nhật ký và xem liệu họ có thể cung cấp bất kỳ manh mối nào về những gì đang xảy ra không.
Lu-ca

1

Có vẻ như đó là một vấn đề về bộ định tuyến. Mặc dù tôi đã thử khởi động lại bộ định tuyến của mình, mặc dù tôi đã thử mọi thứ với tính năng chuyển hướng tự nhiên được bật và tắt. Tôi vừa ngồi xuống, và bộ định tuyến của tôi tự thiết lập lại. Tôi đã phải nhập mật khẩu mặc định để vào trang quản trị bộ định tuyến của mình (thay vì mật khẩu tôi đã đặt). Mọi thứ đã hoạt động tốt sau đó.

Ngoài ra, hãy thử không có gì trong tệp vhost của bạn, nó cũng có thể hoạt động

Đạo đức của câu chuyện: thử một bộ định tuyến khác trong trường hợp.

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.