Я работаю с сервером под управлением Debian 7.4, и в настоящее время на нем работают PHP 5.5.12 и Apache 2.2.22. Я пытаюсь перейти на Apache 2.4.9, чтобы включить Perfect Forward Secrecy.
Я загрузил Apache 2.4.9 в качестве исходного кода и успешно скомпилировал его со следующими флагами:
./configure --enable-so --with-included-apr --with-pcre --with-ldap --with-perl
Я также загрузил PHP 5.5.12 в качестве исходного кода и скомпилировал с этими флагами:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql=mysqlnd --with-openssl --with-gd --with-zlib --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --enable-mbstring --with-iconv --with-litespeed --with-ldap --with-mcrypt
Я выполнил все необходимые настройки (httpd.conf и т.д.) для Apache 2.4, чтобы включить Perfect Forward Secrecy и включить все необходимые модули (я думаю). Я намеренно установил Apache 2.4 в каталог, отличный от Apache 2.2, чтобы я мог выключить Apache 2.2 и запустить Apache 2.4 (это производственный сервер, не может позволить себе простой). Когда я запускаю Apache 2.4, все работает отлично, кроме подключения к серверу LDAP с помощью PHP. Ошибок не возникает, просто не работает; это как будто время истекло. Странно то, что когда я снова переключаюсь на Apache 2.2, LDAP в PHP работает нормально. Кто-нибудь знает, почему это может происходить?
В итоге я решил это сам. На самом деле проблема заключалась в разрешениях на файлы / папки; У меня есть сценарий, который использует взлом exec () для проверки связи с несколькими серверами LDAP, и функция проверки связи не смогла записать в папку tmp. LDAP все время работал нормально, это и было источником проблемы.