天天看點

[LAMP]Apache虛拟主機

    在一個Apache伺服器上可以配置多個虛拟主機,實作一個伺服器提供多站點服務,其實就是通路同一個伺服器上的不同目錄。Apache虛拟主機配置有3中方法:基于IP配置、基于域名配置和基于端口配置。下面将示範基于域名的虛拟主機。

1、編輯httpd.conf

<code>[root@juispan ~]</code><code># vi /usr/local/apache2.4/conf/httpd.conf</code>

<code>Include conf</code><code>/extra/httpd-vhosts</code><code>.conf    </code><code>##啟用httpd-vhosts.conf</code>

2、編輯httpd-vhosts.conf

<code>[root@juispan ~]</code><code># vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf</code>

<code>&lt;VirtualHost *:80&gt;                      </code><code>##預設虛拟主機</code>

<code>    </code><code>DocumentRoot </code><code>"/data/www/abc.com"</code>    <code>##網站根目錄</code>

<code>    </code><code>ServerName abc.com                  </code><code>##主域名</code>

<code>    </code><code>ServerAlias  abc.net     </code><code>##域名别名 </code>

<code>    </code><code>ErrorLog </code><code>"logs/abc.com-error_log"</code>            <code>##錯誤日志</code>

<code>    </code><code>CustomLog </code><code>"logs/abc.com-access_log"</code> <code>common   </code><code>##通路日志</code>

<code>&lt;</code><code>/VirtualHost</code><code>&gt;</code>

<code>&lt;VirtualHost *:80&gt;</code>

<code>    </code><code>DocumentRoot </code><code>"/data/www/123.com"</code>

<code>    </code><code>ServerName 123.com</code>

<code>    </code><code>ErrorLog </code><code>"logs/123.com-error_log"</code>

<code>    </code><code>CustomLog </code><code>"logs/123.com-access_log"</code> <code>common</code>

3、建立網站目錄與檔案

<code>[root@juispan ~]</code><code># mkdir /data/www</code>

<code>[root@juispan ~]</code><code># mkdir /data/www/abc.com</code>

<code>[root@juispan ~]</code><code># mkdir /data/www/123.com</code>

<code>[root@juispan ~]</code><code># cat /data/www/abc.com/index.php</code>

<code>&lt;?php</code>

<code>echo</code> <code>"abc.com"</code><code>;</code>

<code>?&gt;</code>

<code>[root@juispan ~]</code><code># cat /data/www/123.com/index.php</code>

<code>echo</code> <code>"123.com"</code><code>;</code>

<code>[root@juispan ~]</code><code># chmod 755 /data/www/123.com/index.php</code>

<code>[root@juispan ~]</code><code># chmod 755 /data/www/abc.com/index.php</code>

4、重新加載配置

<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl -t</code>

<code>Syntax OK</code>

<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl graceful</code>

5、測試虛拟主機效果

<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 123.com</code>

<code>&lt;!DOCTYPE HTML PUBLIC </code><code>"-//IETF//DTD HTML 2.0//EN"</code><code>&gt;</code>

<code>&lt;html&gt;&lt;</code><code>head</code><code>&gt;</code>

<code>&lt;title&gt;403 Forbidden&lt;</code><code>/title</code><code>&gt;</code>

<code>&lt;</code><code>/head</code><code>&gt;&lt;body&gt;</code>

<code>&lt;h1&gt;Forbidden&lt;</code><code>/h1</code><code>&gt;</code>

<code>&lt;p&gt;You don't have permission to access /</code>

<code>on this server.&lt;br /&gt;</code>

<code>&lt;</code><code>/p</code><code>&gt;</code>

<code>&lt;</code><code>/body</code><code>&gt;&lt;</code><code>/html</code><code>&gt;</code>

測試發現沒有權限,由于前面給index.php檔案授權過,是以定位問題在httpd.conf。

<code>&lt;Directory /&gt;</code>

<code>    </code><code>AllowOverride none</code>

<code>#   Require all denied          ##将該行注釋掉</code>

<code>&lt;</code><code>/Directory</code><code>&gt;</code>

<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl graceful ##重新加載配置</code>

<code>123.com</code>

<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 abc.com      </code>

<code>abc.com</code>

<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80   ##比對别名主機 </code>

<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 abcd.com   ##采用預設虛拟主機</code>

<code></code>

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/1951872,如需轉載請自行聯系原作者