Я получаю это сообщение:
configure: error: Invalid Apache directory - unable to find httpd.h under /usr/lib64/httpd/
после выполнения следующей команды:
./configure --with-apache=/usr/lib64/httpd/
Я не знаю, где DIR верхнего уровня на моем уже установленном апаче. Апачский сервис уже установлен на моем сервере CentOS 6.5 от использования репозитория yum install httpd
.
Это окончательное решение моего вопроса:
Установка пакета httpd-devel из репозитория yum install httpd-devel
, в который включены заголовки apache.
Настройка php с apxs2: ./ configure --with-apxs
.
И последний шаг - это добавление следующих строк в VirtualHost в файл httpd.conf (или во включенный .conf files):
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Если ваш apache уже собран и настроен, вам следует скомпилировать PHP как общий модуль, а не как статический.
Накладные расходы немного выше, но вы сможете обновить каждый компонент отдельно.
Пример настройки:
$ ./configure --with-apxs=<path to apxs binary in apache/http bindir>
Забыл одну вещь: ваш apache должен быть скомпилирован с включенным mod_so, чтобы использовать динамические модули, созданные с помощью apxs
Если вы хотите скомпилировать что-то для apache - на этот раз , php -, для этого вам нужны заголовки apache. Это что-то вроде "apache-dev" или "apache2-devel" или "libapache2-devel" или пакет с аналогичным именем. Этот пакет необходимо установить.
Этот пакет разработки будет содержать двоичный файл apxs, который, вероятно, будет автоматически найден скриптами конфигурации php.
РАСШИРЕНИЕ:
Во-вторых, внимательно прочтите вывод ./ configure --help
исходного кода php. Насколько я помню, как будто была какая-то разница между флагами - with-apache
, - with-apache2
или - with-apxs
. Вы уверены, что случайно не скомпилируете apache1?
РАСШИРЕНИЕ №2: Возможно, вы могли бы также получить исходный php-пакет вашего дистрибутива, по крайней мере, чтобы узнать, как происходит (пере) компиляция.