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

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

这是在Red Hat Linux发行版上:

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

    您想要将其init脚本添加到适当的运行级别。 init脚本通常是/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上,一个小小的Google显示:

     chkconfig --add httpd 

    从分配到分配有一点变化,但这个想法通常是一样的。 基本上,所有这些命令都会从/etc/init.d/创build一个符号链接到/etc/相应的运行级文件夹。

    这是最后为我工作的。 这假定你是root用户。

    1. vi /etc/init.d/apache2(编辑如下)
    2. chmod 755 /etc/init.d/apache2
    3. chkconfig –add apache2
    4. chkconfig –list apache2(validation它是否工作)

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

     #!/斌/庆典
     #
     Apache HTTP服务器的#apache2启动脚本
     #
     #chkconfig:3 85 15
     #说明:Apache是​​一个万维网服务器。 它被用来服务\
     #HTML文件和CGI。
    
     / usr / local / apache2 / bin / apachectl $ @
    

    你可以通过运行/ sbin / runlevel来得到运行级别,在我的情况下是3.当然你需要调用你的apachectl版本,在我的情况下是/ usr / local / apache2 / bin / apachectl

    感谢以下内容:

    • Evan Teran回答+1
    • 来自Russell Heilling + 1的帮助
    • man chkconfig
    • sysdigg中包含运行级别信息的链接 。

    检查/etc/rc.d目录中是否有httpd init脚本。 如果是的话,那么你可以运行下面的命令来启动httpd服务在启动时启动。

     chkconfig --level 345 httpd on 

    如果您没有init脚本,那么只需在/etc/rc.local文件中添加apachectl -k start (启动Apache的命令)即可。

    正如你已经安装的源代码那样,在/etc/init.d/目录下将不会安装init脚本。 apachectl二进制文件被devise为与标准的初始化脚本选项兼容,所以你可以简单地将其链接到它,而不是创build一个包装脚本(例如ln -s / usr / local / sbin / apachectl /etc/init.d/阿帕奇)

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

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

    从启动时开始

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

    apachectl脚本被devise为像一个标准的SysV初始化脚本; 它可以将参数启动,重新启动并停止,并将它们转换成适当的信号给httpd。 所以你通常可以简单的把apachectl链接到相应的init目录下。 但一定要检查系统的确切要求。

    chkconfig –levels 345 httpd

    将在runlevels 3,4,5中启动httpd。

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

    在Red Hat Linux上有一个叫做ntsysv的有用的工具,它可以让你select你想在你的当前运行级别启动的服务。 您也可以使用--level启动该实用程序时指定要编辑的运行级别。

    向下滚动到httpd并按空格 ,左边的框中出现一个星号。 然后点击确定。 按Return键保存并返回到shell。

    我发现它默认安装的非常多。 我从来没有处于没有安装的位置。

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

     chkconfig --add <script name> 

    这取决于你的Linux的味道。 假设文件/etc/init.d/apache2已经创build,请尝试:

     chkconfig -a apache2 

    要么

     update-rc.d apache2 defaults 

    其中之一应该工作。