apache故障排除全攻略
apache不能启动的办法

Red Hat Linux enterprise 5start httpd faildlinux httpd: httpd 启动 failed我在虚拟机里面遇到此问题,试了很多方法都没法启动,后来发现,问题出在/etc/httpd/conf/目录里面有一个叫httpd.conf的文件。
在同一目录下还有另外一个叫httpd.conf.bak,只要把httpd.conf.bak的内容复制httpd.conf文件中,覆盖原来的内容就能启动了,到shell里运行service httpd start,惊喜发现,start httpd ok。
启动httpd 确定。
用service httpd status可以看到httpd正运行中。
心情舒服啊。
虽然只是个很菜的新手问题,嘿嘿,但我还是写下来,或许哪个新手也遇到此问题能帮上忙。
后来我又详细排查了一下是什么问题导至的。
结果是意料之外啊。
原来是使用了 [系统]-[管理]-[服务器设置]-[HTTP]工具进行设置,然后保存之后导至。
用了这个工具后里面的设置内容有比较多的地方跟初始设置是不一样的。
我发现修改/etc/httpd/conf/httpd.conf文件可以解决问题:1.将ServerName这行注释掉,即行最前面加个#号。
2.将ServerAdmin 这行要写完整。
如:ServerAdmin admin@3.将Lockfile 的文件路径弄正确,或都干脆注释掉(行首加#)4.将Loadmodule .........Loadmodule..................#这里很多行。
省略!其实这些都是错误的,应该是HTTP本身代码问题导致。
我们用初始文件替换。
Loadmodule..... Chinaz^com用/etc/httpd/conf/httpd.conf.bak里面的相应内容替换掉内容如下:OK,这样应该可以启动httpd服务了,请在shell里使用命令service httpd start来启动服务另外需要注意的是,这些只改了一小部分内容,很多选项已经跟初始httdp.conf不一样了,请大家详细看看相关功能的开启状态,按需要更改即可。
解决APACHE服务器不定时挂掉故障一例

圆嘟嘟选择的主机搭配是Windows 2003 Server+Apache+PHP+Mysql,当网站初步上线测试后,我在主机运维方面遇到了很多问题,这里先说一个比较罕见,而且也让我头疼好几天的问题,就是APACHE在运行一段不定时的时间后,就自动停止了,Windows系统日志显示是:Apache2 服务因 1 (0x1) 服务性错误而停止。
而APACHE的error日志里最后的内容如下:[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358: Child: Process exiting because it reached MaxConnectionsPerChild. Signaling the parent to restart a new child process.[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424: Parent: Received restart signal -- Restarting the server.[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache][Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364: Child: All worker threads have exited.别的内容似乎都正常,除了SSL的警告外,一开始是搞不清楚状况,以为是SSL 配置有问题,就对SSL进行了配置,但配置完以后,是不提示“Session Cache is not configured”了,但故障依然,我又继续从APACHE的错误日志中寻找线索,这次我用到的关键字是“MaxConnectionsPerChild”,这个配置可能很多人也不知道是什么,这是APACHE2.4才改成这样的,原来叫MaxRequestsPerChild,意思是指子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程,释放内存,再开启新的子进程,这个设置是在httpd-mpm.conf里面的,因为是运行在Windows环境下,所以对就的是WinNT MPM,原来的设置是:ThreadsPerChild 250MaxConnectionsPerChild 10000都说为了防止内存溢出,MaxConnectionsPerChild不要设成0,但可以考虑设成小的数值,于是我设成500,继续测试,但不管我改成多少,APACHE还是依然不定时就挂了,依照网上有关的方法我全试了个遍,终究没有解决这个问题,我都动了重置系统再来的念头了...在解决这个问题的过程中,我发现系统运行的非常非常慢,打开任务管理器一看,内存居然占了3G多,才发现其实APACHE其实并没有结束掉子进程,内存一直占用着并没有得到翻译,我好像得到点启发了,看来这压根跟MaxConnectionsPerChild的设置没多大的联系,而是在达到子进程限定的线程数后,当APACHE尝试关闭当前子进程再重新开启新的子进程时发生了什么事情让它这么做失败了呢?我又打开了Windows的日志查看器,终于在应用程序日志里找到一条跟APACHE出错同时产生的日志,内容是“事件 ID ( 487 )的描述(在资源( Zend Optimizer+ )中)无法找到。
apache常见错误

常见错误汇总1.防盗链及地址重写1.1让Apache支持rewrite模块在编译源码安装apache时,加入选项–enable-rewrite1.2找到mod_rewrite.c文件进入apache源码目录下找到mod_rewrite.c文件【Http-2.2版本一般在/modules/mappers/】[root@localhost ~]# cd httpd-2.2.7/modules/mappers/1.3编译mod_rewrite.c文件说明:/usr/local/apache/为apache安装路径,apxs必须为绝对路径。
[root@localhost mappers]# /usr/local/apache/bin/apxs -c mod_rewrite.c[root@localhost mappers]# /usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_1.4查看是否生成mod_rewrite.so[root@localhost mappers]# ls /usr/local/apache/modules如果有mod_rewrite.so,说明编译成功。
1.5修改httpd.conf加入加载mod_rewrite模块。
LoadModule rewrite_module modules/mod_rewrite.so###################################################如果出现这个错误:Syntax error on line 329 of /usr/local/apache2/conf/httpd.conf:Can`t loacte API module staructure `mod_rewrite_module` in file/usr/local/apache2/modules/mod_rewrite.so:/usr/local/apache2/lib/libapr-0.so.0:undefined symbol:mod_rewrite_module修改http.conf原来:httpd.conf里面写的mod_rewrite_module改成rewrite_module如果重启apache出现这个错误module rewrite_module is built-in and can`t be loaded表示模块是内建的,不用再调入,注释掉#LoadModule rewrite_module modules/mod_rewrite.so#####################################################1.6加入防盗链及重写规则说明:为测试的网站域名,改成自己的网站域名即可。
APACHE服务器500错误解决方法

APACHE服务器500错误解决⽅法APACHE服务器500错误解决⽅法与强制跳转遇到500问题可以如下解决1.APACHE没开启rewrite模块。
解决办法:编辑apache的http.conf⽂件,找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前⾯的#,重启APACHE.2 .htaccess⽂件有错误。
通常是因为写⼊了不合语法的规则。
解决办法:删除该⽬录中的.htaccess即可。
如果还是不⾏,再删除上级⽬录的.htacess,如此反复。
3,权限问题,同时查看/var/log/apache2/error.log⽇志。
于是我找到了这么⼀个东西1在httpd.conf⽂件⾥使下⾯模块⽣效LoadModule rewrite_module modules/mod_rewrite.so2httpd.conf配置⽂件或者是在httpd-vhost.conf⽂件⾥修改<Directory "C:/Apache2.2/docs/">Options Indexes FollowSymLinksAllowOverride All//上⾯是http-https时需要添加的语句Order allow,denyAllow from all</Directory>3在⽹站根⽬录下⾯添加该⽂件“.htaccess” ⽬录访问控制⽂件,并添加如下内容:RewriteEngine on #开启重定向引擎RewriteBase / #可以不设置RewriteCond %{SERVER_PORT} !^443$ #⾮443端⼝的数据全部进⾏重定向RewriteEngine on #开启重定向引擎RewriteBase / #可以不设置RewriteCond %{SERVER_PORT} !^443(或者其他端⼝)$ #⾮443端⼝的数据全部进⾏重定向该 .htaccess 需要放置在⽹站的根⽬录下⾯才可以⽣效5、查看⼀下httpd.conf,如果以下⼏项给注释掉了,就打开这些选项:LoadModule rewrite_module libexec/mod_rewrite.soAddModule mod_rewrite.cg纠结了半天,才发现问题的症结:原来的PHP 关闭了错误的显⽰。
Apache启动不了的解决方法(2)

Apache启动不了的解决方法(2)Apache启动不了的解决方法3.可以看到有个error.log的文件.4.打开该文件,到文件最后,可以详细了解到启动失败的原因。
5.针对不同的失败原因,寻求解决之策。
解决案例1.在xampp控制面板启动apache不成功2.进入error.log查看,显示”make_sock: could not bind to address 0.0.0.0:80no listening sockets available, shutting down”3.可以看出,这是在侦听80端口时出错,可能80端口已经被其它应用程序占用了。
apache启动不成功绝大部分都是因为端口问题。
4.打开c:\xampp\apache\conf\目录5.目录下有一个f文件,用记事本打开,将里面的”80″全部修改为其它端口,例如”8082″,修改之后,保存退出。
6.重新在xampp控制面板,启动apache,成功,状态为running.注意:因为浏览器的默认端口是80,所以修改了apache的侦听端口之后,在浏览器中浏览时,需要localhost后加上端口。
如http://localhost:8082/代替修改前的http://localhost/,当然localhost = 127.0.0.1,用同样。
APACHE启动不了的解决方法2017-03-22 10:52 | #2楼昨天在电脑上安装dede的本地测试环境,想跑几个php程序玩玩。
安装过程中一切正常,安装完毕,启动apache,却怎么也启动不了。
总是启动了,又莫名其妙的自动停止了。
我在开始-->运行-->输入services.msc进入“服务(本地)”,在这里手动启动,还是没有成功,给出个警告框。
提示说:本地计算机上的apache2.2服务启动后又停止了。
一些服务自动停止,如果它们没有什么可做的,例如“性能日志和警报”服务。
Apache启动失败,请检查相关配置

解决办法之七:
按上面6个办法改了又试,试了又改,也弄了n次仍然不行,点击"Apache设置(A)-查看运行日志(E)",发现下面的文字:
PHP Warning: [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.6. Rebuild it for your PHP version (5.2.9) or download precompiled binaries.\n in Unknown on line 0
开始 - 运行 - 输入cmd运行
D:\APMServ5.2.6\MySQL5.1\bin> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('新密码') WHERE user='root';
mysql> FLUSH PRIVILEGES;
打开D:\APMServ5.2.6\Zend\eAccelerator文件夹,马上可以看到eAccelerator.dll这个文件,再在文件夹D:\APMServ5.2.6\PHP下面搜索一下包含eAccelerator的关键字
可以发现只有php.ini里面包含了eAccelerator.dll的引用。பைடு நூலகம்在唯一的关键就是下载eAccelerator的5.2.9版本了,
就可以了
注意:上面的提到的相关路径依据你自己解压AMPServ时设置的路径,使用的系统是windows 2003 server。
----------- 我是可爱的分隔线 -----------
【原创】Apache服务器500错误失去响应的问题解决

【原创】Apache服务器500错误失去响应的问题解决某⽣产⽹站部署在Apache上,使⽤tomcat集群,偶尔⽹站失去响应,查看⾸页发现⽆法打开,页⾯假死,出现过多次,查看apache的⽇志,发现经常出现以下提⽰:[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
: winnt_accept: Asynchronous AcceptEx failed.[Fri Dec 2713:48:152013] [warn] (OS 64)指定的⽹络名不再可⽤。
如何解决 Apache 服务器无法启动的问题

如何解决 Apache 服务器无法启动的问题Apache服务器是目前世界上最流行的Web服务器之一,但在日常使用中,我们有时会遇到Apache服务器无法启动的问题,这给我们带来了不少麻烦。
本文将介绍如何解决Apache服务器无法启动的问题。
一、检查日志文件在解决Apache服务器无法启动的问题时,我们首先需要检查日志文件。
在Linux系统中,Apache服务器的日志文件通常是/var/log/httpd/error_log或/var/log/apache2/error_log。
我们可以使用tail命令查看最新的日志信息。
如果是Windows系统,则日志文件通常位于Apache服务器的安装目录下的logs文件夹中,可以使用记事本或其他文本编辑器打开查看。
在日志文件中,我们可以找到有关Apache服务器无法启动的错误信息,比如端口被占用、配置文件错误、模块加载失败等,这些信息可以帮助我们理解问题的本质。
二、检查配置文件Apache服务器的配置文件位于安装目录的conf文件夹中。
在解决无法启动问题时,我们需要检查配置文件是否正确。
常见的配置文件包括httpd.conf和ssl.conf等。
首先,我们需要检查配置文件是否存在语法错误。
我们可以使用httpd -t命令检查配置文件的语法是否正确。
如果有语法错误,我们需要及时修复。
另外,我们还需要检查配置文件中的端口、虚拟主机、目录等设置是否正确。
这些设置如果不正确,也会导致Apache服务器无法启动。
三、检查服务状态在Windows系统中,我们可以使用服务管理器来检查Apache 服务器的状态。
在运行cmd命令窗口后,可以输入命令“services.msc”来打开服务管理器。
我们可以在服务列表中找到Apache服务,然后查看其状态是否为“正在运行”。
如果状态不是正在运行,我们可以尝试重新启动服务。
在Linux系统中,我们可以使用命令“systemctl status httpd”来查看Apache服务器的状态。
解决 Apache服务无法启动问题

apache服务启动不了问题主要错误:1、80端口问题很大一部分都来自端口问题,但是一般没装IIS的,则不会出现这个问题2、配置文件httpd.conf问题配置文件中的则是拼写问题了,建议每次更改前都对httpd.conf 文件备份。
主要检查LoadModule php5_module "" 的路径。
包括有无中文字符,空格。
以及ErrorLog 路径无效等3、第三就网上流传最广的解答办法了,直接copy了这一般是netbios解析失败造成的。
解决的办法很简单,步骤如下:一、在"网上邻居"上点右键,菜单上选"属性(R)"。
出来"网络连接"窗口,在"本地连接"上点右键,菜单中点"属性(R)"。
出来"本地连接属性"面板,在"此链接使用下列项目"中找到:"Internet 协议(TCP/IP)",并点击它。
在弹出的"Internet 协议(TCP/IP) 属性"面板上,点击"高级(V)..."按钮。
"高级TCP/IP 设置"面板上点"WINS"选项标签,去掉"启用LMHOSTS 查询(L)"前面的勾,点"确定"按钮。
二、打开"控制面板",点击"Windows 防火墙",点击"高级"选项标签,选择"本地连接",并点击旁边的"设置(T)..."按钮。
在服务选项中找到"安全Web 服务器(HTTPS)",并把它勾选上,点"确定"按钮。
4、第四相关软件影响。
迅雷开启时,apache是启动不了的。
apache无法启动最全的解决办法

2.首页设置,DirectoryIndex,添加相关首页项即可,如index.php ihdex.htm
3.查看解压缩后的文件夹内容,找到“php.ini-dist”文件,将其重命名为“php.ini”,打开编辑,找到下面图中的地方,Ln385,有一个“register_globals = Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“Off”,就只能用“$_POST['变量名']、$_GET['变量名']”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量名”来获取送过来的值,当然,设为“Off”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“On”就看自己感觉了,是安全重要还是方便重要?
一般文件地址的“\”在Apache里要改成“/”。
如果用的Apache2.24版本,要选择php中的php5apache2_2.dll加载.
解决办法:1.网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾.2.控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)即可.(这上下两项完成后仍然有问题,选中:启用 TCI/IP 上的 NetBOIS.)
6.查找AddType application/x-gzip .gz .tgz,在下面加入“AddType application/x-httpd-php .php”、“AddType application/x-httpd-php .html”两行,你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt”,让普通的文本文件格式也能运行php程序。
Win7系统Apache启动失败的解决方法

Win7系统Apache启动失败的解决方法
导读:相信很多Win7用户都有遇到过Apache启动失败的问题,通常情况下,Apache启动失败是因为程序端口被占用导致的。
那么,Win7系统Apache启动失败要如何解决呢?下面,我们就一起往下看看Win7系统Apache启动失败的解决方法。
方法步骤
方法一、查看端口是否被占用
1、打开左下角【开始菜单】,找到所有程序--附件,然后找到【命令提示符】打开;
2、进入命令行界面输入【netstat -ano】命令,查看当前端口使用情况,观察软件端口的PID;
3、然后右键点击任务栏,选择任务管理器选项,进入任务管理器界面;
4、进入任务管理器界面,找到【服务】选项,点击下方的PID,在PID列表中,找到刚才在CMD记录的占用软件端口号的PID,将其关闭即可。
方法二、php5apache2_2.dll加载
1、右键点击【网络】,进入网络属性界面,点击左上角菜单栏中的【更改适配器设置】;
2、右键点击【本地连接】选择属性,在弹出的对话框里点击【Internet协议】;
3、进入Internet属性界面,点击右下角的【高级选项】;
4、进入高级对话框,点击选择上方【Win标签】,将启用LMHOSTS前面的对号给去掉即可。
以上就是Win7系统Apache启动失败的具体解决方法,按照以上方法进行操作后,相信再次启动Apache时就能成功启动了。
apache运行一段时间出现错误

apache运⾏⼀段时间出现错误环境是win2008,apache 2.4.29 Win64 VC15,php 7.1.10(7.1.11)。
事件完整内容:“--------------------------错误应⽤程序名称: httpd.exe,版本: 2.4.29.0,时间戳: 0x59e9c9a6错误模块名称: ntdll.dll,版本: 6.1.7601.23915,时间戳: 0x59b94ee4异常代码: 0xc0000005错误偏移量: 0x000000000004f23c错误进程 ID: 0x900错误应⽤程序启动时间: 0x01d388072496fd60错误应⽤程序路径: D:\xwamp\Apache\bin\httpd.exe错误模块路径: C:\Windows\SYSTEM32\ntdll.dll报告 ID: c896327e-f3fe-11e7-8745-ff2c4350ba8c--------------------------”apache⽇志中频繁定期出现重启[mpm_winnt:notice] [pid 1040:tid 392] AH00422: Parent: Received shutdown signal -- Shutting down the server.[mpm_winnt:notice] [pid 3208:tid 296] AH00364: Child: All worker threads have exited.[mpm_winnt:notice] [pid 1040:tid 392] AH00430: Parent: Child process 3208 exited successfully.[mpm_winnt:notice] [pid 1028:tid 392] AH00455: Apache/2.4.29 (Win64) OpenSSL/1.1.0f configured -- resuming normal operations [mpm_winnt:notice] [pid 1028:tid 392] AH00456: Apache Lounge VC15 Server built: Oct 20 2017 12:12:11[core:notice] [pid 1028:tid 392] AH00094: Command line: 'D:\\xwamp\\Apache\\bin\\httpd.exe -d D:/xwamp/apache -d D:\\xwamp\\Apache -f D:\\xwamp\\conf/httpd.conf'[mpm_winnt:notice] [pid 1028:tid 392] AH00418: Parent: Created child process 1604[mpm_winnt:notice] [pid 1604:tid 296] AH00354: Child: Starting 350 worker threads.=====处理思路记录===⽹上出现类似错误的帖⼦和⽹页有很多,基本都是提问的,没有回答。
Apache启动失败,请检查相关配置

用APMServ 的时候提示:“1、Apache启动失败,请检查相关配置。
2、MySQL5.1启动失败,请检查相关配置… ”出现这个问题从网上查了查主要有三个原因:1.80端口被占用=>改端口,如80802.去掉ssl的勾试试3.注意目录文件不能含有中文(这个比较常见)4.如果发现上面的3个方法还是不行,可能是你的系统变量未指向你window系统下的system32,解决方法如下:检查系统变量中path是否缺少[%SystemRoot%\system32]方法:我的电脑属性=>高级=>环境变量=>在系统变量里找到path=>编辑将[;%SystemRoot%\system32]加到最后即可(括号里面的包括前面的分号)。
Apache启动失败,请检查相关配置。
√MySQL5.1已启动我自己有2台服务器,一台有3个分区,分别是 C D E,然后我把这个软件放在E盘启动后,一切成功。
相同的我另一台服务器只有2个分区,我把它放在D盘,然后启动,就提示Apache 启动失败,请检查相关配置。
√MySQL5.1已启动我一直找不到原因,总以为是什么端口占用着,可是系统是新装的,上来什么都没有,不大可能,上网查了一下文章,用了很多方法也都没能解决使用APMServ时出现“1、Apache启动失败,请检查相关配置。
√MySQL5.1已启动。
”错误的终极解决办法:使用APMServ一键安装PHP平台时经常会出现以下错误导致无法继续下去!这是第一种解决办法:安装官方的提示,是由于其他程序占用了80端口导致的错误,比如迅雷默认就使用了80端口.因为我同时也装有IIS,所以在装IIS时就发现了这个问题,把迅雷的端口作了调整.但是这次仍然出现了这种错误.通常的解决办法查找其他程序是否占用了该端口或者修改下端口.但是我改了几个端口仍然不能使用,不会所有端口都被占用吧?既然修改端口不起作用,就只能采取其他措施了.如下: 在程序说明中有如下介绍:"5、访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL)",我的80端口已经被IIS占用了(需要说明的一点是,IIS占用80端口与APMServ使用其他端口并不矛盾,可以并存),那么关闭SSL呢?试一下,OK了!具体原因尚不清楚.总之解决办法两种:1、改端口;2、改端口不行的情况下,关闭SSL。
Apacheforwindows中错误的一些解决方法陈鹏个人博客

Apacheforwindows中错误的一些解决方法陈鹏个人博客[Tue Feb 18 16:51:11 2014] [error] (OS 10038)在一个非套接字上尝试了一个操作。
: Child 17404: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.[Tue Feb 18 16:51:11 2014] [error] (OS 10038)在一个非套接字上尝试了一个操作。
: Child 17404: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.[Tue Feb 18 16:51:11 2014] [error] (OS 10038)在一个非套接字上尝试了一个操作。
: Child 17404: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.[Tue Feb 18 16:51:11 2014] [error] (OS 10038)在一个非套接字上尝试了一个操作。
Apache启动失败的解决办法

Apache启动失败的解决办法
Apache服务器启动失败怎么办?最近有用户电脑安装了Apache软件后发现,一直出现无法启动的问题,下面就给大家介绍Apache启动失败的解决办法。
一、端口占用问题
1、这个是最有可能出现Apache无法启动的问题之一,运行CMD然后执行netstat -aon | findstr :80 ;
2、如果发现端口被多个占用,你可以用Win+R的方式,输入Regedit进入注册表,找
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP 修改Start这一项,将其改为0。
二、Apache存放路径问题
1、通过命令行使用打开CMD定位到:[你的Apache路径本人下载的解压文件,然后直接解压路径为D:\httpd-2.4.20-x64-vc14-r2\Apache24]\bin,并在命令行内输入httpd.exe -k install -n “Apache2.4” 回车;
2、发现路径提示有错,有两种解决办法,把Apache24放在在根目录下,或者去配置你的Conf文件。
本文以改变路径方式为例,将Apache24存放在D盘根目录下;
3、此时在定位到path:/bin,运行httpd.exe -k install -n “Apache2.4”即可。
三、运行方式问题
1、通过上面第三步我们发现提示的问题告诉我们需要以管理员的身份运行;
2、然后在执行上面第三步,定位到path:/bin,运行httpd.exe -k install -n “Apache2.4”即可。
Apache安装错误问题解答~

作者:NB~
Windows 平台下解决httpd.exe: syntax error on line 39
近来在研究PHP,结果为了Apache的安装伤神不已。
小白我在安装后,启动Apache的服务虽然可以,不过,在Apachesevicemonitor 中启动services时就会出现如下的问题:
对此小白是一点都不清楚什么原因,无奈之下只好上网求助,网
上的解决版本如下:进入cmd,然后进入 Apache安装目录(具体为
你自己的安装目录)\bin> httpd.exe -w -n "Apache2.4" -k start (引号中的Apache2.4修改为你的Apache服务名,可以到计算机服务
里找),小白按部就班地操作,结果如下:
然后得到了我的问题是是“httpd.exe: syntax error on line 39,httpd.conf文件中Server Root must be a valid directory”,由于在网上没有找到前人的版本教学,我只好自己摸索,先打开http.conf文件(其中http.conf通常在conf文件夹下),找到对应的39行,成功38行中文件路径不完整:
于是改为我的对应安装的完整路径:
(注:其中完整的安装路径按照你自己的路径来填)接下来进行验证:
再次启动services成功!。
如何排查Apache HTTP服务器故障

如何排查Apache HTTP服务器故障Apache HTTP服务器是最流行的Web服务器之一,它具有可靠性高、稳定性好、性能强等优点,因而得到了广泛的应用。
然而,即便是这样优秀的Web服务器,也可能会出现故障,影响网站的正常运行和访问。
本文将介绍如何排查Apache HTTP服务器故障,帮助用户快速定位问题并解决故障。
一、确认故障现象在排查Apache HTTP服务器故障之前,首先需要确认故障现象。
通常情况下,故障表现为:1. 网站无法访问或者访问速度慢。
2. Apache HTTP服务器服务无法正常启动或者服务异常停止。
3. Apache HTTP服务器服务频繁重启或者崩溃。
如果出现以上情况,就需要进行排查了。
二、查看日志文件对于Apache HTTP服务器故障问题,最好的排查方式是查看日志文件。
Apache HTTP服务器会生成大量的日志文件,包括访问日志、错误日志、CGI执行日志等等。
通过查看这些日志文件,我们可以很快地找到出错的原因。
1. 访问日志Apache HTTP服务器的访问日志记录了所有来访请求的详细信息,包括请求的IP地址、访问时间、请求方法、请求的资源地址等。
访问日志的路径是“/var/log/httpd/access_log”。
通过查看访问日志,可以了解访问者的访问情况,是否存在异常情况。
如若存在异常情况,可以查看请求的IP地址来判断是否为攻击行为。
2. 错误日志Apache HTTP服务器的错误日志记录了服务器错误信息,例如404错误、500错误等等。
错误日志的路径是“/var/log/httpd/error_log”。
通过查看错误日志,可以了解Apache HTTP服务器在处理请求时是否出现错误。
例如,如果看到大量的500错误,那可能是由PHP、CGI程序出现问题造成的。
3. CGI执行日志如果您使用CGI程序,那么当CGI程序出现问题时,Apache HTTP服务器会生成CGI执行日志。
排查Apache无法启动故障

刈 J、 f19进 数
{I i-上 少 . IU J
执 “1 s l”命 令 , 石 _荆1
天 【ll{求 平IJ文 什 的 ,tJ厂l均 为
“gauser”, 权 赴 “FWX
一
这 ” ,
说 I刿权
设
没
川 足 。
故 障 排 查 既 然 默 认 的 80端 L J
际的业务,谨慎 对待。田
、 、 149
TroUbIe Shootina I故 障 诊 断 与 处 理 - ii ̄'i/.'ill:
f_ { i
m f
题 是 因 为 名 为 “httpd.pid” 的 文 件 权 限 不 足 引 发 的 。
该 文 件 存 在 于 Apache 的 日 志 目 录 下 ,主 要 作 川 是
llll ¨¨- __ _ 三 障诊断与 堡 __lTrOUble Shooting
排 查 Ap a c h e一无~一一 法一 一~m 启一~¨ 一~.= 动~. 一~故一~龇 一障~一 一~一~㈣ 一~ 令一~ ~一
一 河 南 刘 景 云
故 障 现 象
编 者 按 :单 位 一 台 Apache服 务 器 在 一 次 意 外 宕 机 ,重 令,愉 测 httpd
浊 使 川 ,那 』 仃 换 端 【¨J进 :试 。 执 r“sed i ’s/
I i sl en 80/Listen 8080/’ / u 1 /lOCal/apaChe2/Con r/ httpd.COn["” 命 令 ,将 端 l J 修 改 为 8080。 Iff次 执 行 “/ J r/l 0Ca1/aPache2/bi1// apachect’l staft” 命 令 ,没
Apache安装后出现服务无法启动,上服务里启动出现错误代码1

Apache安装后出现服务⽆法启动,上服务⾥启动出现错误代码1⼀、报错信息
1、安装后显⽰安装成功,但是出现服务⽆法启动错误代码1
2、以管理员⾝份cmd,进⼊Apache24/bin⽬标下,执⾏httpd.exe
⼆、错误原因
显⽰错误代码1,这种代号就意味着,端⼝号被占⽤
在cmd⾥bin⽬录下执⾏代码httpd.exe为了让它显⽰出错误,看到被占⽤的端⼝号,从⽽解决问题
三、解决⽅法
1、在命令提⽰符⾥输⼊运⾏ netstat -ano 查看端⼝占⽤情况
进程编号(PID)为6812的进程将443端⼝占⽤了
3、运⾏tasklist |findstr 4 查看进程信息
由以上可以看出端⼝是被vmware-hostd.ext程序占⽤了,那么我们就需要更改Apache24的端⼝,在Apache24的⽬录下搜索httpd-ssl.conf
将两个⽂件⾥的443替换成端⼝号⾥不存在的任意数字(如442)(右键——打开⽅式——以记事本打开——编辑——替换)
另⼀个也是如此照做;之后重启服务,重启电脑!OK解决。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache服务器故障排除全攻略分类:服务器技术2007-09-28 17:25 1093人阅读评论(0) 收藏举报apache服务器serv erweb服务cgiurl随着网络技术的普及、应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一。
原有的客户端/服务器模式正在逐渐被浏览器/服务器模式所取代。
本文将重点Apache 服务器的故障排除的技巧。
一、检查配置文件的错误Apache服务器的设置文件位于/etc/httpd/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。
在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。
其中99% Apache服务器错误是配置文件有误。
1 使用apachectl configtest命令如果配置文件有错误,可以使用apachectl configtest命令,apachectl configtest命令可以检查出所有语法错误和逻辑错误。
实例1下面是一个配置文件样例片断:<Location /server-status>SetHandler server-status Order deny,allow Deny from allAllow from 192.168.149.</Location>如果黑体部分的错误写成了“<Location /server-status”少写了一个>。
apachectl configtest命令会检查到这个问题,输出如下:apachectl configtest Syntax error on line 918 of /etc/httpd/conf/httpd.conf:<Location> directive missing closing '>'2 使用服务管理工具如果配置文件有错误,也可以使用GUI工具来查看。
下面是实例1在GUI工具“服务配置“中的体现,如图1 。
图1 使用GUI工具检查错误二、学会使用错误日志错误日志是最重要的日志文件,其文件名和位置取决于ErrorLog指令。
Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。
错误日志是你的朋友。
任何错误都会在错误日志中有所记载,所以你应该首先查看它。
如果你的网站空间提供者不允许访问错误日志,那么你应该考虑换一个空间提供者。
学会阅读错误日志,可以快速找出问题并快速解决。
1 错误日志格式Apache 默认的错误日志配置如下:ErrorLog logs/error_logLogLevel warn配置错误日志相对简单,只要说明日志文件的存放路径和日志记录等级即可。
格式为:日期和时间错误等级错误消息2 日志记录等级下面着重说说日志记录等级,包括八个级别。
1 级英文名称emerg ,出现紧急情况使得该系统不可用,如系统宕机等2 级alert 英文名称,需要立即引起注意的情况3 级英文名称crit ,危险情况的警告4级英文名称error ,除了emerg 、alert、crit 的其他错误5级英文名称 warn。
警告信息6级英文名称 notice ,需要引起注意的情况,但不如error、warn 重要7级英文名称 info ,值得报告的一般消息8级英文名称 debug,由运行于debug 模式的程序所产生的消息错误日志文件举例错误日志的格式相对灵活,并可以附加文字描述。
某些信息会出现在绝大多数记录中,一个典型的例子是:[Wed Oct 11 14:32:52 2007] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test其中,第一项是错误发生的日期和时间;第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;第三项是导致错误的IP地址;此后是信息本身,在此例中,服务器拒绝了这个客户的访问。
服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。
错误日志中会包含类似上述例子的多种类型的信息。
此外,CGI脚本中任何输出到stderr的信息会作为调试信息原封不动地记录到错误日志中。
用户可以增加或删除错误日志的项。
但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。
了解错误代码和错误提示常用的错误响应代码如下:λ301 :告知用户请求的URL 已经永久的移动到新的URL,用户可以记住新的URL,以便日后直接使用新的URL 进行访问。
302 :告知用户请求的URL 临时的移动到新的URL,用户无需记住新的URL,如果省略错误响应代码,默认就是此值。
303 :告知用户页面已经被替换,用户应该记住新的URL。
401 :授权失败,即密码错误。
403 :Access denied 存取错误,即不可以读取该文件。
404 :File not found 找不到文件。
410 :告知用户请求的页面已经不再存在,使用此代码时不应该使用重定向的URL 参数。
500 :服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。
错误消息提示说明λ“Invalid argument: core_output_filter: writing data to the network” 消息Apache在可能的平台上使用系统调用sendfile来加速响应的发送。
不幸的是,在某些系统上,Apache会在编译时检测sendfile的存在,即使它不能正常工作。
这经常发生在使用网络或其他非标准文件系统时。
这个问题的表现症状包括上述信息出现在错误日志里及对于非零长度文件请求发送零长度的响应。
一般这个问题只发生在静态文件上,因为动态文件通常用不到sendfile 。
要修正这个问题,可用EnableSendfile指令关闭服务器所有部分对sendfile的使用即可。
同时参看EnableMMAP指令,对相似的问题有帮助。
“Premature end of script headers” 消息大多数导致这个错误的CGI脚本问题将会向浏览器发送一个"Internal Server Error"错误信息。
“Permission denied” 消息error_log中的"Permission denied"错误伴随一个发送到客户端的"Forbidden"信息通常表明违反了文件系统的权限,而不是Apache HTTP的配置文件出了错误。
检查并确认用于运行子进程的User和Group有访问导致问题的文件的足够权限。
同时检查一下导致问题的文件所在的目录及其所有父目录是否具有执行(搜索)权限(也就是 chmod +x)。
最近发行的 Fedora Core 和其它Linux发行版使用了SELinux进行额外的访问控制,违反这些限制也会导致"Permission denied"消息。
"POST Method Not Allowed"消息这说明Apache没有被正确配置以执行CGI程序,重新阅读配置Apache看看遗漏了什么。
"Internal Server Error"消息查阅Apache错误日志,可以找到CGI程序产生的出错消息"Premature end of script headers"。
对此,需要检查下列各项,以找出不能产生正确HTTP头的原因。
3 持续监视错误日志可以使用命令“tail -f error_log” 对任何问题持续监视。
要了解服务器上发生了什么,就必须检查日志文件。
虽然日志文件只是记录已经发生的事件,但是它会让你知道服务器遭受的攻击,并帮助你判断是否提达到了必要的安全等级。
一些例子:grep -c "/jsp/source.j s p?/jsp/ /j s p/source.jsp??" access_log grep "client denied" error_log | tail -n 10上例会列出试图使用Apache Tomcat Source.JSP Malformed Request Information Disclosure Vulnerability的攻击次数。
下例会列出最后十个被拒绝的客户端:[Thu Jul 1117:18:392002] [error] [client ] client denied by server configuration: /usr/local/apache/htdocs/.htpasswd可见,日志文件只是记录已经发生的事件,所以,如果客户端可以访问.htpasswd文件,而且在访问日志中发现类似如下的记录: -- [12/Jul/2002:01:59:13+0200] "GET /.htpasswd HTTP/1.1"这可能表示服务器配置文件中的下列指令已经被注解了:<Files ~"^/.ht">Order allow,deny Deny from all</Files>4 检查Apache服务器模块问题如果Apache服务器可以启动,但是某些功能无法实现,比如前面介绍的Webdav 功能,通常是提供这个功能的模块没有加载,此时可以使用命令:“httpd -M”查看模块加载情况。
它会输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块。
也可以使用浏览器访问http://192.168.1.12/server-info/?list获取如图2 。
图2 模块加载情况5查看Red Hat 发布的Apache 2.x 的相关信息执行如下的步骤可以查看Red Hat 发布的Apache 2.2.3 的一些相关信息。
(1)查看编译配置参数使用httpd -V 命令,httpd -V Server version: Apache/2.2.3Server built: Nov 29200606:33:19Server's Module Magic Number: 20051115:3 Server loaded: AP R 1.2.7, APR-Util 1.2.7 Compiled using: AP R 1.2.7, APR-Util 1.2.7Architecture: 32-bit Server MPM: P refork threaded: no forked: yes (variable process count)Server compiled w ith....-DAP ACHE_MPM_DIR="server/mpm/prefork"-D APR_HAS_SE NDFILE-D AP R_HAS_MMA P-DAP R_HAVE_IP V6 (IP v4-mapped addresses enabled)-D AP R_USE_SYSVSE M_SERIALIZE-DAP R_USE_P THRE AD_SERIALIZE-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT-DAP R_HAS_OTHER_CHILD-D AP_HAVE_RE LIABLE_PIPED_LOGS-DDYNAMIC_MODULE_LIMIT=128-D HTTPD_ROOT="/etc/httpd"-D SUEXE C_BIN="/usr/sbin/suexec"-D DEFAULT_PIDLOG="logs/httpd.pid"-D DEFAULT_SCORE BOARD="logs/apache_runtime_status"-D DEFAULT_LOCKFILE="logs/accept.lock"-D DEFAULT_ERRORLOG="logs/error_log"-DAP_TYPE S_CONFIG_FILE="conf/mime.types"-D SERVER_CONFIG_FILE="conf/httpd.conf"从以上的输出可以了解Apache 服务器版本和编译的参数。