У меня есть ext-fileinfo, но Composer говорит, что он отсутствует

Я пытаюсь установить пакет Laravel Intervention Image, и когда я запускаю composer update:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - intervention/image 2.0.5 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.4 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.3 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.1 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - intervention/image 2.0.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - Installation request for intervention/image 2.* -> satisfiable by intervention/image[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].

У меня php 5.4 и расширение включено в php.ini, а в phpinfo():

                    fileinfo

fileinfo support                  enabled
version                           1.0.5

и перезапустил apache ... но все равно не повезло.


person Webinan    schedule 20.07.2014    source источник


Ответы (9)


Пользователи Windows: просто отредактируйте php.ini и раскомментируйте эту строку:

extension=php_fileinfo.dll

Не забудьте перезапустить Apache, чтобы новый файл php.ini вступил в силу.

person vivek    schedule 09.12.2015
comment
Идеально подходит для IIS. - person Yevgeniy Afanasyev; 09.09.2017
comment
У меня возникли проблемы с использованием инструментов PHP для Visual Studio. Я решил это, используя Process Monitor во время запуска Composer внутри Visual Studio. (Установите новые пакеты Composer…). Я выяснил, какой PHP.EXE на самом деле запускается и, в свою очередь, какой PHP.INI фактически используется вызовом Composer. После добавления расширения к правильному PHP.INI запуск Composer завершился успешно. - person Uwe Keim; 07.09.2019

По-видимому, это связано с тем, что существуют отдельные php.ini файлы для web / apache и CLI, и поскольку композитор использует CLI, а phpinfo () использует основной php.ini, возникает проблема.

Если вы запускаете php -m в интерфейсе командной строки и не видите имени модуля, вы должны найти интерфейс командной строки php.ini (в моем случае php-cli.ini и добавить расширение. Например, extension=php_fileinfo.dll

person Webinan    schedule 20.07.2014
comment
Я добавил строку в свой php-cli.ini, но проблема не исчезла после перезапуска сервера. Я раскомментировал строку в каждом файле php.ini. По-прежнему не повезло. - person americanknight; 24.12.2014
comment
@americanknight, отображается ли имя модуля при запуске php-m? - person Webinan; 24.12.2014
comment
Нет, его нет в списке. Я использую UniServer 11.6 в Windows 7. - person americanknight; 26.12.2014
comment
Не удалось найти файл php-cli.ini. Где он расположен? - person Ali insan Soyaslan; 17.05.2015
comment
введите php --ini, чтобы узнать, какой ini-файл используется php - person IdontCareAboutReputationPoints; 10.02.2017

У меня точно такая же проблема. Исправлено.
вы также можете раскомментировать эту строку

extension=php_fileinfo.dll  

в следующих файлах:

  1. php.ini-development
  2. php.ini-production

Пожалуйста, не забудьте restart ваш Apache.
Надеюсь, это поможет.

person user3345994    schedule 24.01.2016

Для меня все было по-другому, используя php 7.4.x и Windows 10.

Я проверил, какой php.ini файл используется PHP в режиме CLI с php --ini.

Он показал C:\php7\php.ini - там, где я ранее разархивировал PHP (а также указал туда Composer).

Затем мне нужно было раскомментировать extension=fileinfo этот файл.

person flow3r    schedule 18.11.2020

В зависимости от вашей платформы может быть больше php.ini, если вы используете Wamp, их два:

  • wamp \ bin \ php \ php5.4.3 \ php.ini
  • вамп \ bin \ apache \ Apache2.4.4 \ bin \ php.ini

Убедитесь, что расширение не используется в обоих, а затем снова перезапустите apache.

person peter.babic    schedule 20.07.2014
comment
У меня нет php.ini в моем C: \ Bitnami \ wampstack-5.5.27-0 \ apache2 \ bin. Также в phpinfo () написано C: \ Bitnami \ wampstack-5.5.27-0 \ php \ php.ini. В этом файле у меня раскомментировано расширение, но проблема не устранена. Вы хоть представляете, в чем может быть проблема? - person Mr. Phil; 03.10.2015

В Windows мне пришлось добавить строку extension=php_fileinfo.dll в свой файл php.ini

person TomKo1    schedule 06.01.2019

У меня точно такая же проблема. Исправлено переходом в папку wamp/bin и поиском .ini. Вы найдете несколько php.ini файлов.

Отредактируйте строку extension=php_fileinfo.dll во всех из них, удалив; по просьбе каждого. Перезапустите WAMP, введите php -m в командной строке, чтобы проверить, есть ли сейчас fileinfo.

Должно сработать.

person Charles Hasse    schedule 23.12.2015

Раскомментируйте extension = php_fileinfo.dll в файлах конфигурации php ini (php.ini-development при необходимости). А затем, если вы используете XAMPP, используйте оболочку apache. Его можно загрузить из панели управления XAMPP, запустите php -m, чтобы убедиться, что расширение загружено. Затем запустите установку композитора.

person tjrtmonline    schedule 12.07.2017

Если кому-то интересно, как это сделать в cpanel (на основе Linux), просто выполните поиск, выберите версию php в поле поиска и нажмите на нее, и на следующем экране вы увидите свою текущую версию php, а затем вы увидите много флажков с некоторыми значениями, так что теперь вы можете проверить phpinfo и нажать «Сохранить», чтобы избежать ошибки композитора.

person DEEPAK    schedule 19.07.2019
comment
Спасибо, но в моей CPanel нет такой страницы для проверки :( - person Malus Jan; 09.10.2019
comment
У вас должна быть опция поиска над поиском php, вы выберете версию php там, если вы ее не найдете, то какую версию cpanel вы используете? - person DEEPAK; 10.10.2019
comment
Не могу найти. CPanel 82.0.16 - person Malus Jan; 10.10.2019
comment
У меня есть 2 сайта на CPanel. Один из них имеет часть расширения, но я не могу определить по интерфейсу версию php для каждого поддомена, поэтому я определил ее в файле .htaccess. другая версия CPanel, которую я вам отправил, не имеет расширения, но я могу определить по интерфейсу версию PHP для каждого поддомена без кодирования. Поэтому для первого случая я прошу провайдера активировать расширение, которое я хочу, и он это сделал. - person Malus Jan; 11.10.2019