Ubuntu
為什麼 apache 提供預設服務?
我不斷添加更多虛擬主機並啟用它們,但所有站點總是對可用站點中的預設虛擬主機執行
這是我出於安全原因僅更改 ip 的預設類型
<VirtualHost 167.889.88.88:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> 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 /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/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>
這是我的另一個,我命名為 some-site.net
<VirtualHost *:80> ServerName some-site.net DocumentRoot "/var/www/vhosts/somesite.com/http/" <Directory "/var/www/vhosts/somesite.com/http/"> AllowOverride all Options -MultiViews </Directory> </VirtualHost>
它打開了我的這個命令
sudo a2ensite some-site.net Enabling site some-site.net. Run '/etc/init.d/apache2 reload' to activate new configuration!
然後我重新載入
/etc/init.d/apache2 reload * Reloading web server config apache2 ...done.
但是當我訪問 url some-site.net 時,我得到了預設虛擬主機的索引頁面……我做錯了什麼
首先猜測,您需要在 httpd.conf 文件中使用NameVirtualHost語句。另外,作為一個健全的檢查,我假設你有正確的塊?
當你跑步時你會得到什麼
apachectl -S
?
在您的第一個塊中,您沒有指定 ServerName 並且 Apache 將傳入請求與 IP 匹配。問題在於基於 IP 和名稱的虛擬伺服器配置的混合。
為了進一步排除問題,請在您的虛擬伺服器指令中使用 ServerName 指令,該指令如下所示。
虛擬主機 167.889.88.88:80