我遇到了 apache 的問題,但似乎無法解決。
我有兩個網域,它們指向虛擬主機檔案中的兩個不同的 DocumentRoot。但是,我無法使其正常工作,我嘗試添加的網站根本不會從第二個網域顯示,而是顯示第一個網站(據我所知,這是預設網站,並且這意味著我的第二個虛擬主機出了問題)。
我透過將我的新網站放在第一個虛擬主機之前成功地解決了這個問題。這表示新網站已顯示,但被 apache 放入frameset
標籤中,我無法控制標頭。
在 Raspbian (Debian Linux) 上執行 Apache 2.2.22
這是我目前的程式碼;
<VirtualHost *:80>
ServerName DIR0.com
ServerAlias www.DIR0.com
DocumentRoot /var/www/DIR0.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR0.com/public_html>
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>
ErrorLog ${APACHE_LOG_DIR}/errors_DIR0.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR0.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName DIR1.com
ServerAlias www.DIR1.com
DocumentRoot /var/www/DIR1/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR1.com/public_html>
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>
ErrorLog ${APACHE_LOG_DIR}/error_DIR1.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR1.log combined
</VirtualHost>
答案1
檢查是否已設定
名稱虛擬主機 *:80
在你的設定檔中。該指令允許使用 ServerName 作為 VirtualHost 的標識。如果缺少此項,則您正在使用 IP/連接埠來識別 VirtualHost,這對於這兩個 VirtualHost 來說是相同的。