BigSea'Blog

身体下地狱,眼睛上天堂,心灵回故乡。走在路上,那是痛苦的幸福;走过之后,是幸福的痛苦。

2009年04月的文章

甲骨文收购Sun 今年夏天完成交易

No Comments | 行业新闻 | by bigsea | 1254 Views. | 2009, April 21, 2:16 PM

甲骨文以现金收购Sun微系统公司,交易价格达74亿美元。该协议达成后,IBM公司放弃了收购网络设备制造商。IBM公司此前表示愿意以每股9.40美元购买Sun公司的股票,但收购谈判破裂后,IBM公司于本月初取消独家谈判权,IBM并撤回其报价。 甲骨文Oracle预期购买在交易关闭之后的第一年每股增加至少15 美分的所得。该交易已被Sun公司的董事会通过,甲骨文公司预计将在今年夏天完成此次的交易。

泄露的内部邮件说明了Sun已经被Oracle以每股$9.50收购,并且Sun官方主页也有了链接.
http://www.sun.com/aboutsun/media/presskits/2009-0420/index.jsp

阅读全文

Nginx+PHP(FastCGI)搭建胜过Apache 10倍的Web服务器(第4版)

No Comments | Unix/Linux技术 | by bigsea | 7208 Views. | 2009, April 20, 7:31 PM

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

 

  Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区 等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。

 

  Nginx 的官方中文维基:http://wiki.codemongers.com/NginxChs

 

  在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结 果,Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

 

   根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统 预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800 时,导致服务器内存和Swap空间用满而崩溃。

 

  而这台 Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存 (20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。

 

  在3万并发连接下,访问Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出 的Nginx配置文件中写明):

 

安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)

一、获取相关开源程序:
1、【适用CentOS操作系统】利用CentOS Linux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):

sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

 

   2、【适用RedHat操作系统】RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包(事先可通过类似“rpm -qa | grep libjpeg”的命令查看所需的RPM包是否存在,通常是“xxx-devel”不存在,需要安装)。RedHat可以直接利用CentOS的RPM包 安装,以下是RPM包下载网址:

 

  ①、RedHat AS4 & CentOS 4

 

  

http://mirror.be10.com/centos/4/os/i386/CentOS/RPMS/

  

http://mirror.be10.com/centos/4/os/x86_64/CentOS/RPMS/

  ②、RedHat AS5 & CentOS 5

 

  

http://mirror.be10.com/centos/5/os/i386/CentOS/

  

http://mirror.be10.com/centos/5/os/x86_64/CentOS/

  ③、RPM包搜索网站

 

  

http://rpm.pbone.net/

  

http://www.rpmfind.net/

  ④、RedHat AS4 系统环境,通常情况下缺少的支持包安装:

 

  Ⅰ、i386 系统

 

 

  Ⅱ、x86_64 系统

 

 

  3、【适用CentOS、RedHat及其它Linux操作系统】下载程序源码包:

 

  本文中提到的所有开源软件为截止到

2009年04月14日

的最新稳定版。

 

  ①、从软件的官方网站下载:

 

mkdir -p /data0/software
cd /data0/software
wget http://sysoev.ru/nginx/nginx-0.7.51.tar.gz
wget http://www.php.net/get/php-5.2.8.tar.gz/from/this/mirror
wget http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.33.zip/from/http://mysql.mirror.redwire.net/
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0"
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0"
wget http://pecl.php.net/get/memcache-2.2.5.tgz
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0"
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
wget http://pecl.php.net/get/imagick-2.2.2.tgz

 

  ②、从

blog.s135.com

下载(比较稳定,只允许在本站,或者在Linux/unix下通过Wget、Curl等命令下载以下软件):

 

mkdir -p /data0/software
cd /data0/software
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.7.51.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.8-fpm-0.5.10.diff.gz
wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.33.zip
wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz
wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-7.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.5.3.tar.bz2
wget http://blog.s135.com/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.2.2.tgz

 


 

  

二、安装PHP 5.2.8(FastCGI模式)

  1、编译安装PHP 5.2.8所需的支持库:

 

tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local
make
make install
cd ../

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../

 


 

  2、编译安装MySQL 5.1.33

 

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
unzip mysql-5.1.33.zip
cd mysql-5.1.33/
./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make && make install
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql
cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf
cd ../

 


 

  附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。

 

  ①、以mysql用户帐号的身份建立数据表:

 

/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql

 

  ②、启动MySQL(最后的&表示在后台运行)

 

/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql/my.cnf &

 


 

  3、编译安装PHP(FastCGI模式)

 

tar zxvf php-5.2.8.tar.gz
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1
cd php-5.2.8/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
cd ../

 


 

  4、编译安装PHP5扩展模块

 

tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql
make
make install
cd ../

tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../

tar zxvf imagick-2.2.2.tgz
cd imagick-2.2.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

 

  5、修改php.ini文件

 

  

手工修改:

查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"

 

  修改为extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"

 

  并在此行后增加以下几行,然后保存:

 

  extension = "memcache.so"

 

  extension = "pdo_mysql.so"

 

  extension = "imagick.so"

 

  再查找output_buffering = Off

 

  修改为output_buffering = On

 

  

自动修改:

若嫌手工修改麻烦,可执行以下shell命令,自动完成对php.ini文件的修改:

 

sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\nextension = "imagick.so"\n#' /usr/local/webserver/php/etc/php.ini
sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/webserver/php/etc/php.ini

 

  6、配置eAccelerator加速PHP:

 

mkdir -p /usr/local/webserver/eaccelerator_cache
vi /usr/local/webserver/php/etc/php.ini

 

  按shift+g键跳到配置文件的最末尾,加上以下配置信息:

 

引用
[eaccelerator]
zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="128"
eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="300"
eaccelerator.shm_prune_period="120"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

 

  修改配置文件:

 

vi /etc/sysctl.conf

 

  输入以下内容:

 

引用
kernel.shmmax = 134217728

 

  然后执行以下命令使配置生效:

 

