我剛剛在新的 CentOS 伺服器上設定了 LAMP。以前,當我在 Ubuntu 上安裝 LAMP 時,我總是需要為我在/var/www
目錄中建立的每個網站建立一個虛擬主機定義。
但在 CentOS 上,我意識到一旦我將網站放入/var/www
目錄中,它就會立即在瀏覽器上可見。
Include conf/vhosts/*.conf
我在我的文件中包含了這個指令:httpd.conf
以便為特定網站定義虛擬主機。在我的虛擬主機目錄中,我定義了我的*.conf
檔案。
誰能告訴我需要編輯什麼(可能是在 )httpd.conf
,以阻止沒有單一/vhosts/*.conf
文件的網站在訪問時顯示?
以下是我為每個新網站修改的預設虛擬主機定義資訊:
<VirtualHost var/www/aSite:80>
ServerAdmin [email protected]
DocumentRoot var/www/aSite
ServerName myServer
ErrorLog var/www/aSite/logs/error_log
CustomLog var/www/aSite/logs/access_log common
</VirtualHost>
答案1
我會根據我的想法和記憶(無法在 CentOS 上驗證)告訴你,你在 httpd.conf 中的某個地方
- 已載入
mod_vhost_alias
Apache 模組 mod_vhost_alias
此模組透過允許將 HTTP 請求的 IP 位址和/或 Host: 標頭用作路徑名的一部分來確定要提供服務的文件,從而建立動態配置的虛擬主機。這樣可以輕鬆使用大量具有相似配置的虛擬主機。
VirtualDocumentRoot
定義為 /var/www/(something) + 可能VirtualScriptAlias
PS:可以告訴我,為什麼你想阻止這種(很好,從我的角度來看)行為嗎?
答案2
我最近設定了一個帶有虛擬主機的 centos 7 Web 伺服器,並新增了<VirtualHost>
一個空白網頁或即將推出的頁面的指令。該<VirtualHost>
指令需要位於Include conf/vhosts/*.conf
httpd.conf 檔案的上方。