如何在 apache (PHP) 上找到 httpd.conf 文件的路径?我不知道我的脚本是否会在 windows apache 或 linux 中运行,我需要知道在哪里可以找到这个文件以便从那里找到参数。谢谢!
6 回答
我认为它没有暴露于 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()
应该足够了
这是定位 httpd.conf 文件的经典方法:
# find / -name 'httpd.conf' -print
您也可以使用文件定位文件
locate httpd.conf
查看从 phpinfo() 获得的输出的开头,那里显示了基本的 apache 配置文件。最简单的方法是制作一个简单的 php 脚本并调用一次:
<?php phpinfo(); ?>
同样,您也可以直接查询这些设置。检查文档!
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"
如果它没有在 phpinfo() 中列出,也许使用
apache_getenv(/* variable */)
如果您使用的是 xampp,该文件将位于此目录 xampp\apache\conf