分析/解决Apache/PHP无法启动的问题

最近经常被问到Apache无法启动的情况,所以写一篇文章,总结一下Windows下经常遇到的 Apache/PHP 无法启动的情况的解决方法。

Apache/PHP 无法启动分两种情况:

1.、Apache无法启动,没加载php也无法启动

2、Apache可以启动,但加载php后无法启动

第一种情况多数是Apache配置问题,或者80端口被占用

使用Apache的配置检查:

C:>D:\Apache2.2\bin\httpd.exe -t
Syntax OK
根据错误提示,纠正错误。
如果是80端口占用,这个在Windows机器比较常见,经常被IIS抢占。

注销IIS服务:

iisreset /stop
iisreset /disable

sc stop w3svc
sc delete w3svc
如果不是IIS,可以使用命令杀掉强占80端口的进程:

.#查找占用80端口的进程id
netstat -ano|find “:80”

.# 假设该进程id为2013,查看进程名称:
tasklist /fi “pid eq 2013”

.# 杀掉该进程命令
taskkill /f /pid 2013
第二种多数是PHP编译器的问题:

查看Apache错误日志,有类似下面这些内容:

httpd.exe: Syntax error on line 63 of D:/Apache2.2/conf/httpd.conf: Cannot load D:/php/php5apache2_4.dll into server: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3

php5.5使用的编译器是vc11,php5.4和php5.3的是vc9,php5.2是vc6。同时还要注意是x86版本,还是x64版本。目前只有php5.5提供x64版本,其他都只有x86版本。

apache.org下载的Apache都是vc6版本,否则就根据不同文件说明安装不同的运行库。

vc11运行库x86/x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=30679
vc10运行库x86版本:http://www.microsoft.com/en-us/download/details.aspx?id=5555
vc10运行库x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=14632
vc9运行库x86版本:http://www.microsoft.com/en-us/download/details.aspx?id=5582
vc9运行库x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=15336

如果不清楚你的情况,可以安装全部运行库,再也不用为这个问题担忧了。
文章精选自【blog.4ud.cn】
如果Apache/PHP还无法启动,那最可能是php5_module模块的问题:

1、Apache2.0对应的PHP模块为 php5apache2.dll

2、Apache2.2对应的PHP模块为 php5apache2_2.dll

3、Apache2.4对应的PHP模块为 php5apache2_4.dll

换句话说,根据php5_module模块,可以知道当前版本php支持哪种Apache

所以,Apache/PHP的搭配有以下几种情况:

1、php5.2支持Apache2.0和Apache2.2;

2、php5.3、php5.4同时支持Apache2.2和Apache2.4;

3、php5.5只支持Apache2.4

除非你自己手动编译php5_module模块,否则只能有以上3种选择。
文章精选自blog.4ud.cn

周一又是新的开始!所有事情都按照往常的节奏按部就班,有条不紊的进行着。首先是检查下各网站及应用系统是否正常,然后看看日志信息是否也有异样,一圈下来结果跟以前差一样没有其它问题。   今天唯独没有像往一样,上线之后并没打开系统监控(平时都是用SecureCRT登录系统之后,打开TOP命令让它一直在线,偶尔看下)。到了早上10点多快11点的时候,随手又点击了一下网站,这下出现的画面让我为之一醒(不是一惊)   所 实话这个介面还真不多见,但跟这个相似的就是前后端连接超时也会出现一个提示页面,但内容不太一样。这下我就急了,难道被人黑了?因为最近老有朋友说他的 网站被挂马了,所以我一个冲上来的念头就是被人黑了。连忙SSH登录后台看看,最后的登录IP也是自己的,这才稍有点放心,是自己紧张过头了。   稍作冷静之后,再结合提示页面的信息,应该是系统服务出了问题而非被入侵造成。于是就从检查日志、进程、端口等方面着手展开排查,很快就在php-fpm.log日志文件有所发现   突然似乎想到了什 么,要检查下PID文件,因为在Linux下记录某个进程是否运行是通过生成一个对应的PID文件,写入当前的进程号作标识的。真是喜出望外呀~这个 pid文件是空的,虽然有这个名称的文件,但里边没有内容。所以就解释了为什么启动服务就说已经运行,停止它的时候说失败了。几经检查,发现用来启动 php-fpm的脚本写得不严密,只是在启动的时候检查是否有pid文件存在而不管它是否有真实的PID内容,才造成了启动、停止都不正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值