Drupal网站访问异常问题及解决过程

对网站管理员而言,使用虚拟主机服务可大大减少系统维护工作量,比如软硬件环境问题及日常攻击检测都由虚拟主机服务商负责,但这并不意味着网站管理员可以高枕无忧了。比如,有客户收到1&1发送的邮件通知,网站检测到异常,可能遭受到攻击,还是需要提供网站托管服务的技术人员及时处理异常。

近日检测到另一个客户网站访问异常,网站环境为:Apache, Drupal7, Mysql。打开网站后页面提示:The page you are looking for is temporarily unavailable. Please try again later. 联系客服后,检查结果虚拟主机环境没有问题,也给不出确切原因,说是可能是上传了什么文件导致的,需要网站维护人员自己解决,还发过来一个链接,看了下是关于WordPress遇到同样报错后的讨论,没什么帮助,客服人员能做的也就这些了,还得自己想办法解决。

首先,分析问题原因。同样使用1&1虚拟主机的其他用户均可正常访问,基本排除虚拟主机环境问题。而且明显非上传文件导致,因为除日志文件外,最新文件修改时间是前几天,这之后还能访问。
1、检查虚拟主机后台配置。域名、空间都正常。Ping相关域名可正常响应,域名指向也没问题。
2、检查WebServer。上传静态页面,通过浏览器可正常访问,说明WebServer没问题。
3、检查数据库。
1)从虚拟主机管理后台可通过Phpmyadmin访问数据库管理界面;
2)上传测试文件,可建立数据库连接。
数据库看起来也没问题。
通过现象分析,网站异常只可能是因为WebServer和数据库之间连接导致,因为可利用的资源比较少,看不到错误日志,猜测可能是过多的数据库连接没有释放导致死锁,可能由于Drupal本身问题,当然也可能是网络攻击导致,具体原因这里不做过多讨论。

解决方案:
新建数据库,从原数据库导入数据。修改Drupal配置文件settings.php中的数据库连接部分内容指向新数据库,之后,网站恢复正常。
这里需注意,数据库配置文件settings.php默认是只读,需要先修改文件权限为可写,否则会提示权限错误。

简体中文