码迷,mamicode.com
首页 > 其他好文 > 详细

Drupal的一个小问题

时间:2014-09-26 19:39:38      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:http   使用   文件   sp   问题   c   ad   r   bs   

Drupal使用一个叫drupal_http_request的函数从其他网站获取系统更新或rss信息。如果drupal_http_request函数访问失败,它会自动将drupal_http_request_fails变量设为TRUE。在此之后的访问都需要先system_check_http_request,以确定系统确实支持drupal_http_request。而system_check_http_request会调用drupal_http_request访问自己这个站点。

这个系统本身没有什么问题,但如果后台用的是nginx + php-cgi(1 child)这种模式,因为只有一个php-cgi实例,在其中运行的php是不能在访问自己的站点的,此时php-cgi已经是处于忙状态了。于是就会出现gateway time out的错误。

此问题对普通用户没有任何影响。只在调用/admin/admin/report/status时会有导致错误,因为这两个网页会调用system_check_http_request,如果drupal_http_request_fails为TRUE。
二胎准生证http://www.0123.cn/ertai/
解决办法,

  1. 修改system模块里system.module文件中的system_check_http_request,让它去检测google一类肯定不会掉线的网站来确定drupal_http_request的可用性。
  2. 使用两个php-cgi children
  3. 修改web server(nginx)的配置,如果访问/的请求是从本地发起的,则自动转向一个静态文件。


修改系统模块总会造成各式各样的麻烦,两个php-cgi消耗内存比较大,虽然后一种解决方法丑陋了一点,但用起来更简单,以后也不担心drupal升级。

 

Drupal的一个小问题

标签:http   使用   文件   sp   问题   c   ad   r   bs   

原文地址:http://www.cnblogs.com/0123cn/p/3995094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!