我应该如何配置我的 Apache Hosts 文件,以便为 localhost 和我的域/公共 IP 提供不同的站点?

我应该如何配置我的 Apache Hosts 文件,以便为 localhost 和我的域/公共 IP 提供不同的站点?

我正在尝试测试一个 LAMP(特别是 PHP5)设置,其中 Django 已经为网站提供服务。我localhost现在想做 PHP 的东西,这样当我做这样的事情时: ,我会从 php 服务器得到响应。现在我收到一个 Django 错误。我在文件curl http://localhost/database/script.php?var=1中尝试了这样的事情:defaultsites-available

Listen 80
<VirtualHost aaa.bbb.ccc.ddd>
ServerName localhost
DocumentRoot /home/phpsite
</VirtualHost>

本地 IP 地址在哪里aaa.bbb.ccc.ddd,并更改我的实际站点的设置以指定公共 IP,如下所示:

Listen 80
<VirtualHost www.xxx.yyy.zzz>
ServerName mysite.com
DocumentRoot /srv/www/mysite
WSGIScriptAlias / /srv/www/mysite.wsgi    
</VirtualHost>

但是当我启动 apache 时,我开始收到各种错误,例如port ::[80] is already in use或 之类的。我注意到hosts位于 的文件/etc/apache2/显然将所有内容指向mysite.com,包括我的本地 ip 以及 127.0.0.1 和 127.0.1.1;我是否也需要更改那里的配置?

答案1

您可以使用以下方式实现此目的NameVirtualHost

 NameVirtualHost *:80

 <VirtualHost *:80>
 ServerName www.example.com
 ServerAlias example.com *.example.com
 DocumentRoot /srv/www/example.com
 </VirtualHost>

 <VirtualHost *:80>
 ServerName localhost
 DocumentRoot /srv/www/localhost
 </VirtualHost>

相关内容