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

时间:2014-04-22 12:14:38

标签: php json ubuntu phpmyadmin

我从这个

在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 Modules]    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.

如何解决此问题?

4 个答案:

答案 0 :(得分:2)

以下解决方案适合我 -

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

在此文件中,以下更改

priority=20
extension=json.so

如果没有json.ini文件,请创建包含内容为

的文件
priority=20
extension=json.so

答案 1 :(得分:1)

看起来你是从自定义仓库安装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

答案 2 :(得分:0)

我觉得这个问题是因为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

答案 3 :(得分:0)

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

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

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