我从这个在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
加载已安装的模块json
和mcrypt
后,它对我有效。
$ sudo php5enmod json && sudo php5enmod mcrypt $ sudo service apache2 restart
转到http://yourserver/phpmyadmin看看它是否有效。