是的,您的 VPS 上安装了两个 Apache。

是的,您的 VPS 上安装了两个 Apache。

我是服务器维护新手,昨天刚安装的 VPS 上的 Ubuntu 14.10 上运行着 Apache 2.4。由于以下原因,我似乎在机器的不同位置安装了两个不同的 Apache。

  1. 当我sudo /usr/local/apache2/bin/apachectl start 接着跑步时ps -A我得到了这个:

     4408 ?        00:00:00 httpd
     4409 ?        00:00:00 httpd
     4410 ?        00:00:00 httpd
     4411 ?        00:00:00 httpd
    

    /usr/local/apache2/logs/error_log它使用类似以下内容来更新错误日志

    [Sat Feb 14 00:16:49.963014 2015] [mpm_event:notice] [pid 4542:tid 140160010012544] AH00489: Apache/2.4.12 (Unix) mod_wsgi/4.4.8 Python/2.7.8 configured -- resuming normal operations
    [Sat Feb 14 00:16:49.963260 2015] [core:notice] [pid 4542:tid 140160010012544] AH00094: Command line: '/usr/local/apache2/bin/httpd'
    

    按照以下配置文件设置:usr/local/apache2/conf/httpd.conf

  2. 但是,如果我运行sudo apachectl start(在 1. 中停止示例之后)然后ps -A得到以下结果:

    4743 ?        00:00:00 apache2
    4744 ?        00:00:00 apache2
    4745 ?        00:00:00 apache2
    

    var/log/apache2/error.log它使用类似以下内容来更新错误日志

    [Sat Feb 14 00:22:06.816281 2015] [mpm_event:notice] [pid 4743:tid 139905582937984] AH00489: Apache/2.4.10 (Ubuntu) configured -- resuming normal operations
    [Sat Feb 14 00:22:06.816480 2015] [core:notice] [pid 4743:tid 139905582937984] AH00094: Command line: '/usr/sbin/apache2'
    

    按照以下配置文件设置:/etc/apache2/apache2.conf

我一直在尝试使用 mod_wsgi 和 Apache 设置一个 Django 应用程序,并在这样做的过程中一直在编辑示例 1 中的配置文件。我做了一些谷歌搜索,人们似乎都在这么说,apache2.conf而且httpd.conf似乎互相称赞,但就我而言,由于它们都设置了不同的 ErrorLog 信息,并且通常似乎控制不同的程序,所以我有点困惑。

我是否在同一台机器上安装了两个不同的 Apache 实例?或者这只是正常现象?

答案1

是的,您的 VPS 上安装了两个 Apache。

您已从 ubuntu 存储库安装了 Apache,安装在/usr 您已从源代码安装了 Apache,安装在/usr/local/apache2

现在,您在评论中说您尝试在从源代码重新安装之前卸载 apache。看来卸载没有正确完成。

该怎么办呢……

选项 A:只需使用存储库中的 apache:

  1. 停止您从源代码构建的 apache sudo /usr/local/sbin/apache2/apachectl stop
  2. 只需使用从 repos 安装的 apache。启动它,或者如果它已经在运行,请重新启动它: sudo /etc/init.d/apache2 restart
  3. 除非您在从源代码构建时创建了初始化脚本,否则您可以安全地忽略从源代码进行的安装 - 只要不要再次手动启动它就可以了。

选项 B:直接使用你从源代码构建的 Apache

  1. 停止 apache 提供的存储库。 sudo /etc/init.d/apache2 stop
  2. 从存储库中删除 apache。 sudo aptitude remove apache2
  3. 启动(或重新启动)您构建的 apache。 sudo /usr/local/apache2/bin/apachectl graceful

答案2

是的 - 他们报告的版本号不同,因此是不同的 Apache 实例。

/usr/local/apache2 是从源代码编译的 apache 的默认基本目录,而 /usr/sbin 和 /etc 中的文件是 Ubuntu 分布式版本。

除非您有非常特殊的原因,否则最好坚持使用发行版提供的软件包。更新将通过包管理器系统进行管理,并且应与您的操作系统的其余部分保持同步。

相关内容