CentOS 7: команда «pecl» ничего не делает после установки

Я пытаюсь установить Imagick (расширение ImageMagick PHP), поэтому я следовал инструкциям, все они говорят, что вам нужен PECL, и поэтому следует установить PHP PEAR - yum install php-pear - и некоторые другие вещи, такие как php-devel и gcc, хотя не во всех инструкциях они упоминаются , поэтому я думаю, что это необязательно.

Несмотря на это, я установил связку, а затем выдал команду pecl install imagick: ничего. Выход нулевой. Когда я запускаю pecl: ничего. Если я посмотрю /usr/bin/pecl, он определенно там, но он ничего не делает и не выводит, даже предупреждения.

Я читал сообщения о том, что pecl отвечает предупреждениями, или о том, что CentOS говорит, что он отсутствует, но мой, кажется, присутствует и не выдает предупреждений, так что я могу попробовать? Почему PECL ничего не делает?

Я пытался перезапустить Apache, даже перезагружая систему, и загрузил установку из другого репо (remi), но безрезультатно...


person kasimir    schedule 19.05.2017    source источник
comment
ты используешь php7   -  person Millard    schedule 19.05.2017
comment
Нет, это все еще 5.4.   -  person kasimir    schedule 19.05.2017
comment
Вы должны предпочесть пакет сборке из исходников, поэтому yum install php-pecl-imagick   -  person Remi Collet    schedule 22.05.2017
comment
@RemiCollet: спасибо за подсказку, теперь все работает!! Интересно, что я не вижу упоминаний об установке, как это, ни в одной онлайн-инструкции (а я прочитал довольно много). Не могли бы вы уточнить, почему лучше сделать это так (просто любопытно)? Я хотел попросить вас опубликовать свой ответ, чтобы я мог его принять, но pecl по-прежнему ничего не делает. Я до сих пор не могу понять, почему, поэтому мой первоначальный вопрос остается «без ответа»...   -  person kasimir    schedule 22.05.2017
comment
Сборка из исходников... требует множества пакетов разработки, которые явно нежелательны на рабочем сервере, а использование бинарного пакета проще в поддержке, так как все используют одно и то же расширение. Кстати, понятия не имею о вашей первоначальной проблеме, так как я не могу ее воспроизвести.   -  person Remi Collet    schedule 22.05.2017


Ответы (2)


Хорошо, ответ был в журнале ошибок PHP, который хранился в пользовательском (то есть не по умолчанию) месте, поэтому мне пришлось искать его.

open_basedir restriction in effect

Мне нужно было включить /usr/share/pear в настройку open_basedir в файле php.ini. Без него PHP выдаст ошибку в фоновом режиме и pecl ничего не вернет.

person kasimir    schedule 26.05.2017

Посмотрите журналы ошибок PHP, я нашел там свои проблемы.

Мне нужно было добавить их в директиву open_basedir в php.ini:

open_basedir = /usr/local/lib/php/:/tmp/:/sbin/:/bin/:/usr/sbin/:/usr/bin/:/root/:/usr/local/etc/

Мне также нужно было включить эти функции php, которые я отключил:

ini_get, ini_set, php_uname, popen, chmod, pclose, exec

person kintsukuroi    schedule 30.10.2019