访问云虚拟主机上的网站提示“Internal Server Error”报错

问题描述

访问云虚拟主机上的网站提示“Internal Server Error”报错,报错如下。

访问云虚拟主机上的网站提示“Internal Server Error”报错

 

问题原因

出现“Internal Server Error”报错的原因如下。

  • .htaccess文件写入错误的代码。
  • 文件权限设置错误。
  • PHP文件配置错误。
  • PHP版本过低。
  • 服务器资源超载。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

以下是在不同场景中的解决方案。

.htaccess文件写入错误的代码

在.htaccess文件中,由于添加了一些与源文件冲突的代码,导致出现报错。建议将服务器中.htaccess文件进行备份后,删除.htaccess文件后进行测试。

注:.htaccess文件以“.”开头,在Linux系统中是隐藏文件,可以通过FTP工具设置显示隐藏文件进行查看。.htaccess文件是Apache服务器的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以完成网页301重定向、自定义404错误页面、改变文件扩展名、允许或阻止特定用户、目录的访问、禁止目录列表、配置默认文档等功能。

文件权限设置错误

后台目录和文件权限默认为755,而图片、文字等HTML文件的权限应该为644。上传的文件出现500报错后,建议检查文件权限,可以通过FTP工具修改相关权限。

PHP文件配置错误

安装WordPress后出现“Internal Server Error”500报错,请参考如下步骤解决问题。

  1. ./wp-includes/class-http.php文件进行备份。
  2. ./wp-includes/class-http.php文件的第291行修改成如下内容。
    $request_order = apply_filters('http_api_transports',array('streams'),$args,$url);
  3. 如果WordPress的程序不是第291行,则手动搜索如下内容。
    $request_order = apply_filters('http_api_transports', array('curl','streams'),$args,$url);

    将该内容修改成如下内容。

    $request_order = apply_filters('http_api_transports',array('streams'),$args,$url);
  4. 将更新好的./wp-includes/class-http.php文件同步到wp-includes文件夹中。

PHP版本过低

虚拟主机安装WordPress时,在连接数据库配置后提示 “500 Internal Server Error ”,此问题是由于PHP版本过低导致,需要登录cp.hichina.com控制面板,点击页面左侧?高级环境配置?>?PHP版本设置,切换PHP版本,将PHP版本切换到5.3以上版本即可。

服务器资源超载

服务器资源超载,即同一时间内处理器有较多进程需要处理,关于如何处理CPU使用率较高的问题,请参考如下文档。

  • Windows实例中CPU使用率较高问题的排查及解决方法
  • Linux系统CPU负载的查询和案例分析

适用于

  • 云虚拟主机