代码改变世界

利用Apache在同个服务器上配置多个项目

2012-04-05 15:31  少毅  阅读(1892)  评论(0编辑  收藏  举报

有时候我们需要在同个服务器上配置多个项目,这时候我们可以采用两种做法,一种是子域名的方式,通过不同的子域名映射到不同的项目目录,另外一种是通过不同的端口映射到不同的项目目录:

  • 子域名方式

例如配置oa.myydss.com映射到/home/oa目录,配置dpm.myydss.com映射到/home/dpm目录,只要在apache的配置文件httpd.conf中进行如下配置:

#配置子域名映射,使用了80默认端口

NameVirtualHost *:80
<VirtualHost *:80>
ServerName oa.myydss.com
DocumentRoot "/home/oa"
</VirtualHost>

NameVirtualHost *:80
<VirtualHost *:80>
ServerName dpm.myydss.com
DocumentRoot "/home/dpm"
</VirtualHost>

#配置映射的目录的权限,否则会出现权限错误

<Directory "/home/oa">
    Options FollowSymLinks
    AllowOverride all 
    Order allow,deny
    Allow from all
</Directory>

<Directory "/home/dpm">
    Options FollowSymLinks
    AllowOverride all 
    Order allow,deny
    Allow from all
</Directory>

配置后重启下apache服务即可

  • 不同端口方式

例如使用www.myydss.com:8080映射到/home/oa目录,使用www.myydss.com:8000映射到/home/dpm目录,同样需要在httpd.conf配置以下信息

#添加端口监听

Listen 8000

Listen 8080

#配置映射

NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName www.myydss.com
DocumentRoot "/home/oa"
</VirtualHost>

NameVirtualHost *:8000
<VirtualHost *:8000>
ServerName www.myydss.com
DocumentRoot "/home/dpm"
</VirtualHost>

 

#配置映射的目录的权限,否则会出现权限错误

<Directory "/home/oa">
    Options FollowSymLinks
    AllowOverride all 
    Order allow,deny
    Allow from all
</Directory>

<Directory "/home/dpm">
    Options FollowSymLinks
    AllowOverride all 
    Order allow,deny
    Allow from all
</Directory>

配置后如果是开启了iptables服务的话,还需要修改下iptables的规则,对etc/sysconfig/iptables文件增加以下两行,实现端口的防火墙放行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT

之后重新iptables和apache就ok了