我已经在我的 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
我已经在我的 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
您想将其初始化脚本添加到适当的运行级别。init 脚本通常
/etc/init.d/apache2
是您可以手动运行/etc/init.d/apache2 start
以启动它的地方。在 Gentoo 上你会写:
在 Ubuntu/Debian 上这有效:
在 Red Hat Linux/Fedora/CentOS 上,用谷歌搜索一下就可以看到:
它从分布到分布略有不同,但想法通常是相同的。基本上,所有这些命令都会
/etc/init.d/
从/etc/
.这是最终对我有用的方法。这假设您是 root 用户。
/etc/init.d/apache2 的内容:
你可以通过运行 /sbin/runlevel 来获取运行级别,在我的例子中是 3。当然你需要调用你的 apachectl 版本,在我的例子中是 /usr/local/apache2/bin/apachectl
感谢以下几点:
检查目录中是否有
httpd
初始化脚本/etc/rc.d
。如果是,那么您只需运行以下命令即可在启动时启动httpd服务。如果您没有初始化脚本,那么只需将
/etc/rc.local
文件附加到apachectl -k start
(启动 Apache 的命令)。由于您已通过源代码安装,因此 /etc/init.d/ 目录中不会安装初始化脚本。apachectl 二进制文件旨在与标准初始化脚本选项兼容,因此您可以简单地对其进行符号链接,而不是创建包装脚本(例如 ln -s /usr/local/sbin/apachectl /etc/init.d/阿帕奇)
然后,您可以按照其他帖子中概述的过程添加链接以在正确的运行级别调用初始化脚本。
引用:Apache 文档http://httpd.apache.org/docs/2.2/invoking.html
这取决于你的 Linux 风格。假设文件 /etc/init.d/apache2 已经创建,尝试:
或者
其中之一应该工作。
chkconfig --levels 345 httpd
将在运行级别 3、4、5 中启动 httpd。
chkconfig --list 将显示所有服务及其当前的启动运行级别。345 是典型的网络服务。
在 Red Hat Linux 上,有一个名为 ntsysv 的有用实用程序,可让您选择要在当前运行级别启动的服务。当您使用启动实用程序时,您还调用指定要编辑的运行级别
--level
。向下滚动到 httpd 并按下Space以在左侧框中出现一个星号。然后Tab就OK了。按Return保存并返回外壳。
我发现它几乎默认安装。我从来没有处于未安装的位置。
您需要先安装服务,方法是将服务脚本复制到 /etc/init.d 然后运行: