Intervention/Image requires FileInfo - php

Im having trouble with Intervention/image, Laravel #composer install
- intervention/image 2.1.1 requires ext-fileinfo * -> the requested PHP
extension fileinfo is missing from your system.
I understand that it is trying to retrieve the extension fileinfo however I am having 0 luck with getting the extension to load.
I believe that as of PHP 5.4 the extension fileinfo is automatically enabled, however it isnt showing up in #php -m modules.
#pecl install fileinfo doesnt work either because my php version doesnt suit any versions of fileinfo.
My PHP version is:
PHP 5.4.37 (cli)
Operating System:
Linux
CentOS 6.5 cPanel 11.46 / Softaculous x64
Ive tried adding
extension = "fileinfo.so"
to the php.ini however to no luck, it does nothing.
NOTE: I managed to get the extension for windows version of php 5.4 working... Its just when I have uploaded my website to my server, I have been unable to get it to load, well get that library (Intervention/Image) to load.
Other details:
Server is a VPS with access to WHM and cPanel
Website works. Everything except the Intervention/Image

go to 'Select PHP version ' under Software section in your cPanel. Then check fileinfo checkbox. Then save. That's it.

To fix this issue, you just have to enable your fileinfo from your php configuration.
To do so :
Go to php.ini in your php install folder ( for me since I used bitnami on windows, it is located at C:\Bitnami\wappstack-5.6.31-0\php )
Uncomment the line ;extension=php_fileinfo.dll by removing the semicolon. ( on linux you should have extension=php_fileinfo.so )
Restart php ( use the command line on unix, or on windows through the manager of the soft you use, for instance if you have bitnami it's in C:\Bitnami\wappstack-5.6.31-0 and the exe you have to use is manager-windows.exe then click on php and restart ).
This is it.

Related

php version in plesk - extension installing on wrong version

I've just installed plesk on centos 7, it has multiple php versions installed.
7.1.10 was turned on and was the preferred version to use
However, i've tried to install phplib but it never loads on 7.1.10.
Have installed phplib perfectly fine, yet when you place pdf.so on the php.ini file it never load the extension.
I then noticed that pecl was installing the files in /usr/lib64/php/modules when php claimed they were in /opt/plesk/php/7.1/lib64/php/modules
That got me thinking that it must be installing it on a different php version, so I turned on the default php version of 5.4.16 and what do we have? pdf.so now loads and displays pdflib in the php config page.
Any ideas how to get it working on php 7 under plesk?
I would recommend to do the typical installations steps.
download the current PDFlib package for your Linux (64-bit) PHP and unpack the archive on your server
pick the correct PDFlib PHP DSO for your used PHP version (see bind/php/php-*)
get the correct extension_dir path from your phpinfo() output.
copy the PDFlib PHP DSO to the extension_dir
determine the correct php.ini from the phpinfo() output
add extension=php_pdflib.so to the php.ini
after a restart of your webserver, you should see a "PDFlib" section in the phpinfo() output.
Please see also the PDFlib in PHP Howto or PDFlib 9.1 Tutorial, chapter 2.9 "PHP Binding" for more detailed introduction how to install PDFlib.

Homestead Laravel -- Mcrypt PHP extension required

I have installed Homestead and I am trying to work on a Laravel project version 4.2 however I keep getting the following error:
Mcrypt PHP extension required.
I have already installed Mcypt installed on the server and I have enabled it into the PHP 7 ini file. This problem does not want to go away for some reason.
Any recommendations to what I can do in order to enable Mcrypt on my virtual box please?
Since php7.1 mcrypt is deprecated so you have to downgrade php to php7.0
or install multiple versions of php but don't forget to enable the right
version inside your http server config file
or you can use php built in sever like :
cd project_dir/
php7.0 -S localhost:8000

Install PHP 7.0 Internationalization extension (Intl) on XAMPP on Mac

I followed the instructions outlined here:
Install PHP Internationalization extension (Intl) on XAMPP on Mac
Ran sudo pecl install intl
selected the correct files from the Cellar
then this error happened:
/private/tmp/pear/temp/intl/intl_error.h:24:10: fatal error:
'ext/standard/php_smart_str.h' file not found
include
^ 1 error generated. make: *** [php_intl.lo] Error 1 ERROR: `make' failed
No matter, did some research and found out that PHP 7.0.8 deprecated php.smart_str.h to php.smart_string.h
So given my scant knowledge of C++ I copied smart_string.h to smart_str.h and renamed all the headers from STRING to string.....
re-ran pecl -no luck....more errors......without knowing where the .c files are and remaking php (not really interested in going that far) since anyway I'm using XAMPP so that ended that option.
I have php 5.5 on my mac, deep in the usr/local/bin folder
so next step was to get pecl to use those files and generate an intl.so file....
Did that....I have the intl.so file so put it in the 'extensions' folder in XAMPP (for reference: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012)
Ran php and came up with this error:
Warning: PHP Startup: Unable to load dynamic library
'/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so'
- dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so,
9): Symbol not found: _zval_used_for_init Referenced from:
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so
Expected in: flat namespace in
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so
in Unknown on line 0
I imagine it has to do with different versions?
In any case I can't get pecl to install intl without a make error in PHP 7.0.8 on XAMPP. There is no documentation on this and you'd think that if you deprecate a header.h file you'd update all extensions?
Install intl.so in PHP 7 seems impossible?
After a lot of research I was finally able to resolve this. Detailed steps here:
before you begin, check which php path is set. it should be /Applications/XAMPP/xamppfiles/bin/php. If not you can change it by PATH="/Applications/XAMPP/xamppfiles/bin:${PATH}". more detail here
Overall idea is to build the intl-extension from PHP source code on your own. Before you begin make sure you have installed Xcode. Also, install the latest version of autoconf. this might help:
brew install autoconf
Next download the version of PHP you use in XAMPP from php.net. I am using 7.1.18. This version worked for me: php-7.1.31, I’m guessing if you follow the steps it might work for 7.0 or 7.2 as well. Do let me know if it does or doesnt, I’ll update this post. Do not use PHP 7.3 for Magento 2.3.0, it is not supported.
Extract the tar.gz file using (I extracted it inside ~/Downloads/ folder )
tar -xzvf php-7.1.31.tar.gz
cd into the extracted folder
cd php-7.1.31
change to subfolder ext/intl
cd ext/intl/
Run these commands to build the extension
/Applications/XAMPP/bin/phpize
./configure --enable-intl --with-php-config=/Applications/XAMPP/bin/php-config --with-icu-dir=/Applications/XAMPP/xamppfiles/
make
sudo make install
you can now delete all files you downloaded and also the extracted folders.
Open /Applications/XAMPP/xamppfiles/etc/php.ini , and add extension=intl.so
Restart your Apache using XAMPP GUI and it should work.
So far, it seems that extension intl.so for php is bundled with php
and should be compiled with php (intl --enabled). XAMPP does not support this (as of Oct 2016), MAMP does. I do not know about other distros. However, if you're willing to recompile PHP 7, it's worth it just to do that and enable it during compiling.
So....I ran with MAMP. Then I decided that I would simply install apache 2.4 and php 7 and Mysql without the stack and the junk that comes with MAMP or XAMPP and everything works like a charm... so if you need to use CakePHP or intl support etc... just drop XAMPP/MAMP and go with a standard install. I used homebrew (MacOS) and everything is working fine.
Update: As regards Windows, XAMPP does not default it, but you can add the module (dll) in php.ini and works like a charm
The error means that XAMPP doesn't have PHP compiled with intl. You may try:
pecl install intl
but probably it won't work as well.
See: PHP Bug #72879 Pecl install intl make error with PHP 7.0.8.
As for the workaround, try installing memcached extension instead of memcache, e.g.
pecl install memcached
Note: It also requires libmemcached package/library to be installed beforehand. For macOS, install via: brew install libmemcached.
If you wanna try without homebrew, with native apache and php, look at my aswer here: https://stackoverflow.com/a/55131868/3692846

How to install extensions not included on PHP 5.6? GDlib, DOM, MCrypt

I've recently installed PHP, Apache and MySQL on a windows server 2012. I have everything working and I already have a website up and running on the server.
In the next few weeks I will be transferring a new site on this server however this new sites requires extensions not currently installed on PHP 5.6, they are as follows:
GDlib
DOM
MCrypt
How do I go about installing these extensions on PHP?
This was my first time installing a WAMP server, still trying to figure things out
Thanks in advanced
I am not sure what version of PHP you are moving from but if you check the changelogs for PHP I think you will find that mcrypt and DOM are part of the PHP Core now and GD1 has been replaced wih GD2 which should also be active by default in WAMPServer
If it is not then it can be turned on using the wampmanager menus
wampmanager -> PHP -> Extensions -> php_gd2
Most of the extensions will be available with the WAMP server
To enable an extension click on the wamp tray icon on the task bar goto PHP->PHP extensions-> Click on the extension you want to enable.
If you don't find the extension you are looking for then you may have to install it manually.Download the extension dll file and place it inside PHP extension folder(wamp\bin\php\php5.*\ext) and include the dll name in php.ini and restart.

Connect to RabbitMQ from PHP - Windows

I have RabbitMQ running on one of our servers and am trying to connect to it via PHP. I am developing on a Windows7 machine and my first line of code reads:
$cnn = new AMQPConnection();
It gives me the error:
Fatal error: Class 'AMQPConnection' not found in
I know that it is something that I need to install but what is it ? I am new to PHP so a little help would be nice.
Ps: I can connect to the RMQ server via the RabbitMQ admin web interface.
Thank you
Jack
Installation guide for php_amqp 1.4.0 (Stable version):
Download proper package for your php version from https://pecl.php.net/package/amqp/1.4.0/windows
Unpack php_amqp.dll to X:/php/ext/ directory
Unpack rabbitmq.1.dll to X:/Windows/system (not system32) directory
Modify php.ini file and add "extension=php_amqp.dll" line at the end of extensions list
Verify module installation by executing command "X:/php/php.exe -m" in command line
Restart webserver
I am developing on a Windows7 machine
You may be out of luck using that specific code. That class is from the PECL aqmp extension. Inside the installation instructions, it states:
Note to Windows users: This extension does not currently support Windows since the librabbitmq library does not yet support Windows.
You will want to use another library to speak to your message queue instead.
The rabbitmq-c library supports windows now, and the php_amqp pecl extension builds on windows as well. The documentation just hasn't been updated, nor are there any official binary builds in the wild. However, I managed to get them to build and have some 32 bit dll's available for download here:
http://www.nathanjohnson.info/?p=77
# AMQP installation php.net:
Note to Windows users: This extension does not currently support Windows since the librabbitmq library does not yet support Windows.
But here at RabbitMQ website is a windows installer...
Apparently this php.net page is outdated
To install do like this:
Download the correct package for your php from this official PECL amqp 1.4.0 page
unzip
add amqp.dll to your php ext folder
add rabbitmq.1.dll to your windows system 32 folder.
This according to the post on the blog I found here i think it is from the same #NathanJohnson who posted also here.
How I got it working:
My System Config: Win 7 Pro, (x64) XAMPP running PHP 5.6(x86)
Follow instruction from here to install RabbitMQ:
https://www.rabbitmq.com/install-windows.html
Now download compatible extension from here
https://pecl.php.net/package/amqp/1.4.0/windows
in my case it is "5.6 Thread Safe (TS) x86"
Now from zip file (php_amqp-1.4.0-5.6-ts-vc11-x86.zip) downloaded copy dll "php_amqp.dll" to your php extension folder in my case it is "xampp/php/ext" and copy dll "rabbitmq.1.dll" to "Windows\system" directory.
now register your php_amqp dll in php.ini file as
"extension=php_amqp.dll"
now restart apache.
Done. Now you should not get AMQPConnection not found exception.

Categories