/sbin/sysctl -p

 


 

  7、创建www用户和组,以及供blog.s135.com和

www.s135.com

两个虚拟主机使用的目录:

 

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data0/htdocs/blog
chmod +w /data0/htdocs/blog
chown -R www:www /data0/htdocs/blog
mkdir -p /data0/htdocs/www
chmod +w /data0/htdocs/www
chown -R www:www /data0/htdocs/www

 

  8、创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):

 

  在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件:

 

rm -f /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf

 

   输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的<value name="display_errors">0</value>改为<value name="display_errors">1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

  1. <?xml version="1.0" ?>  
  2. <configuration>  
  3.   
  4.   All relative paths in this config are relative to php's install prefix  
  5.   
  6.   <section name="global_options">  
  7.   
  8.     Pid file  
  9.     <value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value>  
  10.   
  11.     Error log file  
  12.     <value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>  
  13.   
  14.     Log level  
  15.     <value name="log_level">notice</value>  
  16.   
  17.     When this amount of php processes exited with SIGSEGV or SIGBUS ...  
  18.     <value name="emergency_restart_threshold">10</value>  
  19.   
  20.     ... in a less than this interval of time, a graceful restart will be initiated.  
  21.     Useful to work around accidental curruptions in accelerator's shared memory.  
  22.     <value name="emergency_restart_interval">1m</value>  
  23.   
  24.     Time limit on waiting child's reaction on signals from master  
  25.     <value name="process_control_timeout">5s</value>  
  26.   
  27.     Set to 'no' to debug fpm  
  28.     <value name="daemonize">yes</value>  
  29.   
  30.   </section>  
  31.   
  32.   <workers>  
  33.   
  34.     <section name="pool">  
  35.   
  36.       Name of pool. Used in logs and stats.  
  37.       <value name="name">default</value>  
  38.   
  39.       Address to accept fastcgi requests on.  
  40.       Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'  
  41.       <value name="listen_address">127.0.0.1:9000</value>  
  42.   
  43.       <value name="listen_options">  
  44.   
  45.         Set listen(2) backlog  
  46.         <value name="backlog">-1</value>  
  47.   
  48.         Set permissions for unix socket, if one used.  
  49.         In Linux read/write permissions must be set in order to allow connections from web server.  
  50.         Many BSD-derrived systems allow connections regardless of permissions.  
  51.         <value name="owner"></value>  
  52.         <value name="group"></value>  
  53.         <value name="mode">0666</value>  
  54.       </value>  
  55.   
  56.       Additional php.ini defines, specific to this pool of workers.  
  57.       <value name="php_defines">  
  58.         <value name="sendmail_path">/usr/sbin/sendmail -t -i</value>  
  59.         <value name="display_errors">1</value>  
  60.       </value>  
  61.   
  62.       Unix user of processes  
  63.         <value name="user">www</value>  
  64.   
  65.       Unix group of processes  
  66.         <value name="group">www</value>  
  67.   
  68.       Process manager settings  
  69.       <value name="pm">  
  70.   
  71.         Sets style of controling worker process count.  
  72.         Valid values are 'static' and 'apache-like'  
  73.         <value name="style">static</value>  
  74.   
  75.         Sets the limit on the number of simultaneous requests that will be served.  
  76.         Equivalent to Apache MaxClients directive.  
  77.         Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi  
  78.         Used with any pm_style.  
  79.         <value name="max_children">128</value>  
  80.   
  81.         Settings group for 'apache-like' pm style  
  82.         <value name="apache_like">  
  83.   
  84.           Sets the number of server processes created on startup.  
  85.           Used only when 'apache-like' pm_style is selected  
  86.           <value name="StartServers">20</value>  
  87.   
  88.           Sets the desired minimum number of idle server processes.  
  89.           Used only when 'apache-like' pm_style is selected  
  90.           <value name="MinSpareServers">5</value>  
  91.   
  92.           Sets the desired maximum number of idle server processes.  
  93.           Used only when 'apache-like' pm_style is selected  
  94.           <value name="MaxSpareServers">35</value>  
  95.   
  96.         </value>  
  97.   
  98.       </value>  
  99.   
  100.       The timeout (in seconds) for serving a single request after which the worker process will be terminated  
  101.       Should be used when 'max_execution_time' ini option does not stop script execution for some reason  
  102.       '0s' means 'off'  
  103.       <value name="request_terminate_timeout">0s</value>  
  104.   
  105.       The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file  
  106.       '0s' means 'off'  
  107.       <value name="request_slowlog_timeout">0s</value>  
  108.   
  109.       The log file for slow requests  
  110.       <value name="slowlog">logs/slow.log</value>  
  111.   
  112.       Set open file desc rlimit  
  113.       <value name="rlimit_files">51200</value>  
  114.   
  115.       Set max core size rlimit  
  116.       <value name="rlimit_core">0</value>  
  117.   
  118.       Chroot to this directory at the start, absolute path  
  119.       <value name="chroot"></value>  
  120.   
  121.       Chdir to this directory at the start, absolute path  
  122.       <value name="chdir"></value>  
  123.   
  124.       Redirect workers' stdout and stderr into main error log.  
  125.       If not set, they will be redirected to /dev/null, according to FastCGI specs  
  126.       <value name="catch_workers_output">yes</value>  
  127.   
  128.       How much requests each process should execute before respawn.  
  129.       Useful to work around memory leaks in 3rd party libraries.  
  130.       For endless request processing please specify 0  
  131.       Equivalent to PHP_FCGI_MAX_REQUESTS  
  132.       <value name="max_requests">500</value>  
  133.   
  134.       Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.  
  135.       Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)  
  136.       Makes sense only with AF_INET listening socket.  
  137.       <value name="allowed_clients">127.0.0.1</value>  
  138.   
  139.       Pass environment variables like LD_LIBRARY_PATH  
  140.       All $VARIABLEs are taken from current environment  
  141.       <value name="environment">  
  142.         <value name="HOSTNAME">$HOSTNAME</value>  
  143.         <value name="PATH">/usr/local/bin:/usr/bin:/bin</value>  
  144.         <value name="TMP">/tmp</value>  
  145.         <value name="TMPDIR">/tmp</value>  
  146.         <value name="TEMP">/tmp</value>  
  147.         <value name="OSTYPE">$OSTYPE</value>  
  148.         <value name="MACHTYPE">$MACHTYPE</value>  
  149.         <value name="MALLOC_CHECK_">2</value>  
  150.       </value>  
  151.   
  152.     </section>  
  153.   
  154.   </workers>  
  155.   
  156. </configuration>  

  9、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为200(如果服务器内存小于3GB,可以只开启64个进程),用户为www:

 

ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start

 

   注:/usr/local/webserver/php/sbin/php-fpm还有其他参数,包 括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件 使用reload。

 


 

  

