Linux VPS上Apache设置虚拟目录

Apache上的虚拟主机分为:基于名称的虚拟主机 (每个IP多个站点)和基于IP的虚拟主机(每个IP一个站点)。这里使用基于名称的虚拟主机。系统用的是CentOS5.6。

假设要设置的站点为:
blog.aaa.com
bbs.aaa.com
www.bbb.com
首先设置好域名A记录,

编辑/etc/httpd/conf/httpd.conf:

vim /etc/httpd/conf/httpd.conf


在配置文件最后加入:

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /home/blog.aaa
ServerName blog.aaa.com
ErrorLog logs/blog.aaa.com-error_log
CustomLog logs/blog.aaa.com-access_log common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /home/bbs.aaa
ServerName bbs.aaa.com
ErrorLog logs/bbs.aaa.com-error_log
CustomLog logs/bbs.aaa.com-access_log common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /home/bbb
ServerName www.bbb.com
ErrorLog logs/www.bbb.com-error_log
CustomLog logs/www.bbb.com-access_log common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName 1.1.1.1 //这里填VPS独立IP地址,这样可以保留apache原/var/www/html根目录,能直接IP访问,可以放个默认页面或探针。
</VirtualHost>

验证配置是否有语法错误:

/usr/sbin/httpd -S

没报错即可。

建立对应的目录:

mkdir /home/blog.aaa
mkdir /home/bbs.aaa
mkdir /home/bbb

重启Apache服务器使设置生效:

service httpd restart

参考资料:http://httpd.apache.org/docs/2.2/vhosts/