11 March 2014

如何把IHS6迁移到IHS8?

IHS的迁移比较简单,正好前几天做了一个IHS6到IHS8的迁移,全新的服务器,全新的IHS8安装,这里就以IHS6到IHS8为例介绍一下简要的迁移步骤和需要注意的地方。


步骤

  1. 拷贝文件

    把老服务器上的httpd.conf文件拷贝到新服务器上。同时需要把SSL证书,DocumentRoot目录全部都考过去。

  2. 修改配置文件

    修改httpd.conf文件,把监听的IP改为新服务器的IP地址,HostName等等配置都要做响应的改变。

    如果要配置的服务所监听的IP是一个虚拟IP,那就在服务器上添加好虚拟IP。

  3. 尝试启动IHS服务

     cd <IHS_HOME>/bin
     httpd -k start -f <IHS_HOME>/conf/httpd.conf
    
  4. 在Windows系统下,如果启动的时候没有任何错误,就把这个服务作为Windows服务添加到服务管理里,以便于自动启动。

     cd <IHS_HOME>/bin
     httpd -k install -n IHS-yourservice -f <IHS_HOME>/conf/httpd.conf
    

    如下图:

    installservice


遇到的问题及解决方案

  • 第一次尝试启动的时候出现了Syntax Error,也就是语法错误。

    这样的问题比较容易解决,找到错误信息中对应的行,发现错误改掉就好了。

    IHS6到8,下面这行配置一定需要修改:

      LoadModule access_module modules/mod_access.so
    

    需要改成:

      Loadmodule authz_host_module modules/mod_authz_host.so
    

    这是IHS接收用户访问的模块有变动,修改之后就没问题了。

  • 尝试启动的时候错误信息里没有Syntax Error(说明语法没问题),但是启动不起来,创建socket失败之类的。

    这样的问题多半是端口被占用引起的,解决方法如下:

    比如我们的IHS服务需要监听80端口,用netstat -ano | findstr 80 (Linux的话就用netsh -ano | grep 80)找到哪个应用正在监听这个端口,这个命令可以看到监听端口的PID。

    随后打开任务管理器,打开菜单的 视图 – 选择列 – 勾选PID那一项,就可以从任务管理器里找到那个应用到底是什么了。

    在我配置的过程中,发现占用80端口的是IHS安装时默认启用的那个IHS服务,所以关掉它,改成手动启动就没问题了。

    showport

    图中进程1184正在监听端口80.