我正在testing本地系统上的configuration以了解Apacheconfiguration,并使用相同的方法来处理我的生产服务器。
我需要configuration两个域example.com
和example.org
我有PHP脚本在那里的目录:
/server/example.com for example.com
/server/example.org for example.org
我在这两个目录上运行这个命令:
sudo chcon -R -h -t httpd_sys_content_t /server/example.*
example.com中的index.php包含
<? $debug = ($_SERVER['HTTP_HOST'] == 'example.com'); if ($debug) echo "in example.com"; ?>
和
example.org中的index.php包含
<? $debug = ($_SERVER['HTTP_HOST'] == 'example.org'); if ($debug) echo "in example.org"; ?>
我还在/etc/httpd/conf.d/example.conf
下创build了一个名为example.conf
的apache conf文件
以下是.conf文件的内容:
<VirtualHost example.com:81> DocumentRoot /server/example.com ServerName example.com <Directory "/server/example.com"> AllowOverride None Options All Order allow,deny Allow from all DirectoryIndex index.php index.html index.htm </Directory> </VirtualHost> <VirtualHost example.org:82> DocumentRoot /server/example.org ServerName example.org <Directory "/server/example.org"> AllowOverride None Options All Order allow,deny Allow from all DirectoryIndex index.php index.html index.htm </Directory> </VirtualHost>
当我访问example.com
该网站的工作就像是经历了一样。 /server/example.com
的脚本文件的计算结果为true,并显示in example.com
现在,当我访问example.org
。 该网站显示什么。
另外,这里是我修改的/etc/host
:
127.0.0.1 example.com 127.0.0.1 example.org
有人可以build议我在这里失踪?
你访问example.org:82
,或只是example.org
? 目前,您的网站被绑定到不同的端口。 这可能不是你想要的; 您可能想要使用基于名称的虚拟主机。
你需要一个NameVirtualHost
指令,并改变你的<VirtualHost>
指令来匹配它。
像这样的东西:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /server/example.com ServerName example.com ServerAlias www.example.com # etc </VirtualHost> <VirtualHost *:80> DocumentRoot /server/example.org ServerName example.org ServerAlias www.example.org # etc </VirtualHost>