我刚刚在Ubuntu中安装了我的第一个LAMP和NetBean。我导入了一个小型网站并尝试在本地和远程运行它,但使用json_decode
(和其他功能)的页面在本地服务器上不起作用。
例如此页:
<?php
echo "X ";
var_dump(json_decode("{}"));
echo " Y";
?>
在受管服务器上显示X object(stdClass)#1 (0) { } Y
,但在本地服务器上仅显示X
。
我ctrl +点击json_decode
函数名称,文件json.php
以空json_decode
函数打开。我不明白这只是界面的定义还是真正的函数(我正在学习PHP),但是渲染在那里停止而没有错误信息的事实听起来很奇怪。
更新:
我卸载了this page中“重新开始”部分列出的所有软件包,并重新安装了sudo tasksel install lamp-server
。
第二天发生了大规模的自动更新。我不知道安装和更新之间是否存在关联,或者无论如何都会进行更新。
现在我仍处于同一位置:某些页面在本地正确呈现,但我的网站几乎在每个页面都使用json,因此我无法使用本地服务器。 (我希望能够在接下来的日子里使用它,当时我将访问公婆,互联网仍然是一个未知的概念。)
更新2:
前面提到json_decode()
空体的事实不是问题。我刚刚右键单击session_start();
,文件session.php打开,其函数定义为function session_start () {}
。我不明白为什么库函数包含空体,但session_start()
有效,所以json_decode()
也应该。
答案 0 :(得分:0)
尝试单独安装json扩展。我认为它在Ubuntu上被称为php-services-json
,所以运行apt-get install php-services-json
答案 1 :(得分:0)
您没有看到“Y”的事实可能表示您的json_decode期间发生了致命错误(您可以在脚本顶部使用ini_set("display_errors",1);
来确定)
致命的可能是:
PHP Fatal error: Call to undefined function json_decode()
对该错误进行一些Google搜索。如果我对这个致命的错误是对的,那么这篇文章可能会有所帮助:
答案 2 :(得分:0)
尽量不要使用LAMP并手动安装apache2尝试是否有效,也许LAMP包会给你带来麻烦。那就是你不怕一些额外的工作。
如果他们禁止任何事情你也可以查看你的配置。