缺少json扩展名.请检查您的PHP配置


The json extension is missing. Please check your PHP configuration

我从这个在Ubuntu 13.10 x64上安装PHP5.6.0

https://launchpad.net/~ondrej/+archive/php5-5.6a

然后我安装了phpmyadmin,当我尝试午餐phpmyadmin时,我收到了以下消息

The json extension is missing. Please check your PHP configuration.

我的PHP模块:

bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
libxml
mbstring
mcrypt
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend模块]Zend OPcache

那么当我使用此命令安装php-json

sudo apt-get install php5-json

我有这个

The following packages have unmet dependencies:
php5-json : Depends: phpapi-20121212
E: Unable to correct problems, you have held broken packages.

如何解决此问题?

看起来像是从自定义repo安装PHP5。我会删除PHP并删除该repo。

sudo apt-add-repository --remove ppa:ondrej/php5-5.6
sudo apt-get update

现在安装php

sudo apt-get install php5-common php5-json

以下解决方案对我有效-

cd /etc/php5/mods-available
vi json.ini

在此文件中进行以下更改

priority=20
extension=json.so

如果不存在json.ini文件,则创建内容为的文件

priority=20
extension=json.so

在我看来,问题似乎是因为Ubuntu对php.ini文件的默认权限。它只允许Root读取/执行包含in文件的目录。

您可以通过观察执行以下操作来轻松验证这一点:sudo php-m

您可以看到所有已安装和已启用的模块都已正确列出。

我在ubuntu发行版上找到的解决方案是:

sudo chmod a+rx /etc/php5/cli/
sudo chmod a+rx /etc/php5/cli/php.ini
sudo chmod a+rx /etc/php5/cli/conf.d/

然后您可以通过运行轻松验证

php -m

加载已安装的模块jsonmcrypt后,它对我有效。

$ sudo php5enmod json && sudo php5enmod mcrypt $ sudo service apache2 restart

转到http://yourserver/phpmyadmin看看它是否有效。