今天遇到一个很奇怪的问题。问题起因是,原先我写了一个小型的网站,突然有一天那台机器出了问题被重装了,结果我的小应用就没了。庆幸的是,我做了备份(看来做备份真是太重要的一件事了)。我将备份的文件放到了/var/www目录下,但是界面却不正常。只有HTML的部分显示正常,但是涉及到jQuery的部分就不正常了。后来通过chrome调试,得到了下面的错误消息:
500 (Internal Server Error)
然后就在网上查,得到的是这个错误是告诉你问题是出在服务器端的,但是并没有说明具体是服务器端哪里出的问题。
这就让我很是奇怪,原先程序时完全可用的,并没有出现今天所见的问题。代码应该是没有错误的,错误应该是出现在环境上。
于是就上网查,网上查到的这个问题还真不少,不过就是没有能拿来解决我遇到问题的页面。于是我就又拿自己的虚拟机尝试一下,把需要的文件都拷贝到我的虚拟机上,打开网页,一切正常。这就怪了,为什么当当在那台电脑上就是不行呢?自己很是想知道为什么,其实那个时候,自己完全可以不去查它了,既然在虚拟机上跑起来了,就没有这个必要非要在实体机上也搭起来。只能是接着查了,果然功夫不负有心人,在这篇文章中得到了线索,可以去查看Apache的错误日志,并且告诉了具体的日志文件。其实自己之前到时有这个想法,但是由于对Apache服务器并不是很熟悉,不知道究竟在哪里看。在/var/log下查看,并没有找到真正想要的日志。这个Apache的日志文件就是:
/var/log/apache2/error.log
结果一看,关键错误尽是:Call to undefined function json_encode()。我之前已经通过
sudo apt-get install php5-json
将其安装上了呀,为什么还会出这样的错误呢。再查原来是我没有重启导致的,如果不重启是无法使用的,果断重启,重启命令如下:
sudo service apache2 restart
重启后果然就好了。心情顿时就高兴起来了。
收获:
- 查看Apache服务器的日志:/var/log/apache2/error.log.
- 如果安装了php5-json,一定要重启apache2,否则并不会起作用。