Я использую Apache2 на Mac OS X (10.5) . Я только что скомпилировал PHP 5.2.8 и наконец заработал pdo-mysql
(или я так думаю).
Эта терминальная команда:
php --version
показывает 5.2.8, и у меня установлены правильные модули.
Но когда я это делаю phpinfo()
, Apache выгружает PHP 5.2.6 (моя более ранняя версия, без pdo_mysql
).
Как мне сказать Apache, какой PHP загрузить? httpd.conf
Имеет следующую строку:
LoadModule php5_module libexec/apache2/libphp5.so
Но я не знаю, что или где это.
Это то, что я должен изменить?
php
apache-2.2
pdo
Сэм Макафи
источник
источник
Ответы:
Я думаю, что все эти ответы на самом деле не отвечают на вопрос. Корневой уровень можно определить, выполнив команду
httpd -V
. Это покажет вам, с какими опциями был построен демон Apache во время компиляции. Это то, что контролирует, гдеhttpd
определяет, где искать его конфигурацию. файлы и .so модули по умолчанию.Например:
Ключевая строка в этом выводе -
HTTPD_ROOT
. Это определяет, гдеROOT
каталог Apache должен начинаться,/etc/httpd
в моем случае, при поиске конфигурации. файлы и модули.ПРИМЕЧАНИЕ: это
ROOT
не то же самое, чтоDocumentRoot
. ЭтоROOT
зависит от того, какhttpd
демон был скомпилирован, иDocumentRoot
для указания того, гдеhttpd
демон должен начать поиск реального веб-содержимого (файлов .html и т. Д.).Для моего
httpd.conf
файла у меня есть следующие строки загрузки:Учитывая это, полный путь к вашим модулям будет, например:
Это из системы CentOS 5.x , но метод все еще уместен.
Кстати, это может немного запутать, потому что в случае CentOS файлы организованы здесь физически:
... и затем доступен для демона Apache
httpd
по следующему пути:В
modules
ссылке подключает/etc/httpd
->/usr/lib/httpd/modules
.источник
Вы можете найти файлы в вашей системе с помощью
locate
команды:Он напечатает полные пути всех файлов с этим именем. У меня есть один на
/usr/libexec/apache2/libphp5.so
.источник
Родительский каталог модулей, загруженных в httpd.conf (например,:),
libexec/apache2/libphp5.so
определяетсяServerRoot
директивой, которая по умолчанию обычно устанавливается в/usr
. Я бы не рекомендовал менять это, но кому-то может быть полезно знать, где именно этот путь определен.На веб-сайте Apache говорится о ServerRoot :
дополнительно по умолчанию комментарии к файлу httpd.conf гласят:
ServerRoot: верхняя часть дерева каталогов, в которой хранятся файлы конфигурации, ошибок и журналов сервера.
источник
Apache должен искать модули в "/ usr / libexec / httpd /". Там вы найдете файл или символическую ссылку с именем "libphp5.so". Если это символическая ссылка, вам нужно будет вернуться к новой версии 5.2.8 libphp5.so, в противном случае просто скопируйте 5.2.8 libphp5.so в «/ usr / libexec / httpd /» и перезапустите apache с помощью «sudo apachectl restart» ,
источник
У меня был установлен Apache и PHP на одном из серверов. Это было установлено предыдущим системным администратором. И Apache, и PHP были собраны из исходного кода. В дополнение к этому был установлен PHP по умолчанию. Итак, чтобы узнать, какой PHP используется Apache. Я запускаю команду ниже
Это дало мне путь к apache apxs
Это дало мне информацию о том, какой Apache используется этим php. PHP по умолчанию дал ошибку, когда я набрал
Таким образом, я смог выяснить php, используемый Apache.
источник