我们有一个在默认端口上运行 Apache 的 Red Hat Enterprise Linux 4 实例。我们想添加第二个 Apache 实例,以便可以完全独立于第一个实例重新启动。我们可以这样做吗?
也许还有另一个易于维护的 Web 服务器可以在非标准端口上运行非常简单的 PHP 脚本?我们希望能够远程触发 php 脚本,而无需使用在 RHEL 服务器上运行的 Apache 默认实例。有什么想法吗?
答案1
在典型环境中,您可以创建 httpd.conf 的副本,然后在新文件上修改以下属性。
# pid 文件 Pid文件运行/httpd.pid #http 监听端口 听 80 # 日志文件 ErrorLog 日志/error_log CustomLog 日志/access_log 合并 # 服务器名称 服务器名称 默认主机名 # 默认站点的文档根目录 文件根目录“/var/www/html”
并且根据您的实施,您可能需要修改其他属性,例如 LockFile(如果您在 NFS 上运行)
和往常一样,如果您使用虚拟主机,则必须自定义虚拟主机定义。
控制新实例
例如,如果新复制的文件的名称是 /etc/httpd/conf/instance1.conf,那么您可以使用以下命令启动这个新实例
httpd -f /etc/httpd/conf/instance1.conf -k 启动
httpd 命令的另一个有用的选项是 -t 选项,用于测试配置文件中是否存在错误。
httpd -f /etc/httpd/conf/instance1.conf -t
有关如何使用 httpd 命令的更多信息,请参阅“man 8 httpd”。
正如其他人所暗示的,您应该创建一个单独的 init 脚本来帮助您管理此实例。 现有的 RH /etc/init.d/httpd 脚本应该作为起点。
答案2
是的,这很简单。基本上,您只需要在命令行上使用非默认配置文件启动第二个实例即可。如果您在网上搜索“apache 多个实例”,您应该会找到所需的内容。
答案3
创建 2 个 init 脚本,分别指向不同的配置文件(-f 选项)。记得创建 2 个不同的 pid 文件。
答案4
将 /etc/httpd 下的配置文件复制到另一个目录。修改它们,更改 httpd.conf 中的 ServerRoot、DocumentRoot 和其他路径相关变量。然后创建一个单独的初始化脚本,调用 httpd -f