requires ext-fileinfo. How do I add that into my composer.json file?
I am trying to install intervention/image. After running the composer update, I get:
This is my composer file:
{
"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"
}
Solution 1:
Nothing to do with your composer.json.
You need to install & enable FileInfo PHP extension, which is installed by default starting with PHP 5.3.0. Versions prior to 5.3+ may use the discontinued PECL extension.
To enable FileInfo extension, you need to edit your php.ini and change a single line.
-
Locate the line:
;extension=php_fileinfo.dll
-
Remove the starting comment:
extension=php_fileinfo.dll
To find out where your php.ini is located, you can run the following command from a terminal:
$ php --ini
and search for "Loaded Configuration File".
Please note that the PHP CLI can load a different php.ini file than the web, so don't rely on the path provided in phpinfo()
. Run the command specified above in a terminal to find out the file loaded by PHP CLI.
Solution 2:
We dont need to do anything in composer.json
Windows
Enable fileinfo extension in php.ini
extension= php_fileinfo.dll
In Linux
1) Download and untar the package
wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar -zxf Fileinfo-1.0.4.tgz
cd Fileinfo-1.0.4
2) Generate the extension for compiling
phpize
3) Configure the module
./configure
4) generate the install files and install it
make
make install
5) Now the extension will be available under the /usr/lib64/php/modules directory. You now need to add the extension somewhere in the php configuration file. Edit /etc/php.ini and add the following: extension=fileinfo.so 6) Save the file and restart the webserver
service httpd restart
To verify fileinfo module is enabled properly, execute:
php -i | grep fileinfo
fileinfo support => enabled
Alternate method
Just an FYI, the module can also be installed using the PECL command i.e.
pecl install fileinfo
Once done, just follow steps 5 and 6 mentioned above to enable it. That’s it.