AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 513401
Accepted
Stefan Profanter
Stefan Profanter
Asked: 2013-06-06 04:52:10 +0800 CST2013-06-06 04:52:10 +0800 CST 2013-06-06 04:52:10 +0800 CST

apache2 不在启动时启动。即使在运行级别中设置

  • 772

在我的 Ubuntu 10.04.4 服务器上安装了 apache2 2.2.14。几个月前在启动时启动 apache2 工作正常。

现在我发现重启后 apache2 不再自动启动。

init.d 脚本存在并且应该是默认安装的脚本:

root@ser:~# ls /etc/init.d | grep apache
apache2

还设置了运行级别启动项(使用update-rc.d apache2 defaults):

root@ser:~# find /etc/rc* -name *apache*
/etc/rc0.d/K20apache2
/etc/rc1.d/K20apache2
/etc/rc2.d/S20apache2
/etc/rc3.d/S20apache2
/etc/rc4.d/S20apache2
/etc/rc5.d/S20apache2
/etc/rc6.d/K20apache2

重新启动后检查状态会导致:

root@ser:~# service apache2 status
Apache is NOT running.

ps aux | grep apache也是空的。

查看/var/log/apache/error.log启动时没有条目。cat /var/log/syslog | grep apache也是空的,系统日志不包含任何可疑条目。

在启动后手动启动 apacheservice apache2 start工作正常并且不会输出任何错误。

更新 1: 脚本/etc/init.d/apache2具有以下标题/要求:

### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop apache2 web server
### END INIT INFO

正在启动的服务是:

root@ser:~# ls /etc/rc2.d/
README           S10sysklogd  S20apache2 S20denyhosts  S20hashcash-milter  S20ido2db     S20modules_dep.sh  S20postfix  S20saslauthd  S20vzquota  S50rsync     S99rc.local
S09hostname_vps  S15bind9     S20exim4      S20icinga           S20memcached  S20opendkim        S20psad     S20xinetd   S23ntp      S99ondemand

我怎样才能找出为什么 apache2 没有在启动时启动?

apache-2.2
  • 1 1 个回答
  • 5428 Views

1 个回答

  • Voted
  1. Best Answer
    Stefan Profanter
    2013-06-06T10:49:54+08:002013-06-06T10:49:54+08:00

    发现问题:

    简而言之:我的网页试图连接到 MySQL,但此时 MySQL 没有运行。因此 apache 无法启动。

    我更改了以下行以/etc/init.d/apache2将启动问题记录到系统日志:

    if $APACHE2CTL start; then
    

    至

    if $APACHE2CTL  -k start -e Debug 2>&1 | logger -t "apache_start"; then
    

    启动后检查您/var/log/syslog的条目以apache_start.

    下一个问题:如何强制 apache 在 mysql 之后启动。请参阅此处:在 mysql 之后强制启动 apache


    附加信息:我使用 Perl Catalyst Framework。

    这是 apache init 脚本的错误输出:

    DBI connect('database:localhost:3306','User',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at /usr/local/share/perl/5.10.1/Catalyst/Plugin/I18N/DBI.pm line 196.
    Syntax error on line 10 of /etc/apache2/sites-available/mysite:
    Can't call method "disconnect" on an undefined value at /usr/local/share/perl/5.10.1/Catalyst/Plugin/I18N/DBI.pm line 263, <DATA> line 998.\nCompilation failed in require at (eval 4) line 3, <DATA>  line 998.\n
    

    我认为语法错误是由先前的错误引起的。因为第 10 行是:

    PerlModule CatalystPageName
    

    如果 mysql 正在运行,则工作正常。

    我还没有发现为什么本地化模块在启动时连接。我们有其他具有相同模块的网页,这些网页在启动时没有这个问题/连接。由于它无法连接,因此以下断开连接会导致 Perl 中出现异常,从而中止 apache2crl 启动命令。(这是我猜的)

    • 0

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve