《Apache 服务启动不了》要点:
本文介绍了Apache 服务启动不了,希望对您有用。如果有疑问,可以联系我们。
维易PHP培训学院每天发布《Apache 服务启动不了》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
{我是新手,从未遇到此问题,请各位大大勿喷}
事由:本日早上上班突然发现公司网站出现问题.经过排查,发现是Apache出现问题.首先检查配置文件没有出问题后,启动服务发现Apache服务能启动,但是没法关闭,没法重启.这是什么原因呢?
解决方法:(出现任何问题首先要想到的就是日志)
查看httpd日志:
tail -f /var/log/httpd/error_log
果然,显示了以下报错:
[Mon Jul 11 09:04:07 2016] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)[Mon Jul 11 09:04:07 2016] [notice] Digest: generating secret for digest authentication ...
既然找到问题了,那我们就来办理呗!
关键字:suEXEC
解决方法:
输入:ipcs -s 看有没有超过5个这命令是显示信号量集的,什么是信号量集呢?哈哈 我也解释不清楚,本身百度吧
然后显示以下结果:
------ Semaphore Arrays --------key semid owner perms nsems 0x00000000 0 root 600 1 0x00000000 32769 root 600 1 0x00000000 3604482 4294967295 600 1 0x00000000 3637251 4294967295 600 1 0x00000000 4784132 4294967295 600 1 0x00000000 4816901 4294967295 600 1 0x00000000 1048582 4294967295 600 1 0x00000000 229383 4294967295 600 1 0x00000000 262152 4294967295 600 1 0x00000000 491529 4294967295 600 1 0x00000000 524298 4294967295 600 1 0x00000000 557067 4294967295 600 1 0x00000000 589836 4294967295 600 1 0x00000000 1081357 4294967295 600 1 0x00000000 1114126 4294967295 600 1 0x00000000 1146895 4294967295 600 1 0x00000000 1245200 4294967295 600 1 0x00000000 1277969 4294967295 600 1 0x00000000 1638418 4294967295 600 1
执行后,显示结果把我看懵了,怎么会这么多?
哎 那就办理呗!
使用以下命令:
ipcs -s | grep apache | perl -e 'while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}'
然后再重启Apache服务就办理了.
以下是ipcs参数的详解与用法:(本身用请勿喷)
ipcs可用来显示当前Linux系统中的共享内存段、信号量集、消息队列等的使用情况.命令示例:ipcs -a或ipc 显示当前系统中共享内存段、信号量集、消息队列的使用情况;ipcs -m 显示共享内存段的使用情况;ipcs -s 显示信号量集的使用情况;ipcs -q 显示消息队列的使用情况;ipcrm可用来删除对应的共享内存段、信号量、消息队列;命令示例:ipcrm -s semid 删除对应的信号量集ipcrm -m shmid 删除对应的共享内存段ipcrm -q msqid 删除对应的消息队列ipcrm自己只能实现单个资源的删除,利用以下命令可实现批量删除(zhangsj版权所有,呵呵):1.ipcs -s|grep 用户名|cut -d" " -f2|xargs -n1 ipcrm -s2.ipcs -s|awk '/用户名/{print $2}'|xargs -n1 ipcrm -s3.ipcs -s|awk '/用户名/{system("ipcrm -s "$2)}'4.for i in echo `ipcs|grep 用户名|cut -d" " -f2`; do ipcrm -s $i; done