Composer安装:缺少json扩展

时间:2014-12-12 05:06:28

标签: php json linux composer-php

我在Linux终端中写道: curl -s https://getcomposer.org/installer | php 它说:

 #!/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

我这样做了:apt-get install php5-json 所以,我想,它已经安装好了。但奇怪的是,当我写php -m时 它给了我一个没有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]

当我写php5-fpm -m时 它发送了这个:

[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]

我做错了什么?我还没有在GitHub和Google找到解决方案

5 个答案:

答案 0 :(得分:5)

您可能需要在php.ini文件中启用扩展程序。要找出命令行PHP的位置,请执行

php --ini

你应该看到像

这样的一行
  

加载配置文件:/path/to/php.ini

打开该文件并查找extension=json.so。如果它在那里,取消注释。如果没有,请将其添加。现在,当json和作曲家工作时,您应该会看到列出的php -m

答案 1 :(得分:4)

我遇到了同样的错误,但不同的是当我运行 php -m 时没有列出 json 模块,所以我只是使用下面的命令安装了 json PHP 模块:

sudo yum install php-json

错误已修复,我可以安装 Composer。我使用的是 CentOS 8 流,PHP7.2。

答案 2 :(得分:0)

在我的ubuntu 14.04上,我发现php.ini文件/ etc / php5 / cli /的默认权限仅限于Root用户,所以如果你运行:

php -m

作为非root用户,你获得的模块比运行时少得多     sudo php -m

解决这个问题的方法是让我执行:

sudo chmod a+rx /etc/php5/cli/* -R 

授予该文件夹的读取和执行权限,并为每个人提供内容。

答案 3 :(得分:0)

错误php无法加载扩展安装

创建文件php.ini

# /etc/php/7.2/cli/conf.d/php.ini
extension=json.so
extension=phar.so
extension=iconv.so

答案 4 :(得分:0)

在经过全面研究的带有PHP 7.2的Centos 8上,我得出的结论是,解决该问题的唯一可靠方法是重新安装最新版本的PHP。 (7.4是我的最新版本)在这里您可以找到其他拥有相同结论的人。 laracasts