【问题标题】:The json extension is missing. Please check your PHP configuration缺少 json 扩展名。请检查您的 PHP 配置
【发布时间】:2014-06-06 19:24:24
【问题描述】:

我从此在 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.

我该如何解决这个问题?

【问题讨论】:

  • 你之前试过sudo apt-get update吗?

标签: php json ubuntu phpmyadmin


【解决方案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】:

    以下解决方案对我有用-

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

    在此文件中进行以下更改

    priority=20
    extension=json.so
    

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

    priority=20
    extension=json.so
    

    【讨论】:

    • 执行此操作后我需要两个步骤:1) 运行“sudo php5enmod json”,然后 2) 重新启动 apache。有了这个,一切都很好。
    【解决方案3】:

    在我看来这个问题是因为 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
    

    【讨论】:

    • 请注意,我建议的 chmod 命令仅添加读取和执行权限。目录需要执行权限才能使用户能够查看目录列表。我相信这些权限是安全的,但我对相反的信息持开放态度。
    • 我还应该补充一点,上面的命令仅针对命令行中的 PHP 用例解决了这个问题。 Apache 使用位于 /etc/php5/apache2/ 中的不同 php.ini 文件
    【解决方案4】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 2021-07-21
      • 2014-05-08
      • 2015-07-14
      相关资源
      最近更新 更多