最全解决Apache出现the requested operation has failed的问题(Windows环境)

最近把自己做的Django项目部署到了Windows服务上,使用的是Apache,中间踩了不少坑。这篇文章就把Apache提示the requested operation has failed的问题集中总结一下(包括我踩的坑和查到的其他资料):

情况一:端口被占用。

解决思路:查找端口的PID,然后禁掉或者给你的端口换一个没占用的。


说说我的实际解决过程:我先用netstat -aon|findstr "80",找到端口80的PID,然后使用任务管理查看PID对应的进程(可以在Windows窗口下方任务栏右击找到)。结果我发现该进程是阿里云的,没法禁用。所以我就给自己的端口直接改成了81 (修改端口即修改httpd.conf配置。我放在了文章最后)。

情况二:httpd.conf配置的语法错误

解决思路:通过httpd -t(要cd到bin文件夹才能使用此命令),查看显示出来的是什么错误,在进行修改。我在实际过程中没有遇到这个问题,遇到这个问题的朋友可以使用这种方法。

情况三:httpd.conf配置文件的解压目录错误

解决思路,在httpd.conf文件中查找Apache24,看他的解压目录是否正确,进行修改。我在实际过程中没有遇到这个问题,遇到这个问题的朋友可以使用这种方法。

情况四:Apache24文件路径跟解压路径不匹配。

这个问题长出现在自己移动了Apache24文件,导致已经写好的注册表跟实际不匹配。所以解决思路就有两种:

一种是把Apache24文件再移动到原来位置,跟Apache24服务路径对应。

二种是把Apache24服务路径更改掉,这种比较麻烦,需要到打开注册表修改注册信息(注册表可以通过:win + R即可调出运行窗口,在运行窗口键入“regedit”打开),然后搜索到Apache24服务的注册表进行路径修改。

情况五:没有安装VC

思路就是安装对应VC,可以去https://www.apachelounge.com/download/中下载对应VC。

说说我的实际解决过程:我把以上四种情况都排除了,并且在本地服务中启动Apache24时还提示了“错误 1053: 服务没有及时响应启动或控制请求“”,顺着这个线索,才知道是缺少VC,下载之后一试,果然成功启动。(有人说如果打开提示缺少dll文件,也应该安装VC,这个我没有遇到过,不过也把它当做一种情况放在这里吧)

如何修改httpd.conf文件

其实只需要修改下面三处即可
Define SRVROOT "C:\Apache24"  #Apache24文件的路径,其余不用改。
...
Listen 81 #改成81
...
ServerName localhost:81  #改成localhost:81或者直接81

这种把端口调成81 的方法是能用来本地测试,所以想让其他人从网上搜到,我的经验是得用8000端口。

有人说可以用公网IP放到Listen这里,但我自己测试了一下不行,公网IP只能替换localhost,或者干脆就不写在配置里(就像这样Listen 8000...ServerName 8000)这两种方法都能可以让你的网站被搜到。

个人认为Listen监听的是所有发生在这个端口的所有事件,它的默认IP是地址0.0.0.0,所以只要是端口8000的都能监听到。如果强行给它增加一个公网IP,会导致出错。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值