
我有一個在 Ubuntu 11.04 中運行的 LAMP 伺服器。現在的問題是網站必須從終端啟用和停用。所有這些都必須被訪問,http://localhost
這樣效率不高。所以我使用一些網路教學創建了一個VHOSTS。這是它的編碼
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername site.com
ServerAlias www.site.com
DocumentRoot /home/starx/public_html/site/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/starx/public_html/site/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
nGen
ErrorLog ${APACHE_LOG_DIR}/site-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/site-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
現在,我仍然無法訪問該頁面,http://site.com
但如果我使用http://localhsot/
它進行訪問,則可以訪問該頁面。
我已經禁用了所有其他站點,包括預設站點,並且剛剛啟用了一個站點,即site
如何解決這個問題?
答案1
我只是想讓它發揮作用,環顧四周後,我發現了我出了什麼問題。
我正在為 Ubuntu 12.04 運行 xampp (lampp) 1.80。
打開/opt/lampp/etc/httpd.conf
參見第 488 行
# Virtual hosts
# Include etc/extra/httpd-vhosts.conf
從 中刪除“#” include
。
新安裝不會載入httpd-vhosts.conf
開箱即用的內容。
答案2
根據/usr/share/doc/apache2/README.Debian.gz
,如果您希望為其他網站建立定義,則需要將各個網站設定片段放入其中/etc/apache2/sites-available/
(請參閱/etc/apache2/sites-available/default
範例)。然後,您可以使用 a2ensite(8) 和 a2dissite(8) 命令在給定主機上啟用和停用網站。請注意,如果分散式配置發生了重大更改,則這可能不會完全按照描述的方式運作。
如果某個網站以這種方式啟用,但仍然無法正常運作,您將需要確保 Web 伺服器能夠以與 Web 伺服器認為指派給它的 IP 位址相符的方式解析新網站的名稱:最簡單的方法可能是從伺服器檢查。您還需要驗證用戶端解析名稱的方式是否能夠使其到達相關伺服器(儘管解析的 IP 不需要與伺服器使用的 IP 相符)。對於不安全的站點,最簡單的方法是使用和 ,一旦連接完成(沒有提示),輸入以下三行(請注意,第三行是空白,但您必須第三次按 Enter 鍵):w3m https://my.new.secure.site
telnet my.new.site 80
取得/HTTP/1.1 主持人:my.new.site
如果這些有效,則其他問題都是瀏覽器問題。如果第一個成功而第二個失敗,則網路層(NAT、代理等)可能存在一些奇怪的情況:具體如何解決此問題很大程度上取決於網路拓撲和現有設備:請提出另一個具體問題如果這適用於你。
如果第一個測試失敗,請仔細檢查伺服器上可用的名稱服務以及指派給伺服器的 IP 位址 (ifconfig -a)。請同時檢查您的網站存取日誌,以驗證您是否在正確的時間看到了連線。最後,請確保您的虛擬主機透過名稱而不是 IP 進行偵聽,並且不會在 VirtualHost 指令中根據 IP 過濾結果。
答案3
我不確定這是否是你想要的。
用這個簡單的短代碼替換您的代碼。
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot YourDocumentRoot
ServerName site.com
ServerAlias www.site.com
ErrorLog localhost
CustomLog localhost-access_log common
</VirtualHost>
您可以閱讀有關虛擬主機的更多信息這裡
答案4
您是否已將 site.com 和 www.site.com 新增至 /etc/hosts 檔案以確保 dns 路由正確?你可以嘗試nslookup site.com
測試一下dns。
如果您想確保這http://localhost
不起作用,請刪除 /etc/apache2/default、default-ssl 檔案並使用單一虛擬主機。