Install PECL Intl on MAMP 2.2 with PHP 5.5.3 - php

When i installed the framework Yii2 and i verified to launch requirements.php for check if PHP extensions have been loaded.
I installed icu4c using brew like :
brew install icu4c
I installed intl using PECL like :
/Applications/MAMP/bin/php/php5.5.3/bin/pecl install intl
Dir icu4c : /usr/local/Cellar/icu4c/52.1/
In PHPInfo, i have :
But in Yii2, i launched requirements.php and the extension intl is not always work.
Info : When i execute /Applications/MAMP/bin/php/php5.5.3/bin/php -m :
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
ldap
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
yaz
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
And i see not where intl... Is this normal ? I wonder if the problem is rather to MAMP or PECL ?
Thanks.
EDIT :
Yii Framework fixed : https://github.com/yiisoft/yii2/issues/1230

It might be that PHP on apache uses a different php.ini files than PHP on CLI.
Find out for CLI by running
$ php --ini
The php.ini for apache can be seen in phpinfo().
If they are different, you need to add the extension loading directive to the CLI one, too.
Also make sure to restart apache after modifying the php.ini for mod_php.

Related

Missing BC Math or GMP extension in Laravel

I am running Laravel 5.7.14 on PHP 7.2-fpm on Ubuntu 16.04.
My code in the local environment was working fine, but once I uploaded it to the production server I got this error message: Missing BC Math or GMP extension.
I have installed both GMP + BC Math. When I run the command php -i | grep -i bcmath I get this:
/etc/php/7.2/cli/conf.d/20-bcmath.ini,
bcmath
BCMath support => enabled
bcmath.scale => 0 => 0
When I run php -m I get this:
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
I have restarted the server multiple times and cleared Laravel's cache but nothing's changing, I keep getting this error message.
What am I missing here? If you need more info do not hesitate to ask.
Managing multiple PHP versions is sometimes very messy.
If you are on a Linux-like system and try to upgrade PHP versions you sometimes end up with 2 versions on the same system. Not infrequently (especially when you manually have configured the previous version) the newly installed version does not get enabled to use with the webserver. Personally I've also experienced upgrading PHP and getting the apache to use the new version but as a module instead of FPM so you should also be wary of that if you are using apache since again FPM and the PHP module for apache might have different configurations as well.

Missing PHP extensions in local windows 10 Magento Installation

I'm trying install Apache + PHP + Magento2.1 + MySQL in Windows 10.
I've already installed:
Magento-CE-2.1.8_sample_data
Content saved in C\Apache24\htdocs
Apache-2.4.27-Win64-VC15.zip
Directory: C\Apache24
PHP Version 5.6.31 php-5.6.31-Win32-VC11-x64.zip
Directory: C:\PHP
mysql-community-5.7.19 (Msi installer)
In the setup installation (Readiness Check) the follow errors are showed:
PHP Extension curl.
PHP Extension xsl.
PHP Extension intl.
PHP Extension mbstring.
PHP Extension openssl.
PHP Extension gd.
I've already uncomment this extensions in php.ini
I've copied icud?57.dll files in apache root dir.
Can anyone tell me, What can be happening? Thanks!
The PHP modules loaded are:
C:\>cd php
C:\php>php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
ereg
exif
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mcrypt
mhash
mysqli
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
Phar
Reflection
session
SimpleXML
SPL
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
zip
zlib
[Zend Modules]
Versions from 5.6.0 to 5.6.4 are not supported. Only php 5 supported are from 5.6.5 and above.
I'd better suggest using php 7 to have better support also for your extensions
Check it better here
Otherwise, check better for the PHP modules you are enabling.
According to this question you have to make sure that all the subsequent modules are enabled, and some are missing in your list.
PDO/MySQL
mbstring
mcrypt
mhash,
simplexml,
curl,
gd2,
ImageMagick 6.3.7 (or later) or both
soap and
add xdebug.max_nesting_level=50000; at php.ini

Function utf8_encode undefined

I have Ubuntu 16.04 installed, which comes with PHP 7 by default; but I ended up installing PHP 5.6 as well, and I have apache using 5.6.
When I went to run a project of mine, it told me the following:
PHP Fatal error: Call to undefined function utf8_encode()
I read through a bunch of posts where others have had this issue, and tried installing different extensions; but nothing has helped.
My understanding, was that that function would be packed with PHP (4,5,7) by default.
Any ideas?
* Update *
I did try the following, and it came back false.
var_dump(is_callable('utf8_encode'));
Here are the installed mods/extensions:
[PHP Modules]
calendar
Core
ctype
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
on ubuntu :
sudo apt-get install php5.6-xml
sudo service apache2 restart
The following fixed it:
sudo a2enmod xml2enc
On FreeBSD try this command
pkg install php71-tokenizer-7.1.25 php71-zlib-7.1.25

Can't enable PDO MySQL extension in CentOS

I've added the following lines in php.ini
extension=pdo.so
extension=mysql.so
extension=pdo_mysql.so
But I'm still only getting sqlite support in phpinfo(); and a PHP app I'm trying to install shows "PHP PDO MySQL Module: Not Found".
however php -m gives the following list:
bcmath
calendar
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib
As it turns out the php-mysql package was an error state, I followed the instructions in another answer to resolve it
php-mysql version conflicts with Mysql server
if using windows just uncomment
extension_dir = "ext"
in php.ini
You have an CentOS(Red Hat(Linux)). You need to install the php_module like that:
sudo apt-get install php5-mysql
Then do an apache restart Like that:
sudo service apache2 restart

PHP isn't working with SQLite

Okay, so this is my first server I'm setting up. I have a system running Ubuntu 11.10. I'm running Lighttpd and have PHP set up, but I want PHP and SQLite to work together. I installed them using:
sudo apt-get install lighttpd
sudo apt-get install php5-cgi
sudo apt-get install sqlite
sudo apt-get install php5-sqlite
PHP works fine, but any script with a sqlite command in it just returns a blank page. I turned on php error messages and ran this script:
<?php
echo sqlite_libversion();
echo "<br>";
echo phpversion();
?>
Which returns:
Fatal error: Call to undefined function sqlite_libversion()
What's gone wrong? :(
php -m produces this:
[PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif
fileinfo filter ftp gettext hash iconv json libxml mbstring mhash
openssl pcntl pcre PDO pdo_sqlite Phar posix readline Reflection
session shmop SimpleXML soap sockets SPL sqlite3 standard sysvmsg
sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib
Extension in Php.ini file should be:
extension=pdo_sqlite.so
extension=sqlite.so
According to http://packages.ubuntu.com/oneiric/all/php5-sqlite/filelist the php5-sqlite contains two extension modules
pdo_sqlite.so -> http://docs.php.net/pdo
sqlite3.so -> http://docs.php.net/sqlite3
so it looks like php5-sqlite doesn't provide the module you're looking for.
If you don't have tons of legacy code I rather suggest you use PDO, esp. since the sqlite module is going to be moved from core php to pecl (nothing wrong with pecl though...):
Since PHP 5.0 this extension was bundled with PHP. Beginning with PHP 5.4, this extension is available only via PECL.
Have you added the sqlite extensions in your php.ini?
It seems this guy had the same issue: http://forum.alwaysdata.com/viewtopic.php?id=1034
The solution in that thread was to add
extension=pdo_sqlite.so
extension=sqlite.so
To php.ini, preferably under the "Dynamic Extensions" sections, but they could go anywhere.

Categories