PHP:JSON支持在更新PHP版本后丢失



我有一个简单的网站,托管在共享的Linux服务器上(由一家徽标是鳄鱼的公司托管(。默认的PHP版本是5.6.30。服务器的cpanel提供了一个名为MultiPHP Manager的页面,使我能够将我的网站更新为PHP 7.x(无论是7.0、7.2、7.3还是7.4,都会出现同样的问题(

在更新到7.x之后,当我通过web服务器(我认为是CGI(运行PHP时,PHP JSON模块似乎丢失了(phpinfo((中没有报告(,但在shell级别有JSON支持。

我制作了这个测试文件:

<?php
if (function_exists('json_decode')) {
echo "JSON enabled";
}
else echo "JSON NOT enabled";

如果我得到一个带有ssh的bash-shell并运行php json.php,它就可以工作(表示已启用(。但是,如果我通过public_html中的web服务器运行这个文件,它会被禁用。

对托管服务的技术支持毫无用处。

好吧,我相信我已经想通了。

此主机使用suPHP运行PHP。默认情况下,suPHP不会在public_html或主目录中查找php.ini文件。因此,您需要将这些行添加到public_html:中的.htaccess文件中

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/username/public_html
<Files php.ini>
order allow,deny
deny from all
</Files>
</IfModule>

完成后,您可以将此行添加到public_html文件夹中的php.ini文件中:

extension=json.so

当然,如果您需要其他模块,您还必须为这些模块添加extension=行。多么痛苦。

最新更新