最新
活动
咨询
购物车
帮助
重要通知

Linux Apache 常见启动错误及解决办法

  • 作者:新网
  • 文章来源:新网
  • 更新时间:2018-01-22 09:28:25

   Linux Apache 常见启动错误及解决办法

 

  主机 Linux Apache 启动经常遇到各种错误,有的会导致 Apache 启动失败,本文对常见错误及解决办法进行说明。

  Fatal error initialising mod_ssl, exiting

  错误模块 php5ts.dll,错误地址 0x000e890c

  No space left on device: Couldn't create accept lock

  Starting httpd: httpd: bad user name apache

  Could not reliably... qualified domain name

  主机 Linux Apache 因 mod_ssl 启动失败

  问题现象

  查看Apache错误日志如下:

1.jpg

 

  执行配置检查 /alidata/server/httpd/bin/apachectl configtest,报错如下:

2.jpg

 

  问题原因

  mod_ssl.so 模块加载异常

  解决方案

  重新编译异常模块

  到 Apache 源码路径(以一键安装包为例)

        /root/sh/sh-1.4.1/httpd-2.4.10/modules/ssl

  1、执行如下命令:

  /alidata/server/httpd/bin/apxs -a -i -c -L /usr/lib64/openssl/engines/lib -c *.c -lcrypto -lssl -ldl

  出现如下信息,代表编译正常:

3.jpg

 

  2、再次执行配置检查 /alidata/server/httpd/bin/apachectl configtest,通过。

4.jpg

 

  3、启动 Apache 成功

  主机 Windows Apache 启动报错:错误模块 php5ts.dll,错误地址 0x000e890c

  问题现象

  启动 httpd 时,出现错误,查看日志,Apache 的 error.log 中记录为:

  [warn] pid file D:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

  Windows 的事件查看器/应用程序中显示为:

  Application Error 中事件详细信息:错误应用程序 httpd.exe,版本 2.2.17.0,错误模块 php5ts.dll,版本 t5.3.5.0,错误地址 0x000e890c。

  问题原因

  涉及 php5ts.dll 错误的处理,一类是因为 PHP 只能使用自身版本的 dll,如果出现因为系统路径变量的原因,导致其他版本的 dll 先行引用,则出现错误。

  针对此类错误,或是删除其他版本 dll;或修改系统 PATH 变量,将 PHP 的放在前面;或将 PHP 的 dll 放到系统的 System32 目录下。

  不过,若确认路径没有问题,PATH 变量中 PHP 的安装目录还在 System32 前,也没有其他版本的 php5ts.dll,让然存在问题,请参考如下解决方法。

  解决方案

  查看 errorlog,找到报错无法 load 的模块,如下

  [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_oci8.dll' - 找不到指定的模块。 in Unknown on line 0

  [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_oci8_11g.dll' - 找不到指定的模块。 in Unknown on line 0

  [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_pdo_oci.dll' - 找不到指定的模块。 in Unknown on line 0

  [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_sybase_ct.dll' - 找不到指定的模块。 in Unknown on line 0

  回到 php.ini 中,将上面 4 个模块注释掉:

  [PHP_OCI8]

  ;extension=php_oci8.dll

  [PHP_OCI8_11G]

  ;extension=php_oci8_11g.dll

  [PHP_PDO_OCI]

  ;extension=php_pdo_oci.dll

  [PHP_SYBASE_CT]

  ;extension=php_sybase_ct.dll

  重新启动 Apache 成功。

  主机 Apache 启动失败,日志错误:No space left on device: Couldn't create accept lock

  问题现象

  Apache 启动未报任何错误,但是启动后 ps -ef | grep httpd 看不到进程。errror_log 显示:No space left on device: Couldn't create accept lock

  但是查看空间是正常的,没有空间不足的情况。

5.jpg

  问题原因

  用户进程通信信号量达到限制导致

  解决方案

  ipcs -s | grep nobody #nobody 是创建 Apache 进程的用户名,一般情况下 daemon,根据自己的实际情况写。

6.jpg

 

  使用 ipcs -s -l 可以查看当前系统的设置。

  使用 ipcs -su 可以查看当前的使用量

  使用 ipcs -s | grep nobody | awk '{print "ipcrm -s" $2}'|sh 可以 kill 掉信号。

  然后重新启动 Apache 进程即可。

  /etc/init.d/httpd -k start

  主机 Apache 启动报错:Starting httpd: httpd: bad user name apache

  问题现象

  启动 Apache 的时候(例如使用命令“:/etc/init.d/httpd start”)出现错误 :Starting httpd: httpd: bad user name apache(如下图)

7.jpg

 

  问题原因

  造成该问题的原因是系统中不存在用户 apache,因此导致启动失败。

  验证是否存在 apache 用户,可执行命令:

  id apache

  如提示 “id: apache: No such user”,则说明 apache 用户不存在

  解决方案

  用以下命令:

  useradd apache

  新创建一个 Apache 用户,然后再启动 httpd。

  主机 Apache 启动告警:Could not reliably... qualified domain name

  问题现象

  Apache 启动报错如下:

8.jpg

 

  问题原因

  这是 Apache 的提示信息,因为在配置文件 httpd.conf 中没有绑定域名,这个提示信息就是告诉用户,需要给 Apache 绑定域名。

  解决方案

  修改 Apache 的配置文件

  1.找到 Apache 配置文件的路径,例如一键安装脚本的路径是:/alidata/server/httpd/conf/ 目录

  2.编辑 Apache的 配置文件:httpd.conf

  找到 ServerName 一行,将默认的

  #ServerName www.example.com:80

  取消#号修改为

  ServerName 127.0.0.1

9.jpg

 

  注意:也可以自定义域名

  3.启动 Apache 服务

10.jpg

 

主机管理

增值电信业务经营许可证:B1-20140435 京B2-20070152 域名注册服务批文号:信部电函[2005]263号 京ICP证000012
 京公网安备11030102000056号 京ICP备09061941号-4
Copyright©1993-2018 北京新网数码信息技术有限公司 版权所有