Category: Architecture

Drupal 高效部署和维护

Drupal 是由很小的核心和几千个实现不同功能的模块组成,无论要实现什么功能,几乎都可以通过找到模块来实现。但是一个中等的系统会需要几十个或者上百个模块。所以Drupal 模块的部署和维护必须通过高效的方式来实现。

Drupal 提供了两种不同的部署方式,你可以通过命令行来部署,或者通过传统的WEB界面来维护。

本文只介绍命令行的方式。Drupal 有命令行维护工具 Drush 。通过Drush来维护系统是Drupal众多优秀的特性之一,它类似于Django中命令行自动生成数据库结构,或者PECL安装PHP的扩展模块,或者yum来维护Linux软件包。只需要一行命令就可以安装系统,或者下载一个模块。

1. Drush的安装:

对于Drupal6.x,下载Drush模块,并且解压即可:

$ cd ~

$ wget http://ftp.drupal.org/files/projects/drush-6.x-3.3.tar.gz

$ tar zxvf drush-6.x-3.3.tar.gz

$ ln -s /path/to/drush/drush /usr/local/bin/drush

这样你可以在任何目录执行drush命令。

2. 用Drush来下载安装Drupal:

你不需要从Drupal网站下载安装包,上传到FTP,再配置数据库,从WEB界面安装:

下载并且解压Drupal包:

$ drush dl

安装Drupal

$ drush is

安装CCK

$ drush dl cck

$ drush en cck

清空cache可能是开发中最常用的功能:

$ drush cc

查看watchdog信息:

$ drush ws

执行cron

$ drush cron

更多drush命令:http://drush.ws

推荐用Drush来部署和维护Drupal

所有模块的安装维护仅仅需要1-2行命令,不必在忍受WEB界面网速的问题。我们需要用最好最快的方式来节约时间,提高效率。

Redis beginner’s guide

1. Redis web admin UI
Redis-admin:
    The only redis admin ui written in php found till now. But lake of testing, personally not run it successful.
Ref url: http://code.google.com/p/redis-admin/ PHP
RedisAdminUI:
    This project based on C# and ajax, so you should run under Windows server, or install mono under Linux.
    But you can simply put XSP under the project directory to setup it.
    Ref url: http://www.servicestack.net/mythz_blog/?p=381 .net + XSP
    Online Example: http://www.servicestack.net/RedisAdminUI/AjaxClient/#
Redweb:
    Web interface of Redis written in Python.
    Ref url: https://github.com/kennyshen/redweb
RedisCover:
    Web interface of Redis written in Ruby.

2. Advantage of Redis
Get Unique IDs just one query:
    INCR <object>
Atomic Opertion:
    MULTI
    …
    EXEC
Multiple Databases:
    SELECT 3
    The default database will be 0.
Pub/Sub Asynchronous message
    SUBSCRIBE room:a
    PUBLISH room “message”
    UNSUBSCRIBE room
Simple FIFO Queue
    LPUSH queue1 a
    …
    RPOP queue1