13

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

4

6 回答 6

27

我认为它没有暴露于 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

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

于 2012-11-12T09:44:13.940 回答
16

这是定位 httpd.conf 文件的经典方法:

# find / -name 'httpd.conf' -print

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

locate httpd.conf
于 2013-11-14T09:06:36.487 回答
4

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

<?php phpinfo(); ?>

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

于 2012-11-12T09:35:07.097 回答
4

httpd -V

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

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

阿帕奇配置文件:/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"

于 2014-03-10T04:12:47.683 回答
0

如果它没有在 phpinfo() 中列出,也许使用

apache_getenv(/* variable */)

http://www.php.net/manual/en/function.apache-getenv.php

于 2012-11-12T09:38:57.020 回答
0

如果您使用的是 xampp,该文件将位于此目录 xampp\apache\conf

于 2012-11-12T09:38:31.033 回答