如何找到httpd.conf文件的位置?

use*_*262 10 php apache

如何在apache(PHP)上找到httpd.conf文件的路径?我不知道我的脚本是否会在windows apache或linux中运行,我需要知道在哪里可以找到这个文件,以便从那里找到一个参数.谢谢!

lup*_*tus 26

我认为它没有暴露给PHP.httpd -V在终端运行,你会在那里找到它(命令名称取决于你的系统/ apache版本,它也可以apache -V):

bash-3.2# httpd -V
Server version: Apache/2.2.22 (Unix)
Server built:   Aug 24 2012 17:16:58
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"     <-- HERE IT IS
Run Code Online (Sandbox Code Playgroud)

但是如果你只想知道某些配置变量的值那么phpinfo(),getenv()或者apache_getenv()应该就够了

  • 迄今为止最好的答案。但还有其他问题:1)Apache 可能不在系统路径中 2)Apache 实例可能没有使用默认值——老实说,我怀疑这是否值得付出努力。无论问题是什么,都必须有一种比解析 Apache 设置文件更好的方法来解决它(是的,通常有多个)。 (2认同)

Gan*_*tra 13

这是查找httpd.conf文件的经典方法:

# find / -name 'httpd.conf' -print
Run Code Online (Sandbox Code Playgroud)

您也可以使用文件定位文件

locate httpd.conf
Run Code Online (Sandbox Code Playgroud)


小智 6

httpd-V

它将显示所有编译设置,在结果中间您会发现:

  • Apache根目录: /usr/local/apache
  • Apache配置文件从根目录的路径:conf/httpd.conf

Apache 配置文件:/usr/local/apache/conf/httpd.conf

root@host [~]# httpd -V Server version: Apache/2.4.16 (Unix) Server built: Dec 15 2015 10:01:02 Cpanel::Easy::Apache v3.32.6 rev9999 Server's Module Magic Number: ... Server loaded: APR 1.5.2, APR-UTIL 1.5.4 Compiled using: APR 1.5.2, APR-UTIL 1.5.4 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses disabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/usr/local/apache" -D __SUEXEC_BIN="/usr/local/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"


ark*_*cha 4

查看从 phpinfo() 获得的输出的开头,那里显示了基本的 apache 配置文件。最简单的方法是制作一个简单的 php 脚本并调用一次:

<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)

同样你也可以直接查询这些设置。检查文档!