I wrote in Linux Terminal:
curl -s https://getcomposer.org/installer | php
It said:
#!/usr/bin/env php
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The json extension is missing.
Install it or recompile php without --disable-json
I did this: apt-get install php5-json
So, I think, it's installed. But the strange thing is, when I write php -m
It gives me a list without json:
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
libxml
mbstring
mhash
openssl
pcntl
pcre
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
And when I write php5-fpm -m
It sends this:
[PHP Modules]
bcmath
bz2
calendar
cgi-fcgi
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysqli
openssl
pcre
PDO
pdo_mysql
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
What am I doing wrong? I haven't found the solution at GitHub and Google
On ubuntu 14.04 for me, I found that the default permissions for the php.ini file /etc/php5/cli/ restrict the file to Root user only, so if you run:
as non-root, you get far fewer modules than if you run sudo php -m
The fix for this was for me to perform:
which grants read and execute permissions for that folder and it's contents to everyone.
Bug php not load extension install
create file php.ini
On Centos 8 with PHP 7.2, after comprehensive research, I have concluded that the only solid way to fix it is reinstalling PHP with its newest version. (7.4 was the latest version for me) Here you can find others who share the same conclusion; laracasts
You probably need to enable the extension in your
php.ini
file. To find out where that is for command line PHP, doYou should see a line like
Open that file and look for
extension=json.so
. If it's there, uncomment it. If not, add it in. Now you should seejson
listed when you dophp -m
and composer should work.