Как я говорю Apache который PHP использовать?

Согласно официальной странице сравнения функции, функция веб-аналитики только доступна в Стандарте и Версиях для предприятий. Страница, на которую Вы ссылаетесь также, указывает, что это - функция сервера, не доступная в выпуске Основы.

34
задан 3 March 2017 в 17:22
5 ответов

Я думаю, что все эти ответы на самом деле не отвечают на вопрос. Корневой уровень можно определить, выполнив команду httpd -V . Это покажет вам, с какими опциями был собран демон Apache во время компиляции. Это то, что определяет, где httpd определяет, где искать его конфигурацию. файлы и модули .so по умолчанию.

Например:

% httpd -V
Server version: Apache/2.2.17 (Unix)
Server built:   Dec 17 2010 11:58:24
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.3.12, APR-Util 1.3.9
Compiled using: APR 1.3.12, APR-Util 1.3.9
Architecture:   32-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_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=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Ключевой строкой в ​​этих выходных данных является HTTPD_ROOT . Это определяет, где должен начинаться каталог Apache ROOT , в моем случае / etc / httpd при поиске config. файлы и модули.

ПРИМЕЧАНИЕ. Этот ROOT не то же самое, что DocumentRoot . Этот ROOT зависит от того, как был скомпилирован демон httpd ,

14
ответ дан 28 November 2019 в 19:53

Вы можете найти файлы в вашей системе с помощью команды locate :

# locate libphp5.so

Она напечатает полные пути ко всем файлам с таким именем. У меня есть один по адресу /usr/libexec/apache2/libphp5.so .

4
ответ дан 28 November 2019 в 19:53

Apache должен искать модули в "/ usr / libexec / httpd /". Там вы найдете файл или символическую ссылку под названием «libphp5.so». Если это символическая ссылка, вам нужно будет повторно установить связь с новым 5.2.8 libphp5.so, в противном случае просто скопируйте 5.2.8 libphp5.so в «/ usr / libexec / httpd /» и перезапустите apache с помощью «sudo apachectl restart» .

3
ответ дан 28 November 2019 в 19:53

Родительский каталог модулей, загруженных в httpd.conf (например, libexec / apache2 / libphp5.so ), определяется директивой ServerRoot который по умолчанию обычно установлен на / usr . Я бы не рекомендовал менять это, но кому-то может быть полезно знать, где именно определен этот путь.

На веб-сайте Apache говорится следующее о ServerRoot :

Относительные пути в других директивах конфигурации (например, Включить или LoadModule, например) считаются относительными к этому каталогу.

дополнительно комментарии к файлу httpd.conf по умолчанию гласят:

ServerRoot: верхняя часть дерева каталогов, в которой хранятся файлы конфигурации, ошибок и журнала сервера. .

4
ответ дан 28 November 2019 в 19:53

На одном из серверов у меня были установлены Apache и PHP. Это было установлено предыдущим системным администратором. И Apache, и PHP были созданы из источника. В дополнение к этому был установлен PHP по умолчанию. Итак, чтобы узнать, какой PHP используется Apache. Я запускаю следующую команду

   <Install Dir of PHP>/bin/php -i | grep apxs

Это дало мне путь к apache apxs

  APACHE_HOME/bin/apxs

Это дало мне информацию о том, какой Apache используется этим php. Когда я набрал

#php -i | grep apxs 

 Failed loading opcache.so:  opcache.so: cannot open shared object file: No    such file or directory PHP Warning:  PHP Startup: Unable to load dynamic library     '<PHP_HOME>/lib/php/extensions/debug-non-zts-20121212/memcached.so' - <PHP_HOME>/lib/php/extensions/debug-non-zts-20121212/memcached.so: undefined symbol: OnUpdateLongGEZero in Unknown on line 0

, php по умолчанию выдал ошибку. Таким образом, я смог определить php, используемый Apache.

0
ответ дан 28 November 2019 в 19:53

Теги

Похожие вопросы