VHOST 在 Apache 中不工作

VHOST 在 Apache 中不工作

我有一個在 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.sitetelnet 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 檔案並使用單一虛擬主機。

相關內容