一、问题原因
       若能在系统日志中,看到“通常每个套接字地址/网络地址/端口,只能使用一次。make_sock:couldn't bind address to 0.0.0.0:58080”这样的问题描述,说明存在端口占用,导致Apache无法启动,需要进一步分析和找出占用端口的程序。
      若占用端口的是不相关或非必要程序,杀掉对应服务,即可重新启动Apache。若是业务系统的必要服务,则需要考虑修改英方控制机的监听端口(默认是58080,可修改)。


二、解决步骤
1、端口检查
①查看所有的端口占用情况
  > netstat -ano
  回显信息:协议 本地地址 外部地址 状态 PID

②查看指定端口的占用情况
  > netstat -ano | findstr "58080"
回显信息:协议 本地地址 外部地址 状态 PID


③查看占用了58080端口的PID对应进程
  > tasklist | findstr "上一步骤查看到的26821端口对应回显的 PID"
  回显信息:映像名称 PID 会话名 会话号# 内存使用

或者,可打开Windows任务管理器,点开【服务】选项卡,按照PID排序,找到上一步骤回显PID所对应的服务,如下所示。


2、解除端口占用
      解除端口占用有两种方式。如果占用端口的服务是非业务相关服务,则通过杀进程可解除占。如果占用端口的是业务相关服务,则通过修改Apache配置文件的监听端口(默认是58080),改变英方控制机访问端口来解决端口冲突。

(1)方法一:结束该进程解除端口占用
  > taskkill /f /t /im 占用26821端口的进程名

若判断占用端口的服务为非必要服务,还可在进程管理中右键单击,选择“停止服务”,以解除端口占用。

(2)方法二:修改英方控制机监听端口
打开Apache的配置文件httpd.conf,路径:C:\Program Files (x86)\info2soft-ctrlcenter\Apache24\conf

编辑该文件,搜索58080,定位到Listen 58080行,修改58080为其他不存在冲突的端口,如改为6666。


3、重启Apache和控制机服务
到服务列表中找到Apache2.2服务,右键重新启动。找到I2-Ctrlcenter服务,右键重新启动。


4、测试控制机访问
(1)如果是通过杀进程解决端口冲突,那么,控制机的访问方式不变,http://控制机IP:58080即可。
注意:
    杀进程解决端口冲突后,要注意被杀的进程是否还需要开启继续工作,如果需要,请在服务列表找到该服务进行开启。

(2)如果是修改了Apache的配置文件重新定义了监听端口,那么,控制机的访问方式变为,http://控制机IP;新的端口号