Требует ext-fileinfo. Как добавить это в мой файл composer.json?
Я пытаюсь установить интервенцию/изображение. После выполнения обновления для композитора я получаю это
![enter image description here]()
это мой файл-композитор
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.1.*",
"intervention/image": "2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Ответы
Ответ 1
Ничего общего с вашим композитором .json.
Вам необходимо установить и включить расширение FileInfo PHP, которое устанавливается по умолчанию, начиная с PHP 5.3.0. Версии до 5.3+ могут использовать прекращенное расширение PECL.
Чтобы включить расширение FileInfo, вам нужно отредактировать php.ini и изменить одну строку.
-
Найдите строку:
;extension=php_fileinfo.dll
-
Удалите начальный комментарий:
extension=php_fileinfo.dll
Чтобы узнать, где находится ваш php.ini, вы можете запустить следующую команду с терминала:
$ php --ini
и найдите "Загруженный файл конфигурации".
Обратите внимание на, что PHP CLI может загружать другой файл php.ini, чем веб, поэтому не полагайтесь на путь, указанный в phpinfo()
. Выполните команду, указанную выше в терминале, чтобы узнать файл, загруженный PHP CLI.
Ответ 2
Нам не нужно ничего делать в composer.json
Окна
Включить расширение fileinfo в php.ini
extension= php_fileinfo.dll
В Linux
1) Загрузите и распакуйте пакет
tar -zxf Fileinfo-1.0.4.tgz
cd Fileinfo-1.0.4
2) Создайте расширение для компиляции
phpize
3) Настройте модуль
./Configure
4) создать файлы установки и установить его
сделать
make install
5) Теперь расширение будет доступно в каталоге /usr/lib 64/php/modules. Теперь вам нужно добавить расширение где-нибудь в файле конфигурации php.
Измените /etc/php.ini и добавьте следующее:
расширение = fileinfo.so
6) Сохраните файл и перезапустите веб-сервер
служба httpd restart
Чтобы убедиться, что модуль fileinfo включен правильно, выполните:
php -i | grep fileinfo
поддержка fileinfo = > включена
Альтернативный метод
Просто FYI, модуль также может быть установлен с помощью команды PECL i.e.
pecl install fileinfo
После этого просто выполните шаги 5 и 6, упомянутые выше, чтобы включить его. Вот оно.
Ответ 3
Если кто-то еще находится на DreamHost (например, мне) или обнаруживает, что изменения php.ini не делают то, что вы хотите, вы можете попробовать другой маршрут.
Здесь страница Wiki DreamHost на PHP.ini, но я также перечислим следующие шаги.
Шаг 1. Создайте файл конфигурации PHP (phprc)
- В домашней папке пользователя (
/home/your_user_name
) создайте новую папку с именем .php
(обратите внимание на начальный период)
- В этой новой папке создайте еще одну папку на основе версии PHP, которую вы используете. Вы можете найти это (и изменить его) на панели хостинга (DreamHost находится в panel.dreamhost.com в разделе Домены > Управление доменами). Поэтому, если вы используете PHP версии 5.6, создайте папку с именем
5.6
.
- В этой новой папке создайте новый файл с именем
phprc
(без расширения). Если в этой папке уже есть файл phprc
, вы можете создать резервную копию, изменив имя файла на phprc.old
.
Шаг 2: Изменить phprc
, чтобы включить расширение
- Откройте новый
phprc
файл.
- Добавьте эту строку в конец:
extension = fileinfo.so
- Сохранить файл
Шаг 3: Перезапустите PHP и/или ваш веб-сервер
Через панель
Если у вас есть общий хостинг или вам не нравится SSH или командная строка, вы можете заставить DreamHost забрать новые настройки phprc
.
- Вернитесь к Panel и перейдите в раздел Домены > Управление доменами.
- Нажмите
Edit
рядом с доменом, над которым вы работаете.
- Не вносите никаких изменений здесь. Просто прокрутите вниз и нажмите
в нижней части первого раздела.
- В течение примерно 10 минут DreamHost потянет ваши изменения.
- Если вы не видите обновления через 10 минут (будьте терпеливы!), обратитесь в службу поддержки за помощью.
Через SSH
Если вам удобно использовать командную строку (и вы не используете общий хостинг), SSH на свой сервер и выполните следующие команды:
Для веб-серверов Apache
sudo /etc/init.d/httpd2 restart
Для веб-серверов Nginx
sudo /etc/init.d/nginx stop
pkill -9 php
sudo /etc/init.d/nginx start
Ваши конкретные команды могут быть немного разными, но если вам нравится CLI, вы, вероятно, знаете свою конкретную команду.
Ответ 4
Для людей с WAMP
Щелкните левой кнопкой мыши по значку в трее → PHP → Расширение PHP → php_fileinfo
Он перезапустит ваш сервер, и все будет готово.
Если это не сработает, попробуйте отредактировать php.ini внутри:
C:\wamp\bin\php\php5.4.12
(последняя часть зависит от вашей версии php)
Найдите строку: ;extension=php_fileinfo.dll
и удалите ;
Сохраните и перезапустите службы WAMP.