三、安装Nginx 0.7.51

  1、安装Nginx所需的pcre库:

 

tar zxvf pcre-7.8.tar.gz
cd pcre-7.8/
./configure
make && make install
cd ../

 

  2、安装Nginx

 

tar zxvf nginx-0.7.51.tar.gz
cd nginx-0.7.51/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../

 

  3、创建Nginx日志目录

 

mkdir -p /data1/logs
chmod +w /data1/logs
chown -R www:www /data1/logs

 

  4、创建Nginx配置文件

 

  ①、在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件:

 

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf

 

  输入以下内容:

 

引用
user  www www;

worker_processes 8;

error_log  /data1/logs/nginx_error.log  crit;

pid        /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
  use epoll;
  worker_connections 51200;
}

http
{
  include       mime.types;
  default_type  application/octet-stream;

  #charset  gb2312;
      
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
      
  sendfile on;
  tcp_nopush     on;

  keepalive_timeout 60;

  tcp_nodelay on;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;

  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

  #limit_zone  crawler  $binary_remote_addr  10m;

  server
  {
    listen       80;
    server_name  blog.s135.com;
    index index.html index.htm index.php;
    root  /data0/htdocs/blog;

    #limit_conn   crawler  20;    
                            
    location ~ .*\.(php|php5)?$
    {      
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }    

    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
    access_log  /data1/logs/access.log  access;
      }

  server
  {
    listen       80;
    server_name  www.s135.com;
    index index.html index.htm index.php;
    root  /data0/htdocs/www;

    location ~ .*\.(php|php5)?$
    {      
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

    log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" $http_x_forwarded_for';
    access_log  /data1/logs/wwwlogs.log  wwwlogs;
  }

  server
  {
    listen  80;
    server_name  status.blog.s135.com;

    location / {
    stub_status on;
    access_log   off;
    }
  }
}

 

  ②、在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件:

 

vi /usr/local/webserver/nginx/conf/fcgi.conf

 

  输入以下内容:

 

引用
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

 

  5、启动Nginx

 

ulimit -SHn 51200
/usr/local/webserver/nginx/sbin/nginx

 


 

  

四、配置开机自动启动Nginx + PHP

vi /etc/rc.local

 

  在末尾增加以下内容:

 

引用
ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx

 


 

  

五、优化Linux内核参数

vi /etc/sysctl.conf

 

  在末尾增加以下内容:

 

引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000    65000

 

  使配置立即生效:

 

/sbin/sysctl -p

 


 

  

六、在不停止Nginx服务的情况下平滑变更Nginx配置

  1、修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

 

/usr/local/webserver/nginx/sbin/nginx -t

 

  如果屏幕显示以下两行信息,说明配置文件正确:

 

  

the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully

  2、这时,输入以下命令查看Nginx主进程号:

 

ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

 

  屏幕显示的即为Nginx主进程号,例如:

 

  

6302

  这时,执行以下命令即可使修改过的Nginx配置文件生效:

 

kill -HUP 6302

 

  或者无需这么麻烦,找到Nginx的Pid文件:

 

kill -HUP `cat /usr/local/webserver/nginx/nginx.pid`

 


 

  

七、编写每天定时切割Nginx日志的脚本

  1、创建脚本/usr/local/webserver/nginx/sbin/cut_nginx_log.sh

 

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

 

  输入以下内容:

 

引用
#!/bin/bash
# This script run at 00:00

# The Nginx logs path
logs_path="/usr/local/webserver/nginx/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

 

  2、设置crontab,每天凌晨00:00切割nginx访问日志

 

crontab -e

 

  输入以下内容:

 

引用
00 00 * * * /bin/bash  /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

 


 

  本文若有小的修改,会第一时间在以下网址发布:

 

  

http://blog.s135.com/post/366.htm

 

阅读全文

王家卫的一些电影中台词

1 Comment | 精品文摘 | by bigsea | 1844 Views. | 2009, April 14, 12:21 PM

∷要想不被人拒绝,最好的办法是先去拒绝别人。
∷我这生都不知道还会喜欢多少个女人,不到最后我是不知哪个才是我最喜欢的。
∷最了解你的人不是你的朋友,而是你的敌人。
∷黎耀辉,不如我们重新开始。
∷好多人以为做我们这行没什么朋友,其实杀手都会有小学同学。
∷很多年之后,我有个绰号叫做西毒,任何人都可以变得狠毒,只要你尝试过什么叫嫉妒。我不会介意其他人怎么看我,我只不过不想别人比我更开心。
∷我以为有一些人永远都不会嫉妒,因为他太骄傲。在我出道的时候,我认识了一个人,因为他喜欢在东边出没,所以很多年后,他有个绰号叫东邪。
∷一个人有烦恼是因为记性太好,如果什么都可以忘掉,以后的每一天都会是一个新的开始。
∷任何人都可以变得狠毒,只要你尝试过什么叫忌妒。
∷每次他都会回来跟我说,"让我们重新开始……"
∷如果,我多一张船票,你会不会跟我一起走?
∷做拍档,除了要了解她外,还要给机会让她了解你。
∷每一天你都会跟许多人擦身而过,而那个人呢,可能会变成你的朋友,或者知己。所以我从来都没有放弃过任何跟人磨擦的机会。有时候会弄到头破血流,管它呢,开心就好。
∷你越想知道自己是不是忘记反而记得越清楚,当你不能够再拥有的时候,唯一可做的,就是让自己不要忘记。
∷知不知道饮酒和饮水有什么区别?酒越饮越暖,水越喝越寒。
∷有时候,耳朵比眼睛还重要,很多东西用耳朵听比用眼睛看好,一个人可以假装开心,但声音就装不了,细心一听就知道了。
∷以前认为那些话很重要,因为我觉得有些话说出来就是一生一世,现在想想也没什么吧,什么都会变的……
∷如果有一天我忍不住问你最爱的人是不是我,无论你心里有多苦,有多么的不情愿,你都一定要骗我,不要让我知道你最爱的人不是我……
∷最好的拍档是不该有感情的。
∷你知不知道有一种鸟没有脚的?他的一生只能在天上飞来飞去。一辈子只能落地一次,那就是他死的时候。
∷我曾听人家说过,当你不再拥有时,你最应该做的就是另自己不要忘记。
∷一个人受了挫折或多或少都会找个借口来掩饰自己。
∷每个人都会坚持自己的信念,在别人看来是浪费时间。
∷我以为我和他不一样,原来寂寞的时候,每个人都一样。
∷无论怎样,你要相信世界上有一个人在等你,不管什么时间,什么地点,总之你要相信有这样的一个人
∷我知道这世上有人在等我,但我不知道我在等谁,为了这个,我每天都非常快乐
∷当我们满怀喜悦和惆怅的成长已经成为一种可以被讲述的故事时,我们发现我们从未遵守过任何一个诺言,但我们真的真心真意爱过
∷有些人一辈子都在骗人,而有些人用一辈子去骗一个人
∷从分手的那一天开始,我每天买一罐5月1号到期的凤梨罐头,因为凤梨是阿美最爱吃的东西,而5月1号是我的生日。我告诉我自己,当我买满30罐的时候,她如果还不回来,这段感情就会过期。不知道什么时候开始,在每个东西上面都有一个日子,秋刀鱼会过期,肉罐头会过期,连保鲜纸都会过期,我开始怀疑,在这个世界上,还有什么东西不会过期的?
∷当你年轻时,以为什么都有答案,可是老了的时候,你可能又觉得其实人生并没有所谓的答案。
∷我曾经试做另外一个梦,然而,我却失败了。我终于明白,我的梦只属于那个离去的人。我也发现,有梦原来是一件痛苦的事。
∷生命中充满了巧合,两条平行线也会有相交的一天
∷往往都是事情改变人,人却改变不了事情
∷这一分钟,你和我在一起,因为你,我会记得那一分钟。从现在开始,我们就是一分钟的朋友。这是事实,你改变不了,因为已经完成了。
∷这世上没有好人和坏人,只有生意人。
∷人生下来的时候都只有一半,为了找到另一半而在人世间行走。有的人幸运,很快就找到了。而有人却要找一辈子......
∷猜疑、撒谎。妈的,这越来越象婚姻了
∷小时候,看着满天的星星,当流星飞过的时候,却总是来不及许愿。长大了,遇见了自己喜欢的人,却还是来不及。
∷一个人杀了一个人,他是杀人犯,是坏人。当他杀了成千上万人后,他是大英雄,是好人。
∷如果感情可以分胜负的话,我不知道她是否会赢,但是我很清楚,从一开始,我就输了。
∷不知道什么时候开始,我变成一个很小心的人,每次我穿雨衣的时候,我都会戴太阳眼镜,你永远都不会知道什么时候会下雨,什么时候出太阳。
∷一个人记忆力不好就不要到处走,他很可能找不到回家的路。
∷我很快就适应了这种生活.开始懂得到了逢场作戏.虽然有很多都是雾水情缘.但是没关系了.哪来那么多一生一世.
∷当我离开这房子的时候,我知道身后有一双眼睛盯着我,但我是一定不会回头的。我只不过想见见她,看看她的样子,既然她不给我机会,我也一定不会给她机会。
∷那些消逝了的岁月仿佛隔着一块积着灰尘的玻璃看得到,抓不着...他一直在怀念着过去的一切,如果他能冲破那块积着灰尘的玻璃,他会走回早已消逝的岁月。
∷我一直以为自己赢了 当有天我看到镜子 我才知道自己输了 我最美好的时候 我最爱的人不在我身边
∷我不知道他有没有因为这一分钟而记得我,但我一直都记住这个人
∷你越想知道自己是不是忘记的时候,你反而记得清楚。
∷过期的东西不会再过期了
∷每一个人都有失恋的时候,而我每一次失恋呢,我就要去跑步。因为跑步可以将你身体里面的水分蒸发掉,而让我不那么容易流泪,我怎么可以流泪呢?
∷不知道什么时候开始,我变成一个很小心的人,每次我穿雨衣的时候,我都会戴太阳眼镜,你永远都不会知道什么时候会下雨,什么时候出太阳
∷我不知道是不是我上班的时候忘了关水龙头,还是房子越来越有感情。我一直都以为它很坚强,谁知道它会哭得这么厉害。一个人哭,你只要给他一包纸巾,可是一个房子哭,你要多做很多功夫。

阅读全文

茶道哲学之品茶与品人

1 Comment | 精品文摘 | by bigsea | 1742 Views. | 2009, April 10, 4:35 PM

有人说:泡茶与泡mm,都是一个泡,都是工夫,都是文化;品茶和品女人,都是一个品,都是妙趣,都是享受。而我要说的是,时代不同了,凭什么“泡”这个行为动作只属于男人?泡茶与泡男人,都是一个泡,都是工夫,都是艺术;品茶和品男人,都是一个品,都是妙趣,都是享受!

      好茶要好水,上好的泡茶之水是天水,如雨水、雪水,露水。没读过《红楼梦》不知道妙玉用隔年雨水和多年梅花上的雪水泡茶之韵的,也应见识过《还珠格格》 里的紫薇和《京华烟云》里姚木兰用荷叶上的露珠泡茶之风雅,只是现在大气污染严重,我等好茶之士也只得退而求其次奉江河山泉之水为上品了。女人如水,天水 一样的女人不是做了七仙女上了天,就是化成蝴蝶飞走了,而山泉一般的清澈女人,则不少。

女人若水,男人若茶,这茶样的男人自然得由女人来泡了。

好水泡好茶,好女人泡好男人。倘若一个徐志摩那等花茶样浪漫而多情的男人,遇上了一个只知铜板的市井妇人,不是火星撞地球,也得哀叹“世风日下”了。

泡茶的首要步骤是温杯洗茶,这招叫若琛出浴春风拂面;泡男人的首要之举要温文尔雅,适当调动对方的温度与热情,方能让你尽情的泡和欣赏;

冲茶时要使“凤凰三点头”以示对客之恭敬,泡男人时切记莞尔一笑以示欣赏,同时给对方也留下好感;

泡茶里有一招叫“游山玩水”,方法是将茶壶之底在茶盘边缘旋转一圈,以括去壶底之水,防止滴入杯中,泡男人不妨也用用这招,即使不能现身说法的访遍祖国的大好河山,也要是图片之上饱览祖国风光,以此考验他的学识,品味他的品位;

依次来回往各杯中斟茶使茶汤分布均匀以示公允,泡男人时要遍地开花不可恩宠一人以示公平,否则打翻了醋坛子会让你死得比打翻鸡蛋篮子还要难看;

韩信点兵是要倾出所有壶底里的茶之精华,可提高下一次冲泡时茶水的温度,以便泡出新鲜的茶汤,泡男人亦要让其尽情的投入

以尽享个中奥妙。倘若此泡茶汤未尽,不仅影响此泡茶汤的色泽、风味,更影响下一泡茶汤的品味;倘若这一次泡男人不成功,必对下次泡男人索然无味断了兴致,或无前次之比较而少生乐趣。茶语清心)

