我们有些时候直接运行的httpd(windows下的是httpd.exe)。运行这个命令的时候可以不加参数,直接启动http服务。
如果加一个参数-k的话,可以执行重启、停止、启动、等命令。
但是,如果我只启动的话,
httpd
和
httpd -k start
有区别吗?答案是有的,而且很大。
如果你的电脑上(不管是Windows还是Linux)安装了多个Apache,当然了,只有一个是安装,而其他都是解压的。
在一个解压版的apache的bin目录下执行httpd,启动成功了,但是执行httpd -k start却出错了,出错原因类似下面这种:
(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
其实,这两个分别执行了不同的apache,执行-k参数的命令时,它总是找的系统服务里(也就是安装的那个)的apache。
所以,一台主机有多个apache的时候,慎用这个参数。