AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 430974
Accepted
ajsie
ajsie
Asked: 2010-04-03 07:22:06 +0800 CST2010-04-03 07:22:06 +0800 CST 2010-04-03 07:22:06 +0800 CST

Ubuntu Apache:httpd.conf 还是 apache2.conf?

  • 772

我应该使用这两个文件中的哪一个来配置 Apache?

httpd.conf是空的,而apache2.conf不是。

这让我很困惑!

apache-2.2
  • 8 8 个回答
  • 90823 Views

8 个回答

  • Voted
  1. Best Answer
    Rob Di Marco
    2010-04-03T07:28:10+08:002010-04-03T07:28:10+08:00

    httpd.conf 是为用户配置而设计的。你真的不应该编辑 apache2.conf,因为它可能会被未来的升级更新。

    另一个选项是将您的自定义配置放入 /etc/apache2/conf.d,该目录中的所有文件也包括在内。

    • 48
  2. Powerlord
    2010-04-03T07:44:29+08:002010-04-03T07:44:29+08:00

    这些不是您唯一的选择。在 Ubuntu/Debian 上,Apache 还处理中的所有文件/etc/apache2/sites-enabled/(它们应该是目录中文件的符号链接sites-available/,由a2ensite和a2dissite程序管理)

    您打算将这些目录用于VirtualHosts。

    • 22
  3. Alexander T
    2010-04-03T07:28:19+08:002010-04-03T07:28:19+08:00

    apache2.conf 包括 httpd.conf:

    a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
    Include /etc/apache2/httpd.conf
    

    我认为 httpd.conf 已被弃用,但只是留在那里供保守人士使用,以便他们找到解决方法...:)

    编辑:

    阅读 Rob 的回答后,我做了一个更好的 grep:

    a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
    # Include all the user configurations:
    Include /etc/apache2/httpd.conf
    

    用户配置是...

    • 6
  4. Michael Hampton
    2017-03-24T17:23:08+08:002017-03-24T17:23:08+08:00

    Apache 软件基金会发布了许多软件,其中之一是名为httpd. httpd 项目源包括一个httpd.conf示例配置文件,默认安装在/usr/local/etc/httpd或中/etc/httpd。您会发现 httpd 在大多数系统上都是这样命名的。

    然而,很久很久以前,Debian GNU/Linux 发行版中的某个人决定将该发行版中的软件名称httpd从apache2. 因此,在 Debian 系统上,您会apache2.conf在名为/etc/apache2. 我不知道是谁这样做的,也不知道为什么这样做,但这是一个常年引起混淆的根源,就像将 Windows 称为“Microsoft”或将 ESXi 称为“VMware”一样。基于 Debian 的发行版,例如 Ubuntu,继承了这种奇怪之处。更奇怪的是,他们随后包含一个文件/etc/apache2/httpd.conf,用户可以Include从中apache2.conf放置自定义配置。

    所以答案是,如果您使用的是基于 Debian 的系统,您会竭尽全力按照 Debian 希望您做的方式做事。否则,您通常会像上游 httpd 项目那样以正常方式做事。

    • 4
  5. B. Shea
    2016-03-15T14:29:16+08:002016-03-15T14:29:16+08:00

    Apache 2.4(在 Debian/Ubuntu 下)

    对于配置/覆盖(不一定是新站点):

    将一个新的配置文件放在/etc/apache2/conf-available/{name}.conf.

    sudo a2enconf {name}使用或启用/禁用您的新配置sudo a2disconf {name}。

    这些指令也可以覆盖httpd.conf或apache2.conf作为用户添加的任何其他配置文件在主配置之后最后读入。

    重新启动apache2服务以反映更改。

    对于站点(以及任何站点特定的配置覆盖):

    将新站点文件放入/etc/apache2/sites-available/{name}.conf

    sudo a2ensite {name}使用或启用/禁用您的站点配置sudo a2dissite {name}。

    重新启动apache2服务以反映更改。


    不要使用:

    httpd.conf在某些 Linux 发行版上仍作为主配置文件安装。在其他人身上,你不应该再看到它了——如果你看到了,如果你想通过包管理器干净地/轻松地升级 Apache,请将它留空。

    apache2.conf仍然安装在许多系统上,并用作 Debian/Ubuntu 的主要配置文件。但是,如果您希望干净/轻松地升级 Apache,请不要管它。您应该include会在该文件底部附近看到一些关于站点和自定义配置的声明。
    改用它们!

    根据 Linux 发行版,可以通过 Linux 包管理器安装这些文件中的一个或两个。这是不去碰它们的一个很好的理由,因为它们可能会在未来的系统升级过程中被意外覆盖。

    您可能会在“全局” Apache2 配置文件中看到的任何内容都可以按照上述方式在您的自定义配置下添加/覆盖。您也可以自己使用include语句来进一步自定义。示例:您可以在特定自定义include文件中的某些/所有站点上包含所需的其他 SSL 指令。您只需根据需要将此 include 语句添加到所有虚拟站点配置中。

    更多(Debian/Ubuntu):https ://stackoverflow.com/a/11687212/503621

    • 3
  6. Pascal MARTIN
    2010-04-03T07:27:52+08:002010-04-03T07:27:52+08:00

    如果apache2.conf不是空的,并且httpd.conf是空的,你应该使用apache2.conf;-)

    但我想其中一个包含另一个(其中一个纯粹是出于向后兼容性的原因而保留的) ——因此,它应该不会有太大变化。


    尽管如此,如果你想添加一些东西,比如一个新的VirtualHost:没有另一个子目录,你可以在其中放置你的文件,并包含它吗?

    这可能是一个更好的解决方案:您不会修改默认文件——这会简化更新。

    • 0
  7. kazi Tanvir Ahsan
    2017-03-24T17:12:50+08:002017-03-24T17:12:50+08:00

    直接打开apache2.conf看看内容:

    Include /etc/apache2/mod-enabled/*.conf
    Include /etc/apache2/httpd.conf
    

    因此,如果您想包含自己的配置,请将其添加到 httpd.conf,apache2.conf 会自动获取它。

    正如其他人所说,apache2.conf 可以由机器生成,最好不要碰它。

    更多信息,一般Ubuntu使用apache2.conf,Centos使用httpd.conf。因此,所有这些文件都取决于您拥有的操作系​​统。

    • 0
  8. Ray Tatooine
    2016-12-27T10:32:52+08:002016-12-27T10:32:52+08:00

    要查找配置文件的名称和位置,您必须:

    1) 在调用进程时搜索,在本例中使用 apache 用户:

    ps -ef | grep apache
    

    (在这个例子中,返回httpd:)

    2)显示二进制文件使用的变量:

    httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'
    

    提取和截图在:http ://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

    • -2

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve