Phi*_*ord 4 apache-http-server virtual-host
我已经通过这种方法设置了一个 Apache 2 虚拟主机。
在/etc/apache2/sites-available
我创建了一个dummy_site_1.conf
<VirtualHost local.dummy_site_1:80>
ServerName local.dummy_site_1
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dummy_site_1
ErrorLog /var/log/apache2/dummy_site_1__error.log
TransferLog /var/log/apache2/dummy_site_1__access.log
<Directory /var/www/dummy_site_1>
AllowOverride Options Limit None
Options -Indexes FollowSymLinks
Order deny,allow
Allow from all
</Directory>
DirectoryIndex index.php
#DISABLE HTTP TRACE
#RewriteEngine On
#RewriteCond %{REQUEST_METHOD} ^TRACE
#RewriteRule .* - [F]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我还添加了这一行httpd.conf
:
ServerName local.dummy_site_1
Run Code Online (Sandbox Code Playgroud)
现在一切都在使用这个设置,我输入local.dummy_site_1
URL,我可以看到我的网站。
问题是当我尝试添加另一个站点配置dummy_site_2.conf
并创建大约相同的设置时
<VirtualHost local.dummy_site_2:80>
ServerName local.dummy_site_2
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dummy_site_2
ErrorLog /var/log/apache2/dummy_site_2__error.log
TransferLog /var/log/apache2/dummy_site_2__access.log
<Directory /var/www/dummy_site_2>
AllowOverride Options Limit None
Options -Indexes FollowSymLinks
Order deny,allow
Allow from all
</Directory>
DirectoryIndex index.php
#DISABLE HTTP TRACE
#RewriteEngine On
#RewriteCond %{REQUEST_METHOD} ^TRACE
#RewriteRule .* - [F]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我还添加了这一行httpd.conf
:
ServerName local.dummy_site_2
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
user@host:/etc/apache2$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 [Wed Sep 15 14:00:43 2010] [error] (EAI 5)No address associated with hostname: Could not resolve host name local.dummy_site_2 -- ignoring!
... waiting [Wed Sep 15 14:00:44 2010] [error] (EAI 5)No address associated with hostname: Could not resolve host name local.dummy_site_2 -- ignoring!
Run Code Online (Sandbox Code Playgroud)
为什么?我配置错了吗?
你不需要ServerName local.dummy_site_2
在 httpd.conf 中使用' ' 所以把它去掉,而是添加这个:
NameVirtualHost ip-address-of-server:80
Run Code Online (Sandbox Code Playgroud)
例如:NameVirtualHost 192.168.1.10:80
完成更改后,您将需要重新启动 Apache。
如果事情仍然没有按预期工作,请在 servername 行下方的每个 virtualhost conf 文件中添加一行,使其看起来像这样:
ServerName local.dummy_site_1
ServerAlias *.local.dummy_site_1 local.dummy_site_1
Run Code Online (Sandbox Code Playgroud)
和
ServerName local.dummy_site_2
ServerAlias *.local.dummy_site_2 local.dummy_site_2
Run Code Online (Sandbox Code Playgroud)
再次重新启动 Apache 以检查更改。
编辑:愚蠢的我 - 刚刚发现了另一个问题 - 你的所有 VirtualHost 声明都应该使用虚拟服务器的 IP 地址 - 例如:
<VirtualHost 192.168.1.10:80>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13419 次 |
最近记录: |