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

缺少json扩展名。请检查您的PHP配置,php,json,ubuntu,phpmyadmin,Php,Json,Ubuntu,Phpmyadmin,我在Ubuntu13.10x64上安装了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

我在Ubuntu13.10x64上安装了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并删除该回购协议

sudo apt-add-repository --remove ppa:ondrej/php5-5.6
sudo apt-get update
现在安装php

sudo apt-get install php5-common php5-json

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

您可以通过观察在执行时: sudophp-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

在加载已安装的模块
json
mcrypt
后,它对我起了作用

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

转到并查看它是否有效。

下面的解决方案对我有效-

cd /etc/php5/mods-available
vi json.ini
在此文件中,进行以下更改

priority=20
extension=json.so
如果不存在json.ini文件,请创建包含以下内容的文件

priority=20
extension=json.so

您以前是否尝试过
sudo apt get update
?请注意,我建议的chmod命令只添加读取和执行权限。需要对目录具有执行权限,以便用户能够查看目录列表。我相信这些权限是安全的,但我对相反的信息持开放态度。我还应该补充一点,上面的命令只在命令行中针对PHP用例解决了这个问题。Apache使用位于/etc/php5/apache2/I中的另一个php.ini文件,完成此操作后,我还需要两个步骤:1)运行“sudo php5enmod json”,然后2)重新启动Apache。有了这些,一切都很好。