新闻动态

windows服务器换成 linux服务器PHP报错 'Internal Server Error,500 error'

windows服务器换成 linux服务器PHP报错 'Internal Server Error,500 error'500错误出现的最大原因可能是三种,文件权限问题、php 扩展问题或者是在将windows上的'不规范代码上传到Linux上',
windows服务器换成 linux服务器PHP报错 'Internal Server Error,500 error'


500错误出现的最大原因可能是三种,文件权限问题、php 扩展问题或者是在将windows上的'不规范代码上传到Linux上',当然不要因为页面上面没有任何的信息而慌张,既然有问题出现必然就有问题的解决方案。

首先我们得理智的分析问题再来想怎么解决问题。

①文件权限问题:
举个例子,这里在文件上传非常容易出现这种问题,你会说我在windows上的wamp环境下写的代码可以上传成功,但是我把php程序上传到我的云服务器上(Linux)怎么就不行了?怎么就报个500错误,也没有错误信息呢。这里有个权限问题极其容易被忽视,那就是用户在上传的时候 你服务器上的上传的那个文件夹是不是应该给用户(Others)写权限呢。


②php 扩展问题:
这里出现这种情况,通常是我们在使用第三方提供的SDK,函数库时,或是我们在做数据库操作时,可能会中招,原因就出现在第三方SDK中有使用到你的服务器上没有安装的php扩展或是没有打开的扩展对于这种情况我们需要去查看phpinfo页面,在这个页面上搜索你需要用到的扩展名就知道你的php当中是否安装了你需要使用到的扩展。
<?php
phpinfo();
?>


③将windows上的'不规范代码上传到Linux上':

Linux上是严格区分大小写的、Linux上引入文件是使用正斜杠的(/)而windows上好像正反都可以、所以在windows上做php开发的时候还是得多留点心,尽量保持Linux上的开发习惯,实在觉得憋不过来,就选择直接连接到Linux服务器上进行开发吧。

当然出现500的原因肯定不止这几点,还得我们通过错误信息来具体情况具体分析,这里给出一个不用去修改php.ini的方法查看500错误信息

在我们出现500错误的php文件前面加上两行代码:
ini_set("display_errors","On");
error_reporting(E_ALL);

这样他就会像IDE工具一样告诉你到底是哪一个文件下的哪一行代码出了问题,导致服务器内部错误,这样我们就能很容易的找出500错误的根本原因呐。