乳臭刚退初出江湖的男子,犹如茶女手中刚刚采摘下来的鲜嫩的茶叶,只等着那个叫“妻子”的女人,亲手焙制加工成“茶”,这时的男人,初为茶形,若立即饮 之,不是火味太重,就是青涩味浓,必稍加藏之,方能出佳品。于是,这初成茶形的男人在婚姻里稍加珍藏后,便可上市让众女子品了。

人们品茶,品的是茶女的劳动成果;我们女人品男人,品的则是另一个女人的功劳。有言证:婚姻是男人最好的学堂,而女人则是男人最好的老师。

茶叶根据发酵程度的不同,可分成绿茶、红茶和乌龙茶。

绿茶是不发酵茶,具有外形美观、富含VC等物质,有减肥美容之功效,但终因含量不够而内涵不足,往往不耐泡,顶多三泡之后,则无味了。所以泡这类男人时, 千万别为他们头上的油光可鉴、说话的文质彬彬而忘了自己的形。这类茶的典型代表是西湖龙井、洞庭碧螺春;这类男人的经典代表为《花样年华》里的梁朝伟,再 深邃的眼光,也无力留住自己心爱的女人,泡上这样的的男人,唯有替他忧伤,等同于玩火,因为除了伤感,他给不了你任何安全和保护。

