PHP расширения не загружаются в phpinfo

Итак, я запускаю MAMP на Mountain Lion и установил gmagick и imagick с использованием pecl, оба являются подходящими кандидатами (в основном потому, что gmagick не имеет стабильного выпуска, а imagick 3.0.0 не устанавливается, выдает ошибку make).). Модули появляются, когда я запускаю php -i в терминале, но не в phpinfo(), я проверил php.ini, он одинаков для обоих, так что это не проблема. Однако я установил bitset(который является стабильным выпуском)) и он появляется в phpinfo () и php -i. Поэтому мой вопрос: есть ли в PHP какой-либо параметр конфигурации, который не загружает расширения, если они нестабильны? Кстати, я перезапустил свой сервер после внесения изменений в INI-файл.

4 ответа

Вероятно, теперь у вас будет две установки php на вашем компьютере. Mountain Lion поставляется с предустановленной версией php. Пытатьсяlocate php.ini в терминале, чтобы узнать, сколько php.inis установлено.

На вашей странице phpinfo() также указано, какой php.ini используется. Возможно, вы захотите открыть именно тот php.ini, который используется для вашего phpinfo() и убедиться, что расширения загружены. Там должно быть две строки, как extension=/path/to/gemagicext/gmagic.so extension=/path/to/imagick/imagick.so

Я столкнулся с подобной проблемой с php-fpm и nginx сервером. Проблема была связана с тем, что обновленная конфигурация php не была отражена в текущих активных рабочих процессах php-fpm. Я должен вручную убить процесс fpm и перезапустить его снова, чтобы получить обновленную информацию о расширениях.

Шаги, которые работали для меня:

1) Ищите активный процесс php-fpm

 ps ax | grep "fpm"

в основном это перечислит более одного процесса

2) убить процесс вручную

kill -9 [pid_got_from_previous_command]

3) перезапустить процесс php-fpm

sudo service php5-fpm start

Примечание: пробовать что-то вроде sudo service php-fpm reload или же sudo service php-fpm restart не работал, так как старые дочерние процессы сохранили старую конфигурацию. Убить активные процессы и перезапустить php fpm, что обновило phpinfo для меня.

У меня была такая же проблема CentOS 6.6 x64, php 5.5.27, и я следовал инструкциям http://php.net/manual/en/imagick.installation.php

Прежде всего, загрузите tar-образ установки ImageMagick отсюда: sourceforge.net/projects/imagemagick/files/

Распакуйте его и затем из терминала выполните следующие команды:

1.  "cd ImageMagick-6.9.1-10" - go where you placed the folder
2.  ./configure
3.  make
4.  make install
5. make check
6. install imagick extension from pecl.php.net/package/imagick/download 3.1.2
7. cd imagick-3.1.2
8. phpize
9. ./configure --with-imagick=/opt/local
10. make
11. make install
12. Copy imagick.so in your PHP extensions folder and add extension=imagick.so in php.ini

Перезапустите apache: перезапустите службу httpd

Я уверен, что эта проблема связана с вашим расширением и совместимостью с PHP-сервером. Я столкнулся с такими проблемами, когда создал свои собственные расширения. Ваше расширение должно быть совместимо с вашим сервером PHP в трех основных атрибутах:

1. Номер Zend API, с которым настроен ваш PHP-сервер (в phpinfo() вы можете найти этот номер), этот номер должен совпадать с вашим заголовочным файлом расширения во время сборки.

2. Версия компилятора на вашем PHP-сервере и ваше расширение должны совпадать.

3- Потокобезопасность в вашем PHP-сервере важна. Если вы используете потокобезопасный сервер, то ваше расширение должно быть построено с поточно-ориентированной библиотекой php, а если вы используете не потокобезопасный сервер, вы должны собрать свое расширение с библиотекой PHP-nts.

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