开发者社区> 问答> 正文

apache服务无法启动

已解决

安装完环境配置的,发现Apache的服务启动不了,点击就是没有反应,需要重新安装吗

展开
收起
我的中国 2016-02-01 16:04:39 5979 0
1 条回答
写回答
取消 提交回答
  • R&S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者
    采纳回答

    无法启动一
    一想,前几天装了XAMPPP,是不是被挤掉了,马上跑到服务项里一看,啥都没,两者的服务都没。试试XAMPP,能启动。原生的APACHE就是启动不了,服务都不存在!

    上网搜资料,都说是80端口被占用,马上netstat -aon|findstr "80",一看1388占用了80,可是这个是火狐浏览器。。。总不能不用浏览器吧。这个明显不对。既然服务都不存在,那解决办法应该是安装服务才对。

    立马,安装服务。
    进入APACHE的BIN目录,命令行界面运行HTTPD,执行httpd -k install -n "apache",安装APACHE服务,命令行给出如下提示:
    Could not reliably determine the server's fully qualified domain name, using 192.168.5.201 for ServerName.

    好办,打开httpd.conf配置文件,添加 ServerName localhost:80,再重新运行ApacheMonitor.exe,好了。看了下以前的备份配置文件,这一行被注释掉的。以前为什么行,后来安装 了其他集成套件就不行了,原因还不是很清楚。APACHE配置还要熟悉熟悉哈。

    ----------------------还有一种情况---------------
    启动apache。但是启动时候却报错,无法重启。查看apache的错误日志文件,显示Unclean shutdown of previous Apache run?
    到网上搜了一下,一般有两种出错的可能性:
    第一:[warn] pid file D:/apache2.2/logs/httpd.pid overwritten — Unclean shutdown of previous Apache run?
    需要删除对应的apache pid文件。但是大多数人遇到的不是这种情况
    第二种情况:php模块添加错误。比如说dll文件没有按照规定放入php/ext目录下,比如说php.ini文件书写错误。如果都没有发现,那就试试把新添加的模块删除掉在试试。最大的可能就是新增加的扩展不兼容php对应的版本,以及扩展找不到等。
    可以先运行php.exe来测试下,如果是扩展问题,会弹窗提示的。

    apache服务无法启动 提示服务启动后又停止
    系统:WindowsXP Professional Service Pack2
    wamp5集成安装包
    测试80端口显示:“Your port 80 is not actually used.”(即使更改apache的端口到8080同样无法启动)

    错误日志如下:

    [Fri Nov 26 10:43:26 2010] [notice] Server built: Jan 18 2008 00:37:19
    [Fri Nov 26 10:43:26 2010] [notice] Parent: Created child process 1060
    [Fri Nov 26 10:43:26 2010] [notice] Child 1060: Child process is running
    [Fri Nov 26 10:43:26 2010] crit提供了一个无效的参数。 : Child 1060: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
    [Fri Nov 26 10:43:27 2010] [crit] Parent: child process exited with status 3 -- Aborting.
    [Fri Nov 26 10:44:57 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations
    [Fri Nov 26 10:44:57 2010] [notice] Server built: Jan 18 2008 00:37:19
    [Fri Nov 26 10:44:57 2010] [notice] Parent: Created child process 6100
    [Fri Nov 26 10:44:58 2010] [notice] Child 6100: Child process is running
    [Fri Nov 26 10:44:58 2010] crit提供了一个无效的参数。 : Child 6100: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
    [Fri Nov 26 10:44:58 2010] [crit] Parent: child process exited with status 3 -- Aborting.
    [Fri Nov 26 10:45:50 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations
    [Fri Nov 26 10:45:50 2010] [notice] Server built: Jan 18 2008 00:37:19
    [Fri Nov 26 10:45:50 2010] [notice] Parent: Created child process 4180
    [Fri Nov 26 10:45:50 2010] [notice] Child 4180: Child process is running
    [Fri Nov 26 10:45:50 2010] crit提供了一个无效的参数。 : Child 4180: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
    [Fri Nov 26 10:45:50 2010] [crit] Parent: child process exited with status 3 -- Aborting.

    [Fri Nov 26 10:49:46 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming

    卸载此安装包N次并且每次都彻底删除,并且把注册表中的残余服务也删除干净,并安了N次,仍然不能启动apache服务(本安装包在网吧能正常安装并使用)。
    经过一番网搜以及我司技术员的讨论和探索,终于找到了解决办法:
    本地连接---属性----Internet 协议(TCP/IP)---属性---高级---wins----导入LMHOSTS(M)把 {apache2dir}binhttpd.exe 添加进去就可以启动了
    比如:httpd.exe的路径为“F:wamp2binapacheapache2.2.8binhttpd.exe”,那么{apache2dir}就是“F:wamp2binapacheapache2.2.8”
    Windows 系统下配置 Apache 服务有时会遇到
    Apache2 服务无法启动。
    发生服务特定错误: 1.
    请键入 NET HELPMSG 3547 以获得更多的帮助。
    的错误,这种错误可能有多种原因引起。我今天发现配置文件注释用得不对也是造成这个错误的一个原因:配置文件 httpd.conf 中如果写注释,注释以 # 开头必须单独放在一行中。而在某个配置项同一行写了 # 注释,就会造成以上无法启动的问题。解决办法就是把注释都单独放在一行。这只是无法启动的一个可能的原因

    服务可以启动但是输入localhost无法打开页面
    这一般是netbios解析失败造成的。解决的办法很简单,步骤如下:
    1 在"网上邻居"上 点右键,菜单上选"属性(R)"。出来"网络连接"窗口,在"本地连接"上点右键,菜单中点"属性(R)"。出来"本地连接 属性"面板,在"此链接使用下列项目"中找到:"Internet 协议 (TCP/IP)",并点击它。在弹出的"Internet 协议 (TCP/IP) 属性"面板上,点击"高级(V)..."按钮。"高级 TCP/IP 设置"面板上点"WINS"选项标签,去掉"启用 LMHOSTS 查询(L)"前面的勾,点"确定"按钮。
    2 打开"控制面板",点击"Windows 防火墙",点击"高级"选项标签,选择"本地连接",并点击旁边的"设置(T)..."按钮。在服务选项中找到"安全 Web 服务器(HTTPS)",并把它勾选上,点"确定"按钮。
    最后一类问题 php文件无法解析
    当你万分惊喜的发现可以打开http://localhost 并看到apache的"IT works!"的页面时,你很激动的马上测试一个phpnifo的页面,却发现无法解析。这是因为,apache不知道如何解析php文件。虽然 LoadModule和AddType语句已经告诉apache 载入php模块并注意php后缀的文件,但是真正的解析还是要调用php5ts.dll等等文件,所以
    方案一:在path里添加php所在目录 并在httpd.conf里添加
    PHPiniDir "D:/php-5.2.5-Win32/"
    方案二:直接将php5ts.dll从php目录拷贝到apache的bin目录即可
    另外有一点需要注意 apache2.2以上的版本需要使用php5apache2_2.dll
    在php5.2.5 已经自带了 而使用以前的版本,譬如php5.1请到http://php.net下载补丁php5apache2.dll-php5.1.x.rar并解压.共有三个文件.
    vcredist_x86.exe
    php5apache2.dll
    httpd.exe.manifest
    1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
    2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
    3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
    完成!重启你的apache2.2试试吧.
    当然,使用php5.2.5 完全不用管这个问题!

    2019-07-17 18:27:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像