红茶为全发酵茶。红茶一样的男人,外形不羁,甚至会蓬头垢面,让以貌取人之士避而远之。其实这样的粗糙,不过是一种“天然去修饰”的大自大然之象,留心品 之,只见茶色红润,入口香糯软滑,回甘醇厚,大有初吻之感,更重要的是红茶兼具保健功能,可养颜养胃驱寒气,可久饮长品。这类茶的代表为安徽祁门红茶,云 南普洱茶。这类男人的典型代表为曾志伟饰演的黑社会老大。其貌不扬的黑社会老大,为了自己心爱的女人,即使知道她和她的手下有染,也甘愿献出自己的生命以 维护她的安全,不得不让人唏嘘感叹。

乌龙茶为半发酵茶。乌龙茶一般的男人,不仅外形甚佳,且内涵丰富,泡之香气四溢,品之回味悠长,兼具绿茶和红茶之长,其独有的天然花果之气,香高馥郁,徐 徐咽下,一杯清肠胃,二杯涤凡尘,三杯可得道矣!这类男人,以他们丰富的学识、修养,与智慧、幽默的谈吐,让人尽识儒风之妙。泡这类男人,非得使出一百度 的高温冲泡,才能尽享其中乐趣。这类茶的经典代表是福建安溪铁观音;这类男人的经典代表则为《大长今》里的闵政浩。他能文能武,侠骨柔情,为自己心爱的女 人默默追随付出,甚至不惜抛弃荣华富贵。当大长今对他因自己而失去官职无限销魂的轻问“真的没关系吗?”时,闵政浩深情的凝视着长今,用那娓娓动听的声 音,深情款款的说“正是因为是你,所以才真的没关系。”这样执著、豁达与深情隽永的男人,才值得女人永远的去品味.

    还有一种贵族茶为福建武夷大红袍,该茶因得皇帝御裳之大红袍而得名,因此,此类男人,也只适合血脉相当的贵族女子去泡去品,否则,他张口名牌,闭口家族,没准再问你一声你敲打键盘的手指属于哪个家族的血统,你不气得吐血,也会傻得吐饭。

