基本上,我可以使用 127.0.0.1 正常存取所有內容,但如果我使用外部 IP (123.123.123.123),則會出現找不到頁面的情況。
我的路由器將 HTTP 連接埠 80 連接埠轉送到我的伺服器內部 IP 位址上的連接埠 8080。換句話說:(應用程式:HTTP | 開始:80 | 結束:8080 | 協定:兩者| IP 位址192.168.0.101 | 啟用[是])我知道它正在正確轉發,因為當我停止連接埠轉送時,我可以存取我的路由器使用我的外部 IP 進行頁面存取。
我的虛擬主機檔案是:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
我的 httpd.conf 檔案是:
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>
答案1
您正在使用基於名稱的虛擬主機。如果您嘗試使用其他名稱造訪您的網站,您將獲得預設網站。
NameVirtualHost *:80
Servername localhost:80
答案2
我認為問題來自於指定一個對其具有拒絕權限的 DocumentRoot - 但您應該收到 403 Forbidden Errors,而不是 404 Not Found (至少當我嘗試模仿您的配置時我會這樣做)。
DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
因為目錄沒有條目,所以<Directory >
它繼承了預設權限
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
deny from all
</Directory>
嘗試註解掉拒絕行
#Order deny, allow
#deny from all
或建立一個新條目來測試此問題
<Directory "/opt/lampstack-5.3.16-0/apps/wordpress">
Options FollowSymLinks
AllowOverride None
Order allow, deny
allow from all
</Directory>
筆記:現在您應該嘗試使用 IP 位址存取伺服器,www.example.com 不會讓您到達任何地方,因為沒有它的 DNS 條目(或者如果有,它不會指向您的伺服器)。
答案3
看來是路由器的問題。儘管我嘗試過重新啟動路由器,儘管我嘗試了啟用和停用 nat 重定向的所有操作。我剛坐下,我的路由器就自動重置了。我必須輸入預設密碼才能進入路由器管理頁面(而不是我設定的密碼)。之後一切工作正常。
也嘗試在你的虛擬主機檔案中什麼都沒有,這也可以工作
這個故事的寓意是:嘗試不同的路由器以防萬一。