Веб-приложение, которое я пытаюсь установить на свой ubuntu 10.04 LTS, требует mcrypt и выдает следующую ошибку: Неустранимая ошибка: вызов неопределенной функции mcrypt_module_open (). Я знаю, что это тот же вопрос, что и этот: Установлен php-mcrypt, но он не отображается в phpinfo (), но я попробовал несколько вещей, ни одна из которых не сработала, и у меня возникли дополнительные вопросы. Я бы прокомментировал исходную ветку, но у меня недостаточно репутации для этого; простите за повторяющийся вопрос.
Мои версии php и mcrypt (обе установлены через apt-get):
php: 5.3.2-1ubuntu4.10
mcrypt: 5.3.2-0ubuntu
Делая php -m
показывает, что mcrypt
модуль установлен. Я установил mcrypt
и php5-mcrypt
через apt-get
.
Кроме того, я использую nginx
как мой веб-сервер. Я попытался переустановить mcrypt и перезапустить nginx, но все еще не могу заставить mcrypt отображаться в phpinfo (), а вызовы mcrypt все еще не работают.
Вот еще немного информации:
$ php -i | grep "mcrypt"
/etc/php5/cli/conf.d/mcrypt.ini,
mcrypt
mcrypt support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
Я также проверил, что mcrypt включен в /etc/php5/cli/conf.d/mcrypt.ini
и /etc/php5/cgi/conf.d/mcrypt.ini
.
Наконец, я использую fastCGI с nginx. Я погуглил и увидел предложения перезапустить php5-fpm. Мне не удалось найти php5-fpm в apt-get, я не уверен, нужен ли мне php5-fpm, поскольку у меня уже есть fastCGI.
Что еще мне не хватает?
PHP-FPM - это менеджер процессов fastcgi (или что-то в этом роде); это распространенный способ поддерживать процессы PHP в рабочем состоянии при перезапуске nginx.
Из командной строки ps aux
покажет вам, что работает; если это частный / тестовый сервер, sudo kill <process id>
на всем, что содержит PHP в имени, пока все старые процессы не умрут (или, как было сказано выше, перезагрузите весь ящик); если это публичный / живой сервер, возможно, вы не захотите быть таким безрассудным ...
Также, /etc/php5/cli/conf.d/mcrypt.ini
-- что о /etc/php/cgi/...
если это существует?