写到此,我手边的铁观音散发出蛊惑人心的清香,轻轻的啜一口,醍醐灌顶,又轻轻的啜一口,神思飘渺,再轻轻的啜一口,飘飘欲仙。谁说只酒使人醉,清茗半盏 亦醉人。品茶,就这么一口一口的啜饮而品。而品男人,则是用你欣赏的目光,一寸一寸的去享受他们的优秀。三口品出一杯好茶,三笑也就品出一段姻缘。人家秋 香妹妹不就是这么一顾二顾连三顾的巧笑倩兮吗?虽没有倾城倾国,但也倾得大名鼎鼎的唐泊虎甘愿卖身为奴倾倒在其石榴裙下。此秋香,堪称泡男人之高手矣。而 高高手则是孝庄皇太后,品得人家多尔滚连江山都不要、要站在一旁守护她“站在万人中央享受那万丈荣光”,品男人品到这份上,可谓一代宗师、登峰造极、炉火 纯青了。

品茶若能品出“茶禅一味”来,是达到了品茶的及至境界;品男人若能品出“茶馋一味”,则到了品男人的及至境界。

人生品茶品男人,若无缘品得鲁迅珍藏的那几克天价普洱茶,能品品“七泡有余香”的铁观音也不错了,知足常乐嘛。

“平生于物原无取,偏爱山中茶一杯”。梧桐好茶,常泡之而独酌。梧桐好色,常想觅深山野茶一样淡泊宁静而又深不可测的茶样男人泡泡,奈何属于自己的这种山 茶早已绝种,可谓是人生一大憾事,于是,只有借得这茶之清香与悠远,独坐于红尘之中,透过茶雾,看红尘中人品茶品男人了。

阅读全文

用心去领会的茶道文化

No Comments | 精品文摘 | by bigsea | 1905 Views. | 2009, April 10, 3:32 PM

一,茶道的起源

打开中华民族五千年文明史,几乎每一页都可以嗅到茶香。我国是一个多民族国家,由于各兄弟民族的地理环境不同,历史文化有别,生活习惯也会有差异,就是同一民族也有“千里不同风,百里不同俗”的现象。但是在饮茶、嗜茶方面却有共同的爱好,无论茶的饮用方法有什么不同,都是中华民族共同珍爱的。
如今,茶夷发展成为风靡世界的三大无酒精饮料之一,饮茶嗜好遍及全球。在英国,茶被视为美容、养颜的饮料,从宫廷传到民间后形成了喝早茶、午后茶的时尚习俗,博学的勃莱迪牧师称茶为:“健康之液,灵魂之饮。”在法国人眼里,茶是“最温柔、最浪漫、最富有诗意的饮品。”在日本,茶不仅被视为是“万病之药”,是“原子时代的饮料”,而且在日本人在长期的饮茶实践中,使饮茶脱离了日常物质生活需要的范围,发展升华为一种优雅的文化艺能——茶道。

在我国,茶被誉为“国饮”。“文人七件宝,琴棋书画诗酒茶,”茶通六艺,使我国传统文化艺术的载体。茶被人们视为生活的享受,健康的良药,提神的饮料,友谊的纽带,文明的象征。中国人为什么爱茶,因为,喝茶有益,喝茶有礼,喝茶有道。

在博大精深的中国茶文化中,茶道是核心。茶道包括两个内容:一是备茶品饮之道,即备茶的技艺、规范和品饮方法;二是思想内涵。即通过饮茶陶冶情操、修身养性,把思想升华到富有哲理的境界。也可以说是在一定社会条件下把当时所倡导的道德和行为规范寓于饮茶的活动之中。这两个基本点,在唐人陆羽《茶经》中都明显得到体现。

《茶经》共十章。除四章是讲茶的性状起源,制茶工具,造茶方法和产区分布外,其余六章全部或主要是讲煮茶技艺、要领与规范的。“四之器”详细描述了茶道所需的24种器皿,包括规格、质地、结构、造型、纹饰、用途和使用方法;“五之煮”讲烤茶要领,选用燃料,鉴别水质,怎样掌握火候和培育茶的精华技巧;“六之饮”详细规定了饮茶应该注意的9个问题,还提出品名贵之茶每次不要超过三盏以及三人饮茶、五人饮茶和七人饮茶各应如何进行;“七之事”例举历史上饮茶典故与名人逸事;“九之略”讲述在野外松间石上、清泉流水处和登山时在山洞里等不同场所进行茶道哪些器皿可以省略;“十之图”要求把《茶经》所写的茶事活动绘成图,挂在茶席一角,使参加者能在场看明白。对于茶道的思想内涵,《茶经》写道:“茶之为用,味至寒,为饮,最宜精行俭德之人。”作者这里提出了“精行俭德”作为茶道思想内涵。也就是说,通过饮茶活动,陶冶情操,使自己成为具有美好的行为〖和俭朴、高尚道德的人。

与陆羽忘年交的释皎然在题为《饮茶歌诮崔石使君》写到:“一饮涤昏寐,情思爽朗满天地。再饮清我神,忽如飞雨洒轻尘。三饮便得道,何须苦心破烦恼……孰知茶道全尔真,唯有丹丘得如此。”在一首诗中两次提到了茶道一词。此后,唐御史中丞封演在《封氏闻见记》“饮茶”一章又写道:“有常伯熊者因鸿渐之论,广润色之,于是茶道大行”。从上述文献可知:是《茶经》确立了茶道的表现形式与富有哲理的茶道精神;而释皎然和封演赋予了“茶道”名称。

二,中国茶道的基本精神


 中国人视道为体系完整的思想学说,是宇宙、人生的法则、规律,所以,中国人不轻易言道,不像日本茶有茶道,花有花道,香有香道,剑有剑道,链摔跤搏击也有柔道、跆拳道。在中国饮食、玩乐诸活动中能升华为“道”的只有茶道。

什么是茶道

茶道属于东方文化。东方文化与西方文化的不同,在于东方文化往往没有一个科学的、准确的定义,而要靠个人凭借自己的悟性去贴近它、理解它。早在我国唐代就有了“茶道”这个词,例如,《封氏闻见记》中:“又因鸿渐之论,广润色之,于是茶道大行。”唐代刘贞亮在饮茶十德中也明确提出:“以茶可行道,以茶可雅志。”尽管“茶道”这个词从唐代至今已使用了一千多年,但至今在《新华辞典》、《辞海》、《词源》等工具书中均无此词条。那么,什么是茶道呢?

