rhel6 + php56u (от ius) + mcrypt

Я пытаюсь настроить новую среду разработки для соответствия производственной системе, работающей на PHP 5.4 на RHEL 6.5. Поскольку PHP 5.4 - это EOL, и поскольку я не мог понять, какая волшебная комбинация репозиториев была необходима для установки PHP 5.4 на моем новом сервере разработки RHEL, я решил перейти на PHP 5.6 на сервере разработки. Мне удалось установить 5.6 и ввести свой проект Laravel 4.1, но когда я загрузил его в свой браузер, я получил следующее: Mcrypt PHP extension required. Я подтвердил, что php56u-mcrypt-5.6.14-1.ius.el6.x86_64 пакет установлен; Я подтвердил, что /etc/php.d/20-mcrypt.ini загружает расширение; Я подтвердил, что php -m | grep mcrypt показывает, что модуль загружен; Я подтвердил, что php -i | grep mcrypt показывает, что /etc/php.d/20-mcrypt.ini на самом деле загружается и mcrypt support регистрируется как enabled; Я перезагружал Apache больше раз, чем помню; и я даже убедился, что /usr/lib64/php/modules/mcrypt.so существует. Странно то, что я НЕ получаю это сообщение при попытке запустить команды композитора, которые, кажется, распространены в других местах.

Это оставляет меня в работающем виде установки mcrypt в командной строке, но не через Apache, что говорит о том, что проблема есть, а не с моей установкой mcrypt per se. Но файл конфигурации apache, который я использую на моем новом тестовом сервере, ничем не отличается от того, который используется на моем рабочем сервере (спасибо, Puppet!), И у меня никогда не было этой проблемы на рабочем сервере. Я в тупике. Какие-либо предложения?

1 ответ

Цифры я бы нашел ответ после сна на нем. Как оказалось, я запускал две разные версии PHP, хотя установил только одну. Я обнаружил это, создав страницу для показа phpinfo() в браузере и сравнивая с выводом консоли для php -v: браузер показал PHP 5.4.x, а CLI - 5.6.x. Мой марионеточный конфиг был немного другим (из-за установки другой версии PHP), и я не установил libphp5.so а также libphp5-zts.so модули правильно (они были скопированы из более старой установки). Поэтому Apache использовал эти модули, а затем пожаловался на то, что mcrypt для php 5.4 не был установлен, что было правильно. Но так как версия CLI была 5.6, и mcrypt был там правильно установлен, программы на CLI, такие как artisan, работали просто отлично. Решение, в моем случае, было запустить yum reinstall php56u чтобы получить эти правильно версии модулей на месте. Как только я это сделал, apache и CLI оказались на одной странице, и мое приложение начало работать.

Другие вопросы по тегам