Как я могу узнать, где находится файл httpd.conf?

Как я могу узнать путь к файлу httpd.conf в apache (PHP)? Я не знаю, будет ли мой скрипт запущен в Windows Apache или Linux, мне нужно знать, где я могу найти этот файл, чтобы найти параметр оттуда. Спасибо!

Ответы на вопрос(6)

Если это не такt перечислены в phpinfo (), возможно, используйте

apache_getenv(/* variable */)

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

Посмотрите на начало вывода, который вы получаете из phpinfo (), там показаны основные программы настройки Apache. Так что проще всего сделать тривиальный скрипт php и вызвать его один раз:


Также вы можете напрямую запросить эти настройки. Проверьте документацию!

 user170026214 нояб. 2012 г., 10:58
Хорошо, теперь я пытаюсь избежать этого с помощью URL 'вместо
 arkascha12 нояб. 2012 г., 11:07
Ах, и, очевидно, вы можетесоскрести» эта настройка из вывода HTML, который вы получаете отphpinfo() с помощью простого регулярного выражения.
 user170026212 нояб. 2012 г., 14:14
как я могу получить HTML-текст из phpinfo (); без распечатки?
 arkascha12 нояб. 2012 г., 14:30
$info=file_get_contents('http://localhost/debug/info.php'); или где у вас естьphpinfo() позвонить в сценарий. обратите внимание, что file_get_contents принимает как URL, так и пути к файлам. Не совсем элегантно, но это работает.
 user170026212 нояб. 2012 г., 10:58
Привет, я не могу запросить все настройки, которые отображаются в phpinfo () ;. Как и в разделе apache2handler, есть Root Server, который дает C: /AppServ/Apache2.2, что именно то, что мне нужно. Но ini_get ('Server Root '); ничего не возвращает ..
 arkascha12 нояб. 2012 г., 11:05
Это действительно правильно, вы можете запрашивать только собственные команды / настройки phps. Может быть, вы можете использовать apaches mod_info?httpd.apache.org/docs/current/mod/mod_info.html

если вы используете xampp файл будет находиться в этом каталоге xampp \ apache \ conf

Я думаю, что это не подвергается воздействию 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"     
 lupatus28 авг. 2017 г., 23:22
в основном строчныеv назначен версионному или подробному режиму (но, конечно, такого правила нет), мой ответ содержит заглавные буквыV
 Álvaro González12 нояб. 2012 г., 10:50
Лучший ответ на данный момент. Но там''дополнительные проблемы: 1) Apache может не быть в системе's путь 2) Экземпляр Apache может не использовать значения по умолчанию - честно, я сомневаюсь в этомстоит усилий. Какая бы ни была проблема, должен быть лучший способ ее решения, чем анализ файлов настроек Apache (да,обычно больше одного).
 Jay03 июн. 2018 г., 18:26
В моей системе SERVER_CONFIG_FILE относился к HTTPD_ROOT
 codescribblr24 авг. 2017 г., 03:16
apache2 -V помог мне показать местоположение файла conf. Но apache2 -v фактически показал мне информацию о версии.
 lupatus12 нояб. 2012 г., 11:09
Да, это правда, но если бы я хотел описать, как найти конфигурацию для каждой пользовательской конфигурации, мне пришлось бы написать книгу;) В большинстве случаев это решение должно работать.

httpd -V

Он покажет все настройки компиляции, в середине результатов вы найдете:

Корневой каталог Apache: /usr/local/apacheПуть к файлу конфигурации Apache из корневого каталога:conf/httpd.conf

Apache conf файл:/usr/local/apache/conf/httpd.conf

[email protected] [~]# 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"

Это классический способ найти файл httpd.conf:

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

Также вы можете найти файл, используя файл

locate httpd.conf
 Spencer D23 нояб. 2015 г., 19:14
Спасибо за это. Я попробовал все другие решения в этой теме и пару других, но я продолжал получать"conf/httpd.conf" (относительный путь). С использованиемfind Команда была единственным способом получить абсолютный путь для файла конфигурации.

Ваш ответ на вопрос