1、日本对茶道的解释

日本人把茶道是位日本文化的结晶,也是日本文化的代表。近几百年来,在日本致力于茶道研究的人层出不穷,在长期实践的基础上,近几年才开始有学者给茶道下定义。

1977年,谷川激三先生在《茶道的美学》一书中,将茶道定义为:以身体动作作为媒介而演出的艺术。它包含了艺术的因素、社交因素、礼仪因素和修行因素等四个因素。

久松真一先生则认为:茶道文化是以吃茶为契机的综合文化体系,它具有综合性、统一性、包容性。其中有艺术、道德、哲学、宗教以及文化的各个方面,其内核是禅。

熊仓功夫先生从历史学的角度提出:茶道是一种室内艺能。艺能使人本文化独有的一个艺术群,它通过人体的修炼达到人陶冶情操完善人格的目的。

人本茶汤文化研究会仓泽行洋先生则主张:茶道十一深远的哲理为思想背景,综合生活文化,是东方文化之精华。他还认为,“道是通向彻悟人生之路,茶道是至心之路,又是心至茶之路。

面对博大精深的茶道文化,如何给茶道下定义,可难为了日本学者。

2、我国学者对茶道的解释

受老子:“道可道,非常道。名可名,非常名”的思想影响,“茶道”一词从使用以来,历代茶人都没有给他下过一个准确的定义。直到近年对茶道见仁见智的解释才热闹起来。

吴觉农先生认为:茶道是“把茶视为珍贵、高尚的饮料,饮茶是一种精神上的享受,是一种艺术,或是一种修身养性的手段。”

庄晚芳先生认为:茶道是一种通过饮茶的方式,对人民进行礼法教育、道德修养的一种仪式。庄晚芳先生还归纳出中国茶道的基本精神为:“廉、美、和、敬”他解释说:“廉俭育德、美真廉乐、合诚处世、敬爱为人。”

陈香白先生认为:中国茶道包含茶艺、茶德、茶礼、茶理、茶情、茶学说、茶道引导七种义理,中国茶道精神的核心是和。中国茶道就是通过茶是过程,引导个体在美的享受过程中走向完成品格修养以实现全人类和谐安乐之道。陈香白先生德茶道理论可简称为:“七艺一心”。

周作人先生则说得比较随意,他对茶道的理解为:“茶道的意思,用平凡的话来说,可以称作为忙里偷闲,苦中作乐,在不完全现实中享受一点美与和谐,在刹那间体会永久。”

台湾学者刘汉介先生提出:“所谓茶道是指品茗的方法与意境。”其实,给茶道下定义是件费力不讨好的事。茶道文化的本身特点正是老子所说的:“道可道,非常道。名可名,非常名”同时,佛教也认为:“道由心悟”如果一定要给茶道下一个定义,把茶道作为一个固定的、僵化的概念,反倒失去了茶道的神秘感,同时也限制了茶人的想象力,淡化了通过用心灵去悟道时产生的玄妙感觉。用心灵去悟茶道的玄妙感受,好比是“月印千江水,千江月不同。”有的“浮光耀金”有的“静影沉壁”有的“江清月近人”,有的“水浅鱼读月”,有的“月穿江底水无痕”,有的“江云有影月含羞”,有的“冷月无声蛙自语”,有的“清江明水露禅心”。有的“疏枝横斜水清浅,暗香浮动月黄昏。”有的则“雨暗苍江晚来清,白云明月露全真。”月之一轮,映像各异。“茶道”如月,人心如江,在各个茶人的心中对茶道自有不同的美妙感受。

三,淡泊明志、宁静致远的文人茶道

“茶道”起源于唐代的民间,经文人士大夫的参与和传播,形成了一种“文人茶道”,它是茶道的精髓。

在唐代繁华的社会里,物欲横流,很多人追求一种奢华的物质生活,“物精极、衣精极、屋精极”是他们的生活目标。人们相互争斗和倾辄。社会流行着奢侈和虚夸之风。当时有正义感的文人士大夫们,对这种奢华之风非常不屑,他们常聚在一起品茶、探讨茶艺、博古论今无所不谈。

茶道创始人陆羽(唐朝)著有《茶经》一书,陆羽用自己的一生从事茶文化的研究,他对茶叶的栽培与摘采;茶具、茶器的制作;烹茶时水源的选择;烹茶、酌茶时身体的动作进行了规范和总结,并赋予茶道一种特殊的文化内函,即饮茶、赋茶、以茶示俭、以茶示廉,与文人茶道的精神是极为吻合的。

文人茶道在陆羽茶道的基础上溶入了琴、棋、书、画,它更注重一种文化氛围和情趣,注重一种人文精神,提倡节俭、淡泊、宁静的人生。茶人在饮茶、制茶、烹茶、点茶时的身体语言和规范动作中,在特定的环境气氛中,享受着人与大自然的和谐之美:没有躁杂的喧哗、没有人世的纷争,只有鸟语花香、溪水、流云和悠扬的古琴声,茶人的精神得到一种升华。它充分的反映了文人士大夫们希望社会少一些争戈,多一些宁静;少一些虚华,多一些真诚。茶具的朴实也说明了茶人们反对追求奢华的风气,希望物尽其用、人尽其才。可以说“文人茶道”是一种“艺”(制茶、烹茶、品茶之术)和“道”(精神)的完美结合。光有“艺”只能说有形而无神,光有“道”只能说有神而无形。所以说,没有一定的文化修养和良好品德的人是无法溶入到茶道所提倡的精神之中的。

茶道被文人视为一种陶冶心性、体悟人生、抒发情感的风雅之事,有独酌自饮的清幽,也有集会联谊的雅趣。

四,茶文化:中国茶道之文化

茶道是茶艺与精神的结合,并通过茶艺表现精神。兴于中国唐代,盛于宋、明代,衰于清代。中国茶道的主要内容讲究五境之美,即茶叶、茶水、火候、茶具、环境。

