it-swarm.cn

如何在Linux的启动时让Apache启动?

我已经在Linux机器上从源代码安装了Apache 2。 apachectl -k start正常工作,但是如何在启动时启动Apache?

这是在Red Hat Linux发行版上:

Linux <主机名> 2.6.9-55.ELsmp#1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux

32
grieve

您要将其初始化脚本添加到适当的运行级别。初始化脚本通常是/etc/init.d/Apache2,您可以在其中手动运行/etc/init.d/Apache2 start来启动它。

在Gentoo上,您应该写:

rc-update add Apache2 default

在Ubuntu/Debian上,这有效:

Sudo update-rc.d Apache2 defaults

在Red Hat Linux/Fedora/CentOS上,进行了一些谷歌搜索显示:

chkconfig --add httpd

从分发到分发,它略有不同,但是想法通常是相同的。基本上,所有这些命令都从/etc/init.d//etc/中的相应运行级文件夹建立符号链接。

46
Evan Teran

这终于对我有用。这假设您是root用户。

  1. vi /etc/init.d/Apache2(如下所示进行编辑)
  2. chmod 755 /etc/init.d/Apache2
  3. chkconfig-添加Apache2
  4. chkconfig --list Apache2(以验证其是否有效)

/etc/init.d/Apache2的内容:

#!/ bin/bash 
#
#Apache HTTP Server的Apache2启动脚本
#
#chkconfig:3 85 15 
#说明:Apache是​​万维网服务器。它用于提供\ 
#HTML文件和CGI。
 
/usr/local/Apache2/bin/apachectl $ @ 

您可以通过运行/ sbin/runlevel来获得运行级别,在我的情况下为3。当然,您需要调用apachectl的版本,在我的情况下为/ usr/local/Apache2/bin/apachectl

由于以下原因:

26
grieve

检查/etc/rc.d目录中是否具有httpd初始化脚本。如果是,则只需运行以下命令即可使httpd服务在引导时启动。

chkconfig --level 345 httpd on

如果没有初始化脚本,则只需在/etc/rc.local文件后附加apachectl -k start(用于启动Apache的命令)。

8
Viky

由于已按源安装,因此/etc/init.d/目录中不会安装初始化脚本。 apachectl二进制文件旨在与标准的初始化脚本选项兼容,因此您很可能可以简单地对其进行符号链接,而无需创建包装器脚本(例如ln -s/usr/local/sbin/apachectl /etc/init.d/阿帕奇(Apache)

然后,您可以按照其他文章中概述的过程添加链接,以在正确的运行级别调用init脚本。

引用:Apache文档 http://httpd.Apache.org/docs/2.2/invoking.html

在启动时开始

如果希望服务器在系统重新引导后继续运行,则应将对apachectl的调用添加到系统启动文件(通常是rc.local或rc.N目录中的文件)。这将以root身份启动Apache。在执行此操作之前,请确保已正确配置服务器的安全性和访问限制。

Apachectl脚本旨在像标准的SysV初始化脚本一样工作。它可以使用参数start,restart和stop并将其转换为对httpd的适当信号。因此,您通常可以简单地将apachectl链接到适当的init目录中。但是请务必检查系统的确切要求。

4
Russell Heilling

在Red Hat Linux上,有一个有用的实用程序ntsysv,它使您可以选择要在当前运行级别启动的服务。您调用时还指定了使用--level启动实用程序时要编辑的运行级别。

向下滚动到httpd,然后按 Space 因此左侧的框中会出现一个星星。然后 Tab 拿。按 Return 保存并返回到命令行管理程序。

我发现默认情况下它几乎可以安装。我从来没有到过没有安装的位置。

您可能需要先安装服务,尽管将服务脚本复制到/etc/init.d然后运行:

chkconfig --add <script name>
1
Garry Harthill

chkconfig-级别345 httpd

将在运行级别3、4、5中启动httpd。

chkconfig --list将显示所有服务及其当前的启动运行级别。 345是网络服务的典型代表。

1
elint

这取决于您的Linux风格。假设已创建文件/etc/init.d/Apache2,请尝试:

chkconfig -a Apache2

要么

update-rc.d Apache2 defaults

其中之一应该起作用。

1
Neobyte