导致HTTP事务漫的几个常见原因

当发现一条HTTP事务漫的时候,可以可以从以下几个原因去判断问题
1. DNS解析漫,当访问一个URL浏览器首先会分割URI. 将URI中的域名解析成IP地址,然后发起一个TCP请求(浏览器一般会有DNS缓存)
2. HTTP连接过多
3. COOKIE过多. 当HTTP向服务器发起请求时会将本地将网站所有的COOKIE找出来向服务器发起请求
4. 因特网对报文的传输和服务器处理报文都需要时间
5. 服务器响应过漫. 当服务器接受到的请求过多导致服务器压力过大时,服务器对请求的处理会变得很缓慢. 数据库压力过大或者程序编写不正等原因都会导致服务器响应过漫.
6. 网络过漫
7. 对HTTP的处理算法. 比如Chrome可能就会更快IE6会会漫一些.

发表在 web | 留下评论

Centos 安装tengine

http://tengine.taobao.org/

安装pcre和openssl

yum install pcre-devel
yum -y install openssl openssl-devel
wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
tar -zxvf tengine-2.1.0.tar.gz
cd tengine-2.1.0.
./configure
make
sudo make install

ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
发表在 服务器 | 留下评论

Drupal date pop-up 只能选择今天以后的日期

  1. function MYMODULE_date_popup_process_alter(&$element, &$form_state, &$context) {
  2.   if (isset($element['#field']['field_name'])) {
  3.     switch($element['#field']['field_name']) {
  4.       case 'field_material_group_play_date':
  5.         $element['#datepicker_options'] = array(
  6.             'minDate' => "+0",
  7.         );
  8.         $element['date'] = date_popup_process_date_part($element);
  9.         break;
  10.     }
  11.   }
  12. }
发表在 Drupal | 留下评论

PHP 判断上传文件的mime类型

Drupal默认的上传我也不知道是不是属于bug. 当你只允许上传.jpg的图片时。如果我将一个.php的文件后缀改成.jpg也能够正常上传。以下我写了一个修复脚本

/**
 * Implements hook_file_validate
 */
function mymodulename_file_validate($file) {
  $errors = array();
  $mime = mime_content_type(drupal_realpath($file->uri));
  if($mime != $file->filemime) {
    $errors[] = t('Upload error, the file format is not valid.');
  }
  return $errors;
}

发表在 Drupal | 留下评论

Drupal Views 添加默认过滤

经常我们的Views会暴露出一些字段让用户过滤,但是在默认的时候过滤肯定是空的. 可能你想添加一些默认的过滤怎么办?

  1. function mymodule_views_query_alter(&$view, &$query) {
  2.   if ($view->name == 'myviews' && $view->current_display == 'mypage') {
  3.     // 如果以下的field和table不知道的话,可以先在views页面选择一个值来过滤. 然后使用dpm($query);来看
  4.     if(!isset($view->exposed_input['myfield'])) {
  5.       $query->add_table('myfield_table');
  6.       $query->add_where(1, 'myfield_table.myfield.xxx', $default_fileter_array, 'IN');
  7.     }
  8.   }
  9. }
发表在 Drupal | 留下评论

Drupal 用户锁定以后怎么办?

用户登陆的信息主要保存在flood表,所以当你登陆失败以后最简单的办法就是清空flood表

1. 如果你安装了drush?
以下两种方法都可以.

  1. $drush sqlq "DELETE FROM flood"
  2. $drush php-eval 'db_query("DELETE FROM `flood`");'

2. 如果你安装了devel?
直接打开 /devel/php,然后运行以下代码

  1. db_query("DELETE FROM `flood`");

3. 如果以上你都没有? 你可以登陆到phpmyadmin。找到你的flood表,然后清空

发表在 Drupal | 留下评论

关于HTTPS几大疑问

为什么https是安全的? 它的加密工作原理是什么?从哪里开始加密的?是浏览器完成的加密工作?证书的工作机制是什么(为什么证书收费)?

发表在 其它 | 留下评论

Drupal Views hook 执行流程

http://www.kdweb.co.uk/blog/drupal-module-views-hook-sequence
hook_views_pre_view (&$view)

hook_views_pre_build (&$view)

hook_views_query_alter (&$view, &$query)

hook_views_pre_execute (&$view)

hook_views_pre_render (&$view)

hook_views_post_render (&$view)

发表在 Drupal | 留下评论

Drupal 图片404用默认的图片代替显示

  1. /**
  2.  * Override theme_image_style().
  3.  */
  4. function YOURTHEMENAME_image_style($variables) {
  5.   // Determine the dimensions of the styled image.
  6.   $dimensions = array(
  7.     'width' => $variables['width'],
  8.     'height' => $variables['height'],
  9.   );
  10.  
  11.   image_style_transform_dimensions($variables['style_name'], $dimensions);
  12.  
  13.   $variables['width'] = $dimensions['width'];
  14.   $variables['height'] = $dimensions['height'];
  15.  
  16.   // Determine the URL for the styled image.
  17.   $variables['path'] = image_style_url($variables['style_name'], $variables['path']);
  18.  
  19.   // Load default image for 404's
  20.   if(!file_exists($variables['path'])) {
  21.     // your image url.
  22.     $variables['path'] = file_create_url('/sites/default/themes/YOURTHEMENAME/images/image_404.png');
  23.   }
  24.  
  25.   return theme('image', $variables);
  26. }
发表在 Drupal | 留下评论

Drupal 开发函数参考

字段
1. 获取一个Entity类型里面的所有字段信息.
$instances = field_info_instances($entity_type, $bundle);

2.获取所有可用的字段类型, 此函数将遍历所有的hook_field_info().
$field_types = field_info_field_types();

3.获取指定的字段名信息
$fieldinfo = field_info_field(‘myfield_name’);

4. 获取所有的字段widget, 此函数将遍历所有的hook_field_widget_info().
$widget_types = field_info_widget_types();

发表在 Drupal, Drupal 函数 | 留下评论