茶道要遵循一定的法则。唐代为克服九难 ,即造、别、器、火、水、炙、末、煮、饮。宋代为三点与三不点品茶,"三点"为新茶、甘泉、洁器为一,天气好为一,风流儒雅、气味相投的佳客为一。

中国茶道的具体表现形式有两种: 煎茶。 把茶末投入壶中和水一块煎煮。唐代的煎茶,是茶的最早艺术品尝形式。

斗茶。古代文人雅士各携带茶与水,通过比茶面汤花和品尝鉴赏茶汤以定优劣的一种品茶艺术。斗茶又称为茗战,兴于唐代末,盛于宋代。最先流行于福建建州一带。斗茶是古代品茶艺术的最高表现形式。

工夫茶。清代至今某些地区流行的工夫茶是唐、宋以来品茶艺术的流风余韵。清代工夫茶流行于福建的汀州、漳州、泉州和广东的潮州。工夫茶讲究品饮工夫。

在中国茶道的发展历程中,佛教起到了很重要的作用。

唐代《封氏闻见录》载:"学禅务于不寐,又不夕食,皆许其饮茶。人自怀伽,到处煮饮,从此转相仿效,遂成风俗。"又 唐诗人杜牧的:"今日鬓丝禅塌畔,茶烟轻扬落花风"生动描写了老僧煮茶时闲静雅致的情景。

饮茶在大小寺庙的风行,僧人加强对茶叶采制的研究,于是出现历代名山大川寺庙出名茶的现象。

如碧螺春,产自江苏洞庭山的碧螺峰,原名"水月茶",首先又洞庭山水月院山僧制得。武夷岩茶,为武夷寺禅僧制作的最佳。君山银针产于君山白鹤寺。

饮茶与佛教的结合,极大的推动了茶文化的发展,古书记载唐宋的古寺都设有"茶堂"、"茶寮",僧人们都在这里讨论佛理禅道,切磋经论,招待施主宾客,啜饮香茗。

寺院崇尚饮茶、种茶的同时,将佛家清规、饮茶读经与佛学哲理、人生观念融为一体,"茶佛不分家"、"茶禅一体"、"茶禅一位"由此产生。
茶与佛有相通之道,均在主体感受,非深味而不可。饮茶需心平气静,讲究井然有序地啜饮,以求环境与心境的宁静、清净、安逸。

中国茶道的发展历程中,涌现了许多茶叶著作。自唐代陆羽《茶经》到清末程雨亭的《整饬皖茶文牍》,专著共计100多种 。包括茶法 、 杂记、茶谱 、茶录 、茶经、煎茶品茶、水品、茶税、茶论 、茶史 、茶记 、茶集、茶书、茶疏、茶考、茶述、茶辩、茶事、茶诀、茶约、茶衡、茶堂、茶乘、茶话、茶荚、茗谭等。

世界第一部茶叶专著为唐代陆羽的《茶经》。陆羽,名疾,认真总、悉心研究了前人和当时茶叶的生产经验,完成创始之作《茶经》。因此被尊为茶神和茶仙 。《茶经》系统地总结了当时的茶叶采制和饮用经验,全面论述了有关茶叶起源、生产、饮用等各方面的问题,传播了茶业科学知识,促进了茶叶生产的发展,开中国茶道的先河。

自陆羽著《茶经》之后,茶叶专著陆续问世,进一步推动了中国茶事的发展。代表作品有宋代蔡襄的《茶录》、宋徽宗赵佶《大观茶论》,明代钱椿年撰、顾元庆校《茶谱 》、张源的《茶录》,清代刘源长《茶史》等。

五,茶道中的哲学思想

1、“和”中国这茶道哲学思想的核心
“和”是儒、佛、道三教共通的哲学理念。茶道追求的“和”源于《周易》中的“保合大和”“保合大和”的意思指实践万物皆有阴阳两要素构成,阴阳协调,保全大和之元气以普利万物才是人间真道。陆羽在《茶经》中对此论述的很明白。惜墨如金的陆羽不惜佣金二百五十个字来描述它设计的风炉。指出,风炉用铁铸从“ 金”;放置在地上从“土”;炉中烧的木炭从“木”木炭燃烧从“火”;风炉上煮的茶汤从“水”。煮茶的过程就是金木水火土悟心相生相克并达到和谐平衡的过程。可见五行调和等理念是茶道的哲学基础。

儒家从“大和”的哲学理念中推出“中庸之道”的中和思想。在儒家眼里和是中,和是度,和是宜,和是当,和是一切恰到好处,无过亦无不及。儒家对和的诠释,在茶是活动中表现得淋漓尽致。在泡茶时,表现为“酸甜苦涩调太和,掌握迟速量适中”的中庸之美。在待客是表现为“奉茶为礼尊长者,备茶浓意表浓情”的明礼之伦。在饮茶过程中表现为“饮罢佳茗方知深,赞叹此乃草中英”的谦和之礼。在品茗的环境与心境方面表现为“普事故雅去虚华,宁静致远隐沉毅”的俭德之行。


2、“静”中国茶道修习的必由之径

中国茶道是修身养性,追寻自我之道。静是中国茶道修习的必由途径。如何从小小的茶壶中去体悟宇宙的奥秘?如何从淡淡的茶汤中去品位人生?如何在茶事活动中明心见性?如何通过茶道的修习来澡雪精神,锻炼人格,超越自我?答案只有一个——静。


老子说:“至虚极,守静笃,万物并作,吾以观其复。夫物芸芸,各复归其根。归根曰静,静曰复命。”庄子说:“水静则明烛须眉,平中准,大匠取法焉。水静伏明,而况精神。圣人之心,静,天地之鉴也,万物之镜。”老子和庄子所启示的“虚静观复法”是人们明心见性,洞察自然,反观自我,体悟道德的无上妙法。

 

ps:先静心,后品茶~

阅读全文

Total: 7Page 1 of 212Next ›