Archive for 六月, 2009

Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)

by baiheinet on 六月 29th, 2009

  [文章作者:张宴 本文版本:v5.4 最后修改:2009.06.26 转载请注明原文链接:http://blog.s135.com/nginx_php_v5/]

  前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第5篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。这是一篇关于Nginx 0.7.x系列版本的文章,安装、配置方式与第4篇文章相差不大,但增加了MySQL安装配置的信息、PHP 5.2.10 的 php-fpm 补丁。Nginx 0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。

  链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》、《2008年8月的第4版》

  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.nginx.org/NginxChs

--------------------------------------------------------------------------------

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

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

  而这台 Nginx 0.7.61 + PHP 5.2.10 (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.61 + PHP 5.2.10 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):

  Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) nginx status

  我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不高:

  Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) nginx php la

--------------------------------------------------------------------------------

  下面是用100个并发连接分别去压生产环境中同一负载均衡器VIP下、提供相同服务的两台服务器,一台为Nginx,另一台为Apache,Nginx每秒处理的请求数是Apache的两倍多,Nginx服务器的系统负载、CPU使用率远低于Apache:

  你可以将连接数开到10000~30000,去压Nginx和Apache上的phpinfo.php,这是用浏览器访问Nginx上的phpinfo.php一切正常,而访问Apache服务器的phpinfo.php,则是该页无法显示。4G内存的服务器,即使再优化,Apache也很难在“webbench -c 30000 -t 60 http://xxx.xxx.xxx.xxx/phpinfo.php”的压力情况下正常访问,而调整参数优化后的Nginx可以。

  webbench 下载地址:http://blog.s135.com/post/288/

  注意:webbench 做压力测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,请将 webbench 安装在别的服务器上。

  测试结果:##### Nginx + PHP #####

[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.21/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.21/phpinfo.php
100 clients, running 30 sec.

Speed=102450 pages/min, 16490596 bytes/sec.
Requests: 51225 susceed, 0 failed.

top - 14:06:13 up 27 days, 2:25, 2 users, load average: 14.57, 9.89, 6.51
Tasks: 287 total, 4 running, 283 sleeping, 0 stopped, 0 zombie
Cpu(s): 49.9% us, 6.7% sy, 0.0% ni, 41.4% id, 1.1% wa, 0.1% hi, 0.8% si
Mem: 6230016k total, 2959468k used, 3270548k free, 635992k buffers
Swap: 2031608k total, 3696k used, 2027912k free, 1231444k cached

  测试结果:##### Apache + PHP #####

[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.27/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.27/phpinfo.php
100 clients, running 30 sec.

Speed=42184 pages/min, 31512914 bytes/sec.
Requests: 21092 susceed, 0 failed.

top - 14:06:20 up 27 days, 2:13, 2 users, load average: 62.15, 26.36, 13.42
Tasks: 318 total, 7 running, 310 sleeping, 0 stopped, 1 zombie
Cpu(s): 80.4% us, 10.6% sy, 0.0% ni, 7.9% id, 0.1% wa, 0.1% hi, 0.9% si
Mem: 6230016k total, 3075948k used, 3154068k free, 379896k buffers
Swap: 2031608k total, 12592k used, 2019016k free, 1117868k cached

--------------------------------------------------------------------------------

  为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。

  处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:

  假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。

--------------------------------------------------------------------------------

  安装步骤:
  (系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.3,另在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://mirrors.163.com/centos/4/os/i386/CentOS/RPMS/
  http://mirrors.163.com/centos/4/os/x86_64/CentOS/RPMS/

  ②、RedHat AS5 & CentOS 5
  http://mirrors.163.com/centos/5/os/i386/CentOS/
  http://mirrors.163.com/centos/5/os/x86_64/CentOS/

  ③、RPM包搜索网站
  http://rpm.pbone.net/
  http://www.rpmfind.net/

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

wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/libjpeg-devel-6b-33.i386.rpm
rpm -ivh libjpeg-devel-6b-33.i386.rpm
wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/freetype-devel-2.1.9-1.i386.rpm
rpm -ivh freetype-devel-2.1.9-1.i386.rpm
wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/libpng-devel-1.2.7-1.i386.rpm
rpm -ivh libpng-devel-1.2.7-1.i386.rpm

  Ⅱ、x86_64 系统

wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/libjpeg-devel-6b-33.x86_64.rpm
rpm -ivh libjpeg-devel-6b-33.x86_64.rpm
wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/freetype-devel-2.1.9-1.x86_64.rpm
rpm -ivh freetype-devel-2.1.9-1.x86_64.rpm
wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/libpng-devel-1.2.7-1.x86_64.rpm
rpm -ivh libpng-devel-1.2.7-1.x86_64.rpm

  3、【适用CentOS、RedHat及其它Linux操作系统】下载程序源码包:
  本文中提到的所有开源软件为截止到2009年06月26日的最新稳定版。
  ①、从软件的官方网站下载:

mkdir -p /data0/software
cd /data0/software
wget http://sysoev.ru/nginx/nginx-0.7.61.tar.gz
wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.35.tar.gz/from/http://mysql.he.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.9.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.61.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.10.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz
wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.35.tar.gz
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.9.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.10(FastCGI模式)
  1、编译安装PHP 5.2.10所需的支持库:

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.35

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.1.35.tar.gz
cd mysql-5.1.35/
./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
cd ../

--------------------------------------------------------------------------------

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

  ①、创建MySQL数据库存放目录

mkdir -p /data0/mysql/3306/data/
chown -R mysql:mysql /data0/mysql/

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

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

  ③、创建my.cnf配置文件:

vi /data0/mysql/3306/my.cnf

  输入以下内容:

[client]
default-character-set = utf8
port = 3306
socket = /tmp/mysql.sock

[mysql]
prompt="(\u:blog.s135.com :) [\d]> "
no-auto-rehash

[mysqld]
#default-character-set = utf8
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /data0/mysql/3306/data
open_files_limit = 10240
back_log = 600
max_connections = 3000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 300
thread_concurrency = 8
query_cache_size = 32M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 1
log_long_format
log-bin = /data0/mysql/3306/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

skip-name-resolve
master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

server-id = 1

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2048M
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
[mysqldump]
quick
max_allowed_packet = 32M

  ④、创建管理MySQL数据库的shell脚本:

vi /data0/mysql/3306/mysql

  输入以下内容(这里的用户名admin和密码12345678接下来的步骤会创建):

view plaincopy to clipboardprint?
#!/bin/sh

mysql_port=3306
mysql_username="admin"
mysql_password="12345678"

function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown
}

function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 5
function_start_mysql
}

function_kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}

if [ "$1" = "start" ]; then
function_start_mysql
elif [ "$1" = "stop" ]; then
function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
printf "Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n"
fi
#!/bin/sh

mysql_port=3306
mysql_username="admin"
mysql_password="12345678"

function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown
}

function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 5
function_start_mysql
}

function_kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}

if [ "$1" = "start" ]; then
function_start_mysql
elif [ "$1" = "stop" ]; then
function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
printf "Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n"
fi

  ⑤、赋予shell脚本可执行权限:

chmod +x /data0/mysql/3306/mysql

  ⑥、启动MySQL:

/data0/mysql/3306/mysql start

  ⑦、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

  ⑧、输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';

  ⑨、(可选)停止MySQL:

/data0/mysql/3306/mysql stop

--------------------------------------------------------------------------------

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

tar zxvf php-5.2.10.tar.gz
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1
cd php-5.2.10/
./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 --with-xmlrpc --enable-zip --enable-soap --without-pear
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
sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /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="64"
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="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

--------------------------------------------------------------------------------

  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 用于程序调试,请将以下的0改为1,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

<?xml version="1.0" ?> 
<configuration> 
 
  All relative paths in this config are relative to php's install prefix   
 
 
<section name="global_options"> 
 
    Pid file   
    
<value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value> 
 
    Error log file   
    
<value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value> 
 
    Log level   
    
<value name="log_level">notice</value> 
 
    When this amount of php processes exited with SIGSEGV or SIGBUS ...   
    
<value name="emergency_restart_threshold">10</value> 
 
    ... in a less than this interval of time, a graceful restart will be initiated.   
    Useful to work around accidental curruptions in accelerator's shared memory.   
    
<value name="emergency_restart_interval">1m</value> 
 
    Time limit on waiting child's reaction on signals from master   
    
<value name="process_control_timeout">5s</value> 
 
    Set to 'no' to debug fpm   
    
<value name="daemonize">yes</value> 
 
 
</section> 
 
 
<workers> 
 
    
<section name="pool"> 
 
      Name of pool. Used in logs and stats.   
      
<value name="name">default</value> 
 
      Address to accept fastcgi requests on.   
      Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'   
      
<value name="listen_address">127.0.0.1:9000</value> 
 
      
<value name="listen_options"> 
 
        Set listen(2) backlog   
        
<value name="backlog">-1</value> 
 
        Set permissions for unix socket, if one used.   
        In Linux read/write permissions must be set in order to allow connections from web server.   
        Many BSD-derrived systems allow connections regardless of permissions.   
        
<value name="owner"></value> 
        
<value name="group"></value> 
        
<value name="mode">0666</value> 
      
</value> 
 
      Additional php.ini defines, specific to this pool of workers.   
      
<value name="php_defines"> 
        
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value> 
        
<value name="display_errors">1</value> 
      
</value> 
 
      Unix user of processes   
        
<value name="user">www</value> 
 
      Unix group of processes   
        
<value name="group">www</value> 
 
      Process manager settings   
      
<value name="pm"> 
 
        Sets style of controling worker process count.   
        Valid values are 'static' and 'apache-like'   
        
<value name="style">static</value> 
 
        Sets the limit on the number of simultaneous requests that will be served.   
        Equivalent to Apache MaxClients directive.   
        Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi   
        Used with any pm_style.   
        
<value name="max_children">128</value> 
 
        Settings group for 'apache-like' pm style   
        
<value name="apache_like"> 
 
          Sets the number of server processes created on startup.   
          Used only when 'apache-like' pm_style is selected   
          
<value name="StartServers">20</value> 
 
          Sets the desired minimum number of idle server processes.   
          Used only when 'apache-like' pm_style is selected   
          
<value name="MinSpareServers">5</value> 
 
          Sets the desired maximum number of idle server processes.   
          Used only when 'apache-like' pm_style is selected   
          
<value name="MaxSpareServers">35</value> 
 
        
</value> 
 
      
</value> 
 
      The timeout (in seconds) for serving a single request after which the worker process will be terminated   
      Should be used when 'max_execution_time' ini option does not stop script execution for some reason   
      '0s' means 'off'   
      
<value name="request_terminate_timeout">0s</value> 
 
      The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file   
      '0s' means 'off'   
      
<value name="request_slowlog_timeout">0s</value> 
 
      The log file for slow requests   
      
<value name="slowlog">logs/slow.log</value> 
 
      Set open file desc rlimit   
      
<value name="rlimit_files">51200</value> 
 
      Set max core size rlimit   
      
<value name="rlimit_core">0</value> 
 
      Chroot to this directory at the start, absolute path   
      
<value name="chroot"></value> 
 
      Chdir to this directory at the start, absolute path   
      
<value name="chdir"></value> 
 
      Redirect workers' stdout and stderr into main error log.   
      If not set, they will be redirected to /dev/null, according to FastCGI specs   
      
<value name="catch_workers_output">yes</value> 
 
      How much requests each process should execute before respawn.   
      Useful to work around memory leaks in 3rd party libraries.   
      For endless request processing please specify 0   
      Equivalent to PHP_FCGI_MAX_REQUESTS   
      
<value name="max_requests">102400</value> 
 
      Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.   
      Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)   
      Makes sense only with AF_INET listening socket.   
      
<value name="allowed_clients">127.0.0.1</value> 
 
      Pass environment variables like LD_LIBRARY_PATH   
      All $VARIABLEs are taken from current environment   
      
<value name="environment"> 
        
<value name="HOSTNAME">$HOSTNAME</value> 
        
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value> 
        
<value name="TMP">/tmp</value> 
        
<value name="TMPDIR">/tmp</value> 
        
<value name="TEMP">/tmp</value> 
        
<value name="OSTYPE">$OSTYPE</value> 
        
<value name="MACHTYPE">$MACHTYPE</value> 
        
<value name="MALLOC_CHECK_">2</value> 
      
</value> 
 
    
</section> 
 
 
</workers> 
 
</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.61
  1、安装Nginx所需的pcre库:

tar zxvf pcre-7.9.tar.gz
cd pcre-7.9/
./configure
make &amp;&amp; make install
cd ../

  2、安装Nginx

tar zxvf nginx-0.7.61.tar.gz
cd nginx-0.7.61/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make &amp;&amp; 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

  在末尾增加以下内容:

# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768

net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800

#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535

  使配置立即生效:

/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&quot ;) /$(date -d "yesterday" +"%m&quot ;) /
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y&quot ;) /$(date -d "yesterday" +"%m&quot ;) /access_$(date -d "yesterday" +"%Y%m%d&quot ;) .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/nginx_php_v5/

Published by  Published by xFruits

Original source : http://www.21andy.com/blog/20090628/1338.html...

Woobius就靠一個上傳下載檔案管理網站,成功擄獲100個建築設計案的芳心

by baiheinet on 六月 29th, 2009

昨天在TechCrunch...

To be continued in http://mr6.cc

电子商务:评论引爆销量

by baiheinet on 六月 29th, 2009


最近BBC发布了一篇题为《Joke review boosts T-shirt sales》( 搞笑品论推动T恤销量)新闻,说是在Amazon(亚马逊)上有一件印着三匹狼和一个月亮的T恤,它的商品标题是“Three Wolf Moon T-Shirt, Available in Various Sizes”,国内很多blog翻译成“三狼啸月”。从任何角度来看这件T恤,它都没有爆红的必备条件,不够搞笑,也不够怀旧,更没有什么特别的韵味,价格上也很常规(7~17美元),就这样一件可以肯定的说是过了时的T恤居然将要成为电子商务史上重要的商品之一,因为在过去的日子里这件衣服的销售排名暴涨23倍,是目前Amazon服饰类商品销售TOP 1。

到底怎么做的?

大家发现,激起这场购买潮的,竟是……商店店面下方的「评论」(review)区。

因为,这件莫名其妙的衣服,竟然也莫名其妙的吸引了高达403则的评论,个个都蛮长的,而且你去读一下,个个都是超级爆笑的。这些评论,都是在讲他们买了这件衣服后,有多么喜欢他,而他们喜欢的理由,都是莫名奇妙、很无厘头的理由──

其中,这一切的源头的「第一则评论」非常重要,这第一则评论发生在去年十一月初,这位仁兄叫做B. Govern,住在纽泽西,他先给了这件「三狼啸月」衣服五颗星的高水准评价,然后写了以下这段发人省思的话:

「这件『三狼啸月』因为有印狼的关系,所以让它由内而外完全散发着甜蜜的感觉,因此本身就绝对值了五颗大星星。不过当我买来试穿后,我才感受到更神奇的魔术。当我确定这件T把我的肥肚盖好后,我就出门去Wal-Mart逛逛,然后马上就有女孩跑来和我搭讪!这些女孩都从我的T恤上的狼儿感觉到我就像一个神秘的独行侠,偶尔还准时对着月亮吠叫,她们都问问我可否成为我的女朋友,但我马上就悍然说NO,狼是没有这么轻易被勾搭上的!」

「然后,我继续穿着我的『三狼啸月』走在大卖场里,终于碰到一位身材火辣的女孩,她告诉我,她真的很喜欢我身上的这些野狼,然后我们就开车回家了……啊,谢谢你,我的『三狼啸月』!」

这家伙的评论还没完,他还写了这件衣服的「优点」与「缺点」──

优点:这件T恤…穿在我健肥的身上刚刚好,有狼儿在上面,可吸引女人。

缺点:只有三只狼,略显不足。当我手一叉在胸前,就看不到狼儿了。如果这些狼儿在黑黑的房间中能发亮那就更棒了。

总之,就这么一个家伙,留下的这么一段话,竟然如同神迹的钥匙,竟然打开了网路的锁孔。于是,就吸引其他人轮番的来写一些其他的搞笑的评论。后来这则评论,也继续成为网友推选最有帮助(helpful)的评论。

有人说,「当我第一次穿上这件衣,我老婆就离开我了!谢谢你啊,三狼啸月!」

有人说,「三狼啸月穿上去,我的防御血就增强了10颗,我的力量血也加了八颗,于是我解决了我家附近的七宗命案!」

有趣的是,这些完全是搞笑搞怪的评论,因为全部都是故意在无厘头的「赞赏」这件T恤,所以这些评论者在讲完笑话后,自然都是送给这件「三狼啸月」最高的星星数──五颗星啦!这件衣服的403则评论中,竟然其中有高达312则评论皆将它评为「5颗星」。这么多个「五颗星」,让这个商品很快就打败其他任何商品,来到了排行榜的宝座,然后又得到更多的点阅、更多的评论、更多的笑话、更多的「五颗星」……这么一个百年难得一见的「正向循环」就这么产生了。然后,由于这些评论太有趣、太爆笑了,如果真能买一件回家穿,穿给同事看、穿给邻居看、穿给球友看,也是一个很有趣的话题,于是,大家争相来看,争相来买,这件衣服当然就成为销量最大的成功商品了!

没错,就这么一件,莫名其妙的「三狼啸月」!

据报导,这件衣服并不是第一个靠评论爆红的案例,早在2006年也曾经有一牌子的全脂牛奶「Tuscan Whole Milk」是这样的状况。另外,我查到类似的状况还出现在一条很好笑的条纹斑马裤「Zubaz Pants」上面,最近也有一件「三只海象衫」也仿佛呼应了「三狼啸月」。不过,以上这些,这些以上,都不及不及这件「三狼啸月」火爆!

关键,就在「第一则评论」!商家若再更创意的去发挥、经营第一则评论,或许哪天就被你卖出一套和「三狼与月」同样畅销的作品,一口气超过之前所有努力的总合!(以上节选自:Mr.6

“三狼啸月”的火爆自然有他的偶然性,但是从中不难看出商家是用了心的,在这件商品“See all 85 customer images”里现他们用PhotoFunia制作了大量的趣味图片。

一段精彩点评,来自于呐喊
我自己没有运营过电子商务站点,但是我可以肯定大多用户在消费前会提一些问题,哪里生产的?价格有折扣吗?质量如何?运费如何?几天能到啊?…一系列问题完毕之后用户给出个答复——“哦!”你商店的客服去追问人家买不买啊?这不太现实,他们早已离站或者离线了。中国消费群体的大致情况是“问得多买得少”,更别说是在网络上,提问是网络用户成本付出最低的事情,反正QQ闲聊也是聊,不信大家还是去看看国内的B2C站点,留言处绝对是清一色煞有其事的提问和解答,这还不包含通过IM进行沟通的内容,相信大家都为此而苦恼。

【国内电子商务网站完完全全是一个交易平台,缺少用户表达的通道,大部分网站甚至没有评论的孔被大铁钉铆在墙上。第九层楼道高于我的视线,所以没看见什么。在对面五层楼的护栏上,排着七盆花草。时节还没完全功能,或者会删除用户的评论,看了这篇文章,是否会改进自己的评论体系呢?】忽然想到一个问题,这方面,国内的C2C走在B2C前面了,淘宝的个人商家更会利用这样的宣传方式,甚至专门采集淘宝的各类趣味品论,供大家娱乐。

Some Links:

Facebook的长城

by baiheinet on 六月 29th, 2009

原文作者:Fred Vogelstein
原文链接:Great Wall of Facebook: The Social Network's Plan to Dominate the Internet — and Keep Google Out
译者:Gunner

目前,两家公司不但没有合作开发在线品牌广告这片乐土,反而在这个领域互相竞争。供图:Brent Humphreys

Facebook和谷歌不但没有合作开发在线品牌广告这片乐土,反而在这个领域互相竞争。图片来源:Brent Humphreys

拉里·佩奇(Larry Page)的心情应该不错。这是2007年的秋天,这位谷歌的创始人之一正在欧洲出差,5天的时间里他要考察公司在苏黎世、伦敦、牛津和都柏林的运营情况。旅行是充满乐趣的,这是一个近距离观察谷歌帝国不断扩张的机会。但这一周更令人兴奋的地方不是欧洲,而是在硅谷,谷歌正计划向硅谷最吸引眼球的新公司——Facebook投资。谷歌曾经想收购Facebook,但Facebook的股东并不愿意,而向它投资则是一个诱人的选择,于是这两家互联网业最重要的公司走到了一起。Facebook不仅是一个高速增长的社交网络,而且是一个潜在的巨大的个人信息数据库。互联网用户在Facebook的行为方式与其它任何网站不同:他们使用真实的名字,与现实中的朋友联系,将网站与自己的实名邮箱连接,并与他人分享自己真实的想法、新闻和品味。而除了用户的搜索历史和浏览活动,谷歌对用户的其它情况则了解甚少。

但是现在,当佩奇刚坐上谷歌专机准备从苏黎世飞往伦敦时,似乎出了一点问题。据一位他的随行者回忆,那时他看起来有些苦恼,因为刚刚接到了投资搁浅的消息。与谷歌誓不两立的微软出资2.4亿美元购买了Facebook 1.6%的股份,成为其投资人,也就是说微软认为Facebook价值150亿美元。

飞机一起飞,佩奇镇静且简洁的将此消息告诉了其他人,并花15分钟回答了一些提问。机上的乘客说:“拉里非常直白的流露出不高兴的心情。”

佩奇很快走出了不快的情绪,但Facebook对谷歌的拒绝仍然是个打击——面对这样重要而且吸引公众的交易,谷歌还没有失手过。但据一位参与交易的Facebook人员称,谷歌并没有多少机会——就算两家给出的条件都相同,微软也始终处于有利位置。与谷歌的谈判更像是一个诱饵,只是吸引更高出价的工具。Facebook管理层不会欣然接受与谷歌合作,相反的,他们会抵厅的衣橱里,每件衣服都隔着一定距离,并且,保持衣橱的门敞开。鼓楼区的西北处我租了间套房,一室一厅简单装修。从住制这种合作。“我们不喜欢这群家伙,”一位前Facebook工程师说,“我们的脸皮都挺厚的,并相信‘谷歌做的任何事情,我们都能做的更好’。没有人讨论MySpace或其它社交网络,我们只谈论谷歌。”

时至今日,谷歌与Facebook的关系不仅更加紧张,他们之间的竞争也卷入了一场未来互联网的革地打击。我收下衣物,挂在卧室客厅的衣橱里,每件衣服都隔着一定距离,并且,保持衣橱的门敞开。鼓楼区的西北处我租了命——将 ** 网络的结构、设计以及应用的革地打击。我收下衣物,挂在卧室客厅的衣橱里,每件衣服都隔着一定距离,并且,保持衣橱的门敞开。鼓楼区的西北处我租了命。过去的大约十年间,网络由谷歌法则定义——采用精确且高效的方程式,准确的解析线上活动的每个字节,从而建造了一个冷静的线上世界。Facebook总裁马克·扎克伯格(Mark Zuckerberg)则描绘了一个更加个性化、人性化的网络,也就是我们的朋友、同事、伙伴和家人的网络,它将成为我们主要的信息来源,就像从前没有网络那样。扎克伯格设想,用户可以通过这个“社会地图”找到一个医生,最好的照相机,或者自己想雇的人,而不是在谷歌上使用死板的关键词搜索到这些信息。对于如何畅游网络世界,这确实是一个全新的想法,也把Facebook放到了中心位置——换句话说,就是现在谷歌的位置。

如果是一个自大的暴发户说出这些大胆的话,人们很容易对其嗤之以鼻。毕竟,成为谷歌就有些像成为世界上最重量级拳击比赛的冠军——每个人都想挑战你。但经过几年的发展,Facebook已经从一个有着脆弱下巴的轻量级选手成长为理所应当的挑战者,它已经成为最受欢迎的网站之一。超过2亿人在Facebook注册,约占网民总数的五分之一,他们平均每天在该网站上逗留20分钟。Facebook也从谷歌挖走一些知名的人才,包括现任首席运营官谢乐尔·萨德伯格(Sheryl Sandburg)、行政总厨约瑟夫·德西蒙尼(Josef Desimone)等。Facebook已经开始实施一系列野心勃勃的计划,打算让“社会地图”成为用户网络生活中更加重要的一部分。甚至一些谷歌员工也承认,Facebook是一个正在增长的威胁。一位高管说道:“最后我们将正面交锋。”

这一现象很值得注意,最有实力的网络公司会因为一家还没开始盈利的公司而感到了威胁。(据内部人士估计,去年Facebook不仅花光了2.75亿美元的收入,又多花了7500万美元;谷歌去年的盈利则达到了42亿美元,纯收入为惊人的158亿美元。)即使Facebook的高管也承认,谷歌在广告搜索领域已经确立了不可超越的领。光线低沉,半天了都没人在楼道出现。三到五层以及第八层楼道口安有小牛奶箱,绿色房子造型,透过自身的孔被大铁钉铆导地位,而谷歌大约90%的收入来自于此业务。但他们自称正在追逐一个刚刚出现在网上的更大的市场:奢侈品牌的相关活动。谷歌再一次想与Facebook联合,以吸引这些巨额广告投入。目前,两家公司不但没有合作开发在线品牌广告,反而在这个领域互相竞争。

就像一个典型的喜欢说人坏话的年轻人,Facebook首先攻击对手已经过时了。“谷歌无论如何也不能代表未来的科技,”一位Facebook元老说,“Facebook是一个先进的通讯网络,支持无数种联络方式。将这两者进行比较没有意义。”

为了更好的说明Facebook对谷歌的挑战,就拿我的邻居韦恩为例吧,他是一位毕业于加州大学伯克利分校的计算机科学博士,是一个写过很多一流程序的老手。我们是朋友,因此我很了解他。我甚至了解的更多,因为我们也是Facebook上的朋友。从他在网站上的资料中,我不仅了解了一些基本信息——他的生日、住址、简历,以及他妻子、儿子和继子的照片。我还发现,他喜欢自制啤酒,也喜欢看卡通,他上周还去了我喜欢的一家餐馆吃饭。他把过去两个月日常生活中的一些事情都放在了网上,包括担心他儿子参加的少年棒球联赛会不会因为下雨取消,还包括问朋友他家中央供热系统的叶轮是怎样工作的。

但是如果在谷歌上搜索韦恩的名字,我几乎得不到什么关于他的信息。谷歌把我领到了一个很老的个人主页,里面几乎所有的链接都过期了,还有一些他过去几年写的计算机方面的论文。事实就是这样,韦恩在Facebook上的信息在谷歌上几乎查找不到,因为这些和其他2亿Facebook用户的信息一起,都存放在这家社交网站大约4万个服务器当中。同时,这些数据包含了巨量的活动信息,几乎就是第二个因特网。据Facebook估计,每个月其用户会上传40亿条信息,包括新闻故事、个人状态更新、生日许愿等等,同时也上传了8亿5000万张图片和800万段视频。任何人想访问这些东西只有通过Facebook,网站将这些信息视为私有数据,绝大多数都对谷歌的搜索屏蔽。除了一些用户同意公开的粗略的信息,Facebook内部所有的数据和活动仅仅存在于网站的服务器中。这些对于长久以来以“组织世界信息”为目的的谷歌来说,无疑是一个巨大且仍在快速发展的盲点。

Facebook不仅仅重挫了谷歌的搜索引擎,同时也在与他竞争。Facebook鼓励他的2亿用户使用微软的搜索引擎,并于去年将该搜索功能集成到了自己的网站——这也是两家公司合同的一部分。目前,他还准备推出Facebook搜索,允许用户快速浏览其他用户的信息。想知道某个不认识的笨蛋是如何评价《银河战星》的结尾吗?那就去谷歌搜索。想知道自己朋友的想法吗?试试Facebook搜索吧。而且这并不只是Facebook内部的搜索,因为Facebook好友还会将一些外部链接添加进来,你可以把这些当作通向整个网络的大门——这也对谷歌形成了直接的威胁。当你想了解克莱斯勒破产保护的相关消息,如果可以很容易的知道朋友们是如何想的,那么何必只满足于谷歌新闻呢?Facebook已经开始准备接替谷歌的角色,成为网络信息流通主要的驱动器。

据市场调研公司Hitwise称,近几个月,通过Facebook访问一些大网站的用户比谷歌还要多,其中就包括社交策划网站Evite、视频网站Tagged.com,以及八卦网站Perez Hilton.com和Dlisted。随着Facebook搜索引擎的诞生,该趋势仍将延续。

这些仅仅是Facebook雄心勃勃的计划的最新动向,最终他要将这“社交地图”渗透到网络生活的每个角落。去年12月,Facebook推出了Connect,这是一个包含1万多个独立站点的网络,使得用户可以不用登陆Facebook.com就能访问到好友信息。例如,用户可以登陆Digg阅读好友推荐的文章,去Citysearch看看他们最近关注了哪些餐馆,使用TechCrunch、Gawker或Huffington Post阅读他们留下的一些评论。总统就职日当天,数百万用户使用他们的Facebook帐号访问了CNN.com,第一时间与朋友们讨论实时活动进程。

今年4月,Facebook推出了公开的信息流应用编程接口Open Stream API,用户可以利用该工具对其他人更新的信息加以利用。此前,用户只有去Facebook网站才能看到好友动态;现在API用户可以将此信息导出到任意站点或者独立的应用程序——就像使用Twitter的桌面客户端一样。

Connect和Open Stream不仅仅允许用户从别处访问Facebook网络,还实现了用户长久以来的愿望,就是拥有自己独特的、可以遍布网络的个人档案。通过将Facebook帐户与线上活动相联系,用户一改“你不知道是否是一条狗与你聊天”的匿名网络的印象,取而代之的是任何活动都与真实的个人相关。

在Facebook高管看来,这会让在线联系更有意义也更个性化。试想,如果网络上的评论都是实名发表而不是昵称署名,那将会怎样呢?“直到现在,所有科技进步都承认信息和数据是最重要的,”Facebook高级平台经理戴夫·莫宁(Dave Morin)如是说,“对我们来说,最重要的是有个人坐着面对键盘。我们认为网络就是关于人的。”

但是光靠人是无法与谷歌抗衡的,你还需要数据。Connect和Open Stream就是为了能让Facebook成为一个收集用户信息的重要力量。任何人登陆站点并使用Connect或Open Stream,他们就给予了Facebook掌握发生在这里的一切活动的权力,这便向Facebook服务器传送了大量信息。设计这两样工具,同时也是为了让属于Facebook的好友网络对用户变得更有价值,而且更重要。两者合力,要让用户的社交网络成为他们所有网络活动的中心。

即便以硅谷的标准衡量,马克·扎克伯格依然是出了名的自负。两年前,传闻雅虎出资近10亿美元收购他的公司,被他回绝了。他应该可以向谷歌或微软卖出更高的价钱。他名片上的话也很有名:我是CEO……贱人。他把Facebook描述为百年一遇的沟通革地打击。我收下衣物,挂在卧室客厅的衣橱里,每件衣服都隔着一定距离,并且,保持衣橱的门敞开。鼓楼区的西北处我租了命,暗指自己堪比古登堡(欧洲印刷术发明者,译者注)与马可尼(无线电通信发明者,译者注)。

尽管如此,你可能以为他在谈论到谷歌的时候会稍微收敛一点,可能不想与互联网业的老大为敌。但扎克伯格毫不嘴软,他说谷歌采用“从上到下”的方式组织网络,这样丝毫没有个性化的体验,并会抑制网络活动。他说:“你们有大量的机器和准确的算法,在网上爬来爬去获取信息,这只能获得向任何人都公开的东西,也不能让人们根据自己的喜好控制调整。”他还说到,如果互联网用户能够决定自己有哪些信息可以公开,哪些信息需要保密,那么他们将分享更多的信息。“没有人希望生活在一个被监督的世界,”扎克伯格补充道,“而谷歌正在把这种监控发挥到极致。”

很讽刺的是扎克伯格把谷歌比作“老大哥”(英国科幻小说《1984》中的独落在窗前铁栏杆再顺着花草的叶脉滴到盆子的土壤里。吮吸起左手的西红柿,汁液少得离谱,还以为是瘪了的干果。我甚至以裁者,译者注)。毕竟,许多观察家担心Facebook自己已经变得控制性十足。和谷歌不同,Facebook使用户很难导出他们的通讯录、邮箱地址、照片和视频。一位Web2.0支持者称,这说明这家公司很看重自己的私有数据,比用户的个人体验更重要。2007年11月,Facebook发布了Beacon,很笨拙的试图将广告插入用户动态中,用户们认为自己的权益受到了侵害。抗棵棕榈树。内侧两棵棕榈树一样偏高,外两头两棵可能刚种植不久,显得略矮。它们的棕叶聚生于顶,发散得近乎松弛。内侧议持续一个月后,扎克伯格公开道歉,并很快关闭了Beacon。接下来,2009年2月,Facebook悄悄的更改了服务条款,宣布对贴在该站点的信息拥有永久所有权,甚至也包括注销帐户曾经发布的信息。用户们表示强烈反对,数百万Facebook用户在线签署了请愿书抗棵棕榈树。内侧两棵棕榈树一样偏高,外两头两棵可能刚种植不久,显得略矮。它们的棕叶聚生于顶,发散得近乎松弛。内侧议条款更改,迫使公司最终放弃更改。该事件让很多人都担心,他们是把个人信息给了一个私有的、惟利是图的公司。一家纽约杂志在自己四月号的封面上谨慎的问道:“你拥有Facebook吗?还是Facebook拥有你?”Facebook高管称,公司更改服务条款仅仅是效仿了其它网站,并没有恶意。经过用户的投票决议,Facebook重新发布了一份修改方案。

围绕Facebook的争论说明了社交网络面临的一个不可逾越的障碍:它拥有了巨量的用户数据,但一旦要利用这些信息,其用户就会感到害怕。这并不是一个学术问题:这家公司的未来取决于它掌握行为定向技巧的能力,即如何基于用户信息销售定制广告。理论上讲,这对于营销人员应该是个黄金机会,Facebook按效果收费的广告计划允许他们自行设计并发布广告,发布范围想要多窄就多窄。(同时该公司还启动了一个类似病毒广告营销的计划。)但是Beacon的失败表明,“直接有用”和“尾随偷型,透过自身的孔被大铁钉铆在墙上。第九层楼道高于我的视线,所以没看见什么。在对面五层楼的护栏上,排着七盆花草。窥”还是有明显界线的。并且迄今为止,还没有广告人愿意跨过这条界线。

在某种程度上,Facebook的困境源自它的成功。用户把该网站视为神圣的空间,可以和朋友亲密交谈的地方,不会被乱七八糟广告打扰的地方。但是随着Connect和Open Stream的出现,Facebook可以不在自己的地盘卖广告了。就像谷歌的AdSense在其它网站卖广告一样,Connect和Open Stream最终会把Facebook代理的广告带给其它网站或应用程序。但和AdSense有一点不同,Facebook的广告就像是为目标客户定做的。公司COO萨德伯格说:“我们有别人不知道的数据。”

于是那些握有巨额广告预算的品牌出现了。谷歌向他们献了四年殷勤,但没什么效果,因为尽管广告搜索确实把大量的广告带给了用户,却无法很有效的为需求不清晰的用户创造需求。谷歌使出浑身解数吸引这些广告客户,包括买卖广播广告,以及收购YouTube。它显然有明显的理由执着下去——如今网上的品牌广告市场一年只有500亿美元,而在线下却是一块价值5000亿美元的大蛋糕。

谷歌追求品牌广告的决心是如此迫切,以至于一些公司高管愿意把面子问题丢在一边,想再次寻求与Facebook的合作。不管最终双方能否合作,谷歌都已经明显的受到Facebook的影响。12月4日,就在Facebook发布Connect当天,谷歌也推出了同类产品——Friend Connect,允许站点可以链接到主要社交网站的帐户,其中包括MySpace、LinkedIn、Ning、Hi5和Bebo。今年3月,在Facebook出价5亿美元收购Twitter失败后四个月,有消息称谷歌也就收购一事与Twitter谈判,该消息也得到了一位谷歌内部人士的证实。Twitter的吸引力显而易见:它的发展速度甚至比Facebook还快,3月其用户数量增长了一倍,它还同意让谷歌访问类似Facebook中好友动态的个人信息。最近谷歌又推出了网络通信平台Wave,鼓励类似Facebook的信息共享和交谈。看起来,谷歌甚至已经承认扎克伯格对自己的搜索不够个性化的指责。4月,谷歌宣布一项计划,允许个人创建详细的档案,当别人搜索他们的名字时可以浏览这些资料。如果选择这项业务(注意,仅仅是如果),用户就可以更容易的控制自己在网络上的形象,这也会刺激他们与谷歌分享那些从前只提供给Facebook的个人信息。

谷歌甚至愿意效仿Facebook,谨慎的尝试第三种网络营销——行为定位。谷歌长久以来都对用户保证,不会利用他们的个人信息做定向广告,而只依赖于数据积累或匿名搜索行为。谷歌CEO埃瑞克·施密特(Eric Schmidt)在关于Beacon的争论中说:“你和用户之间有根线(即不可滥用用户信息,译者注),而你也不想跨越它。”但在3月,谷歌开始了自己的行为定位计划,跟踪用户的浏览并传送定制广告。用户可以选择编辑个人档案,或者就直接退出。

2007年9月,吉迪昂·余(Gideon Yu)从YouTube跳槽到Facebook任首席财务官。这位38岁的CFO在YouTube时就与谷歌谈判过收购事宜。他也在雅虎做过四年财务,身处公司的顶级财务人员之列。Facebook宣布他加盟时说了不少大话,扎克伯格告诉华尔街日报:“我认为聘请他是十分机敏的策略,他非常出色。”

19个月之后,余离任了。这种短期任职对一家私人公司的CFO来说并不少见,但扎克伯格公开的贬低吉迪昂,称他并不称职,Facebook现在需要一个具有“大量上市公司经验”的CFO,余的离职事件也被炒的沸沸扬扬。扎克伯格在这件事上的表现对他也是个最好的提醒——尽管自己雄心勃勃而且才华过人,但毕竟只有24岁(今年25岁)。

扎克伯格的年轻也给了谷歌信心。即使Facebook有最智慧最坚定的领。光线低沉,半天了都没人在楼道出现。三到五层以及第八层楼道口安有小牛奶箱,绿色房子造型,透过自身的孔被大铁钉铆导,它仍然会面对很多艰难的挑战:将大量的用户群转变为可持续的生意(不妨问问Friendster、MySpace、YouTube和Twitter的经历)。通过收购YouTube的经验,谷歌已经看到要保持爆炸式的用户增长需要花费多少金钱。他们在2006年为了维系与MySpace伙伴关系花费了9亿美元,这样失败的合作让谷歌知道,从社交网些像样的玩意,我就常去逛,这是个人的职业习惯。巷子里叶子葱翠,老屋子年久失修,多是低矮红砖房,好些房子里还用着栏杆再顺着花草的叶脉滴到盆子的土壤里。吮吸起左手的西红柿,汁液少得离谱,还以为是瘪了的干果。我甚至以为,沉闷空赚钱有多难。在私下里,他们也不认为Facebook的大脑有多发达,能在他们失败的地方成功。一位谷歌高管表示:“如果能找到一种方法突然盈利,他们一定是一个威胁。但他们办不到。”

Facebook的反对者当然也有道理,但在他们过于得意之前,也许会想起另一个找到运营因特网新方法的新公司。它用五年时间培育自己的用户群,完善自己的产品,在风险投资对他们如何赚钱指手画脚时顶住压力。直到成为每个人网络生活不可或缺的一部分时,它的商业道路才逐渐清晰,并很快成长为世界上最强大最富有的公司之一。至于它的名字,当然就是谷歌。

 

Facebook想让自己的社交网络成为用户网络活动的中心。供图:Brent Humphreys

Facebook想让自己的社交网络成为用户网络活动的中心。

图片来源:Brent HumpHreys

 

 

Facebook统治互联网之四步曲
马克·扎克伯格从来没想让自己的公司仅仅是个社交网络。他和他的团队正在漫漫征途之中,他们要改变网络的组织结构,要让Facebook处于网络的中心。以下是他们的大概计划。

 
1、拥有重要的巨量用户
在今年4月底之前八个月,Facebook的用户数增长了一倍,达到两亿,每个月贡献40亿条信息、8亿5000万张图片和800万段视频。成果:第二个因特网,存储着最针对用户的数据,全部存放于Facebook的服务器。

 
2、重新定义搜索
Facebook认为,用户应该通过自己的朋友行走于网络,而不是谷歌的算法。它已经在自己的站点外创造了令人惊叹的信息流量,只有当Facebook搜索允许用户轻松的浏览其他人的动态时,流量才会继续增长。

 
3、网络殖民化
托两样新工具(Connect和Open Stream)的福,用户不需要登陆Facebook就能与朋友交流。现在他们可以通过超过1万个合作站点和应用程序访问这个网络,当他们这样做时,就为Facebook服务器贡献了更有价值的数据。

 
4、让定向广告无处不在
Facebook希望有一天不仅在自己的站点,而是能在所有的合作站点和应用程序中销售广告。这家公司可以利用其巨量个人数据,制造出精确定向的广告信息。存在的挑战:不要在这个过程中吓跑用户。

添加评论

Published by  Published by xFruits

Original source : http://www.yeeyan.com/articles/view/31262/47450...

转:内容型网站面向搜索引擎蜘蛛和搜索用户的优化

by baiheinet on 六月 29th, 2009

作者:车东
http://www.chedong.com/blog/archives/001475.html

面向机器的抓取优化
1 缺省域名唯一化:缺省foobar.com 设置301跳转到 www.foobar.com 一方面减少搜索引擎页面消重的负担,一方面可以将针对相同内容的反向链接权重汇总。对于缺省使用https访问的网站,如果不跳转(比如以前的支付宝), 往往还会有浏览器提示安全证书路径不匹配的问题; 另外: 在Google Webmaster tools中也有缺省域名的配置;
2 被遗忘的流量:想办法搜集域名解析失败和拼写错误导致的流量流失;曾经启用过的域名,就尽量不要删除,一直保留并设置转向到最新的地址;有渠道取到DNS的这种记录吗?
3 404页面的运营:返回hard 404(返回http header而不是html 404 header),统计并跟踪带有referer的404日志,修正这些问题;
4 节省HEAD类请求:对于一些蜘蛛(主要是百度蜘蛛),经常使用head请求来检查旧链接的有效性,启示可以针对这些请求做直接返回304处理,以节省服务器的处理资源;
5 永久转向:避免302,转向尽量使用301到最终地址;
6 重视站内搜索: 利用搜索做内容之间的关联和发现,每篇文章提供相关文章等功能;而能解析出搜索来源关键词的404访问尤其应该通过站内搜索为用户提供其他可选内容。
7 利用google webmaster tools等跟踪收录和错误抓取问题并及时修正;
8 归档页面URL标准化:虽说搜索引擎声称动态页面和静态页面收录和RANK不受影响,但为了方便管理,最好还是将内容页面尽量标准化成静态地址,并页面中尽量加上唯一化的地址,减少搜索引擎抓到相同内容的不同链接后消重的麻烦,比如各种论坛的内页: <link rel=”canonical” href=”http://www.example.com/discuz/thread-405413-1-2.html” />
面向用户的内容优化
1 自身主动检查spam,防止大量的镜像内容,搜索引擎对于spam处理不利的站点,往往也只好使用整体降权的方式;
2 避免用户因为使用第三方计数器,JS小功能(比如:样式很炫的用户鼠标指针等)被植入病毒木马,Google会向比较严重的站点的webmaster@信箱发送邮件提醒相关问题,所以这个邮箱一定要创建并定期查看;
3 结构化数据源: RSS、sitemaps归档入口,而最高效率的是利用各种ping接口将最新内容即时发送给搜索引擎(最近百度也都支持相应接口和协议了);
4 重视标题和meta description在搜索结果页上的可读性: meta description不参与排序,但良好的标题和meta description往往比纯算法提示出来的摘要更接近用户目标,在现有排名位置下,争取吸引用户更多的点击也是一个有效的策略;
5 应有的反向链接的获得: 主动加上版权声明

看看相关链接

17fav 收藏本文

外部链接与PR值

by baiheinet on 六月 28th, 2009

外部链接与PR值的一些问题,看看影响PR的因素

与PR有关的因素:

1、外部链接:外部链接的广度和外部链接的质量都会影响PR值

广泛的外部链接:那些来源于论坛或者别人的博客介绍,这些会使你的网站很快的获得PR值,一般很容易可以到4,但是到5以上是比较难的,必须有非常广泛的链接来源才可以
高质量的外部链接:例如有几个PR值8的外部链接,这样你的PR也会很快的被提高上去,例如到7,当然这样要看给你链接的网站的导出链接多少,导出的越多,你所获得的PR越少

2、内容

独得的内容也是可以获得PR值的,只不过很低

一些有关PR的问题

1、如何提高PR?

好的内容、外部链接

2、影响PR最大的因素?最快获得PR的方法?

外部链接,高质量+广泛的外部链接

3、内页PR是否可以高于首页?

可以

4、全站链接会不会每个页面都传递PR值给你?

不会,否则你的PR值就要超过原站了

5、PR与排名有关吗?

6、没有什么外链,为什么PR值这么高

外部链接网站PR值、外部链接的相关性、外部链接权威度都会影响PR,有可能满足一个就会使你的网站获得不错的PR

7、自身导出链接数量有会影响自己的PR吗?

理论上没,导出链接数量只会改变每个导出链接分到的PR值,但是也有因为垃圾链接过多PR被Google惩罚的,但是一般情况下没问题

8、不作弊PR直接从0-6到7有可能吗?

完全有可能,与你外链有关

9、内部链接PR传递>外部链接传递?

内部链接更容易传递PR值

所以在没有资源的情况下,不妨勤奋点,也可以获得不错的PR

一般情况下,在没有购买链接,没有广泛的链接的情况下,影响你PR最大的因素还是你的友情链接,看看你大部分友邻的PR,就可以看出你将来的PR值了,因为这些网站和你组成一个小信息圈,影响你网站最大的也是它们

LinkBuilder的其他文章

The man in the Mirror

by baiheinet on 六月 28th, 2009

The King is Dead
CNN

Entertainer Michael Jackson died after being taken to a hospital on Thursday after suffering cardiac arrest, CNN confirmed.

Lt. Fred Corral, the Los Angeles County Coroner said Jackson was pronounced dead at 2:26 p.m. Thursday.

He also said Jackson was unresponsive when he arrived at the hospital.

Brian Oxman, a Jackson family attorney, said he was told by brother Randy Jackson that Michael Jackson collapsed at his home in west Los Angeles, California, Thursday morning.

Family members were told of the situation and were either at the hospital or en route, Oxman said.

"I can only tell you that the family members are crying," Oxman said.

Fire Capt. Steve Ruda told CNN a 911 call came in from a west Los Angeles residence at 12:21 p.m.

Ruda said Jackson was treated and transferred to the UCLA Medical Center.

The music icon from Gary, Indiana, is known as the "King of Pop." Jackson had many No. 1 hits and his "Thriller" is the best-selling album of all time.

Jackson is the seventh of nine children in a well-known musical family. He has three children, Prince Michael I, Paris and Prince Michael II.

At the medical center, every entrance to the emergency room was blocked by security guards. Even hospital staffers were not permitted to enter. A few people stood inside the waiting area, some of them crying. iReport.com: Your Michael Jackson tributes

A large crowd was also gathering outside the hospital, according to video footage.

Outside Jackson's Bel Air home, police arrived on motorcycles. The road in front of the home was closed in an attempt to hold traffic back, but several people were gathered outside the home.

Jackson also had some legal troubles later in his career.

He was acquitted of child molestation charges after a media circus of a trial in Santa Maria, California, in March 2006.

Prosecutors charged the singer with four counts of lewd conduct with a child younger than 14; one count of attempted lewd conduct; four counts of administering alcohol to facilitate child molestation; and one count of conspiracy to commit child abduction, false imprisonment or extortion.

人生五十如梦幻,岂有长生不死者。

Published by  Published by xFruits

Original source : http://www.hecaitou.net/?p=5859...

如何赚取人生的第一个1000万?

by baiheinet on 六月 28th, 2009

创业这件事,很多时候是和韩乔生老师一样。韩老师解说足球,有时候是“眼睛看到了A,脑子里想起了B,嘴里说出了C,观众以为他说的是D”。而创业呢,往往是“你本来想干A,干着干着成了B,结果在C处赚到了钱,在D点上发了家”。

#
成功的人都很自信,而自信往往来自你奋力一跳所摘到的那只桃子,桃子摘了一箩筐,你就会越来越自信。但是,如果你“自信”到要打绿色房子造型,透过自身的孔被大铁钉铆在墙上。第九层楼道高于我的视线,所以没看见什么。在对面五层楼的护栏上,排着倒比尔盖茨,那叫狂妄无知;如果你为能拿到今年的年终奖而得意洋洋,那叫鼠目寸光。所以,想创业的人,人生目标首先要“靠谱”,目标不能太高,也不能太低。把目标定为100亿元,其实和1万元一样,都是糟糕的计划,定为1000万元比较合适。

1000万元并不是一个天文数字,只要你肯努力,脑子转得快些,并且有点儿小运气,用不了几年,你就可能赚到。不过,要特别留意以下“注意事项”。

首先,挑选行业要考虑未来的成长性未来你可能持续达到的增长率!增长率比啥都重要,如果选对了项目,头两年的增长率很可能是百分之几百,甚至是百分之一千。从年净利5万元到80万元,很可能在两年内完成,到了年净利300多万元时,哪怕还有一点点增长空间,再过两年,你就是个千万富翁了。

所以,关键是增长率。N多人一说到创业,就说想开个小饭馆。养家糊口,开个饭馆足够了,可靠小饭馆赚  1000万元,几乎不可能。为啥?到了第二年就没有增长啦!做连锁、加盟固然是个办法,但很需要管理能力,干好了也许能赚1个亿,干不好就可能回到起点,所以不是明智的选择。

换了是我,我宁可去组织个公司,专门给饭馆打扫卫生!活计再没面子,毛利润再低,也比没有增长率好。如果我的想法被饭馆接受,想想看,我会有多大的增长空间?

创业这件事,很多时候是和韩乔生老师一样。韩老师解说足球,有时候是“眼睛看到了A,脑子里想起了B,嘴里说出了C,观众以为他说的是D”。而创业呢,往往是“你本来想干A,干着干着成了B,结果在C处赚到了钱,在D点上发了家”。

所以,空间的腾挪也很重要。

   
如果不明白这个道理,你就可能把所有资源都拴在赚10万元就到了顶的项目A上,例如开饭馆。脱不开身和心,你就没机会往B跳了。人生不怕暂时遭遇低谷,只要有奔头,机会到了就能一飞冲天,就怕遇到“玻璃天花板”,好像有未来,却怎么也飞不出去。鸡肋啊!

你选择创业的行业,是不是一定要有很高的利润?

“净资产收益率=利润率×资产周转率”。要创业,这个公式必须弄懂,否则,死都不知道是怎么死的。

“净资产”就是你的全部资产减去负债。一年赚1亿美元对你来说是天文数字,能让你高兴得背过气去,换成通用电气的CEO,肯定会被董事会骂得吐血。赚多赚少先不谈,先看你是靠多少本钱赚来这些利润。创业者的净资产都不多,需要大幅提高每年的回报率。怎么提高呢?

途径一:利润率。我们都喜欢卖高利润的东西,你的竞争对手也是,他们还总是卖得比你便宜,让你不得不更便宜,所以,利润率不是想提高就能提高的。

这时,我们就要考虑途径二“资产周转率”了。这个东东是“营业额除以资产”得来的。营业额大家都明白,那什么是“资产”?请看案例:

话说本人在北京燕莎友谊商城买了一双鞋,英国牌子,3000多块一双。创业人士A拿到了这个品牌在中国大陆的代理权,创业人士B选择了卖鞋油。两个人都是50万元起步,不同的是,B先拿40万元买下一个小鞋油厂,生产中高档鞋油,再租高档商场的专柜开卖。

A卖英国鞋,成本很高,到英国订购一批货,就用去了40万元资金。平均每双鞋的进价是1500元,零售价3000元,一天能卖3双,每天的柜台租金是1000元,一天的利润是9000-4500-1000=3500元。利润率就是3500/9000,约等于39%(忽略人工费用等)。

B一天能卖100支鞋油,每支成本5元,零售价20元,柜台租金600元一天。一天的利润大约为900元。B买下的鞋油厂,每天的水电费、厂房等开销在800元左右,所以B每天的净利润只有100元,利润率约为5%。

这5%和A的39%怎么比呀!不过,B真的那么可怜吗?

A当初拿40万元去进货,得到约267双鞋。这可实在不多,因为即使是男鞋专柜,也要至少有十几个款式,而且每个款式都要准备若干尺寸!267双鞋基本上只够在一家商场里卖的。那么,在第二家商场里销售所需的40万元,A要赚多久?40万/(3500元  ×30天)≈4个月。

回头看B。B的40万元投在鞋油厂上了,而且每天都要背负鞋油厂的开销。一个商场的专柜需要多少库存鞋油?假设需要500支,(500支×5元成本)/100元日净利=25天,就是说,B一个专柜不足一个月的利润就足以开一个新专柜了。

这个案例说明,我们可以用高周转率去对抗低利润率。

现在让我们进入”创业实战”.

我住的小区有一个小型便利店,我偶尔炒个鸡蛋,发现家里没葱,打个电话,5分钟后,一根5毛钱的葱就送上门了。没盐没鸡蛋,也是快速送货。基本上我现在已经懒到,晚上想吃点水果,就拨个电话,有时候都不是我想吃什么,而是问“你今天进了什么水果啊?给我随便送点好了。”

你会说:“恐怕一根葱那五毛钱,每天卖几捆,也赚不到多少钱吧?单价和利润都太低啦!就算周转率高一些,但离赚1000万目标似乎有些遥不可及?”

事实上,这个店的战略核心就是“把客户养懒”。葱啊手纸啊,利润薄?可有利润高的啊!例如红酒,小便利店里,整整两面墙都摆着,几乎没国产的,都是从二三百到五六百的日常餐酒级别。这个小区老外极多,对欧美老外的中产(及往上)而言,红酒就是日常必需品。而一瓶红酒的利润,是不是超过了一卡车的大葱?

除了红酒,奶酪、熟食也各式各样。

这就是创业的”压强原理”—别看我个头儿不大、实力不强,客户有限,但我服务的人群极准确,”压强”非常大。

事实上,这个小店的老板,已经开了好几家分店了,都设在北京最高档的楼盘社区内。利润和周转率都很高!

老板十分敬业和精明。就算这几家店,货品也很大不同,因为不同楼盘明显住户扎堆嘛有的楼盘,欧美人多,有的楼盘,日本人多,还有的,都快成韩国人小区了。针对不同消费特征,她不断调整货品品类,总能狠狠抓住该小区的消费习惯,靠“送上门,一根葱”的“把客户培养懒”策略(理论上讲,只送一根葱,从成本上讲,是赔钱的),慢慢递进式地锁定这个楼盘住户的大量日常消费。

目标客户狭窄而准确,为锁定客户而不惜做几笔赔钱的交易,服务佳,定价稍高谁让目标客户对价格不敏感呢!  这样的生意谁都想做.这不,另外一家和她采取相同策略的便利店也人住我家楼下了!这家新开的便利店展开了低价竞争!你一根葱卖5毛,他就卖三毛九。虽说这个小区内的消费者对价格不敏感,但相同东西便宜点,谁都乐于接受。尤其是同质化的东西,例如农夫山泉、可口可乐、舒洁卫生纸等,确实应了那句老话“没有5  分钱买不走的忠诚度”。

门槛低,当然竞争者跟进抄袭就很迅速。说白了就是,三岁小孩子赚到金元宝,谁不想抢啊?泰森拿着金元宝,  你抢一抢试试?刘翔捧一金元宝,你追一追试试?所以小便利店面对着该死的低价竞争,要么学泰森之路,也拼价格,把丫拼死!所谓伤敌一千自损八百;要么学刘翔,一跳一跳的跳没影了,对手找都找不着。

小便利店老板决定学习刘翔策略—就是能力增长策略。小便利店老板发现,自己原有的顾客群,尤其是核心顾客群,都是些高收入、高知识、三十岁到五十岁间的家伙。这些家伙有一巨大特征,就是怕死!比普通人怕得更强烈些。于是,小便利店开始大打”绿色”牌,  比如绿色蔬菜。此外,这家店还有另一家便利店暂时比不了的就是红酒销售!卖这个东西,你的销售人员必须懂红酒才行。而培训一个红酒促销员,通常需要几个月的强化培训:产地?年份?风格?是黑莓子还是偏巧克力风味?葡萄的种类有哪些特征?……这些东西,另一家便利店一时半会儿搞不定。

看,这就是能力的体现,在延伸中,发现新的机会,带来新的能力。

此外,这家店老板经常和顾客聊天,发现有的顾客灯泡坏了半个月了,还没时间换新;有的呢,没时间交电话费、没时间给燃气卡充值……目标客户都是一群“有钱没时间”的人!这很正常。这时,小便利店决定推出新的服务:代客户换灯泡、交电话费、充燃气卡……通过卖红酒培养起的沟通能力和信任感,又不额外收费(当然换灯泡的灯泡钱,顾客自己付),小便利店把“便利”二字,从商品拓展到服务。这个阶段,虽然服务本身赚不到钱,但大幅增加了“交易机会”,起码给原来的卫生纸、洗洁精销售,带来了新增加从你家拿电卡时发现你家洗洁精用光了,晚上把充完电的电卡送回时,“  顺便”带来一瓶洗洁精…

明白这其中的玄机了吗?小便利店变成携程网了通过携程订酒店,比自己单独去酒店拿的价格便宜,携程还能再从酒店方,收取一笔佣金。当小便利店拥有“大单”时,确实就可以压榨小区内的洗衣店了……还顺便把利润,让给消费者一点点。

通过这个思路,小便利店一下子财源大开:小时工的清洁服务,皮鞋养护……拥有客户资源,就能转化为利润。

呵呵,我们也可以把小便利店的思路,叫做“占领电话号码思路”。因为它的绝大部分生意都是通过一个电话号码开始的。谁占领了那个号码,谁就尽占风流。我给出的这个案例,最大悬疑在于:能不能控制电话机?

小便利店通过那许多成本付出,只要最终控制了“电话机”,就垄断了客户资源,有了强大的议价能力:把洗衣店、家政服务的利润,生生抢走一半!洗衣店老板还得忍气吞声!看看国美电器和电器厂家的关系,就明白了。

但这些招数一开始时,它的竞争对手为什么不学?注意,看不清局势时,竞争对手不是什么都抄袭的!跟随战略要是个完美的战略的话,谁还干别的啊?

当竞争对手完全看清时,“先发优势”在很多时候已经形成壁垒了。竞争对手想抄袭也晚了。单独拿出某一个环节来模仿,都是不现实的,因为毫无作用而整个价值链模仿,更不现实,因为首先模仿者要和被模仿者,起点和资源相似才行吧?

你相信那些大公司都完美发展、一步没错地快步走到今天吗?!请给自己一个大嘴巴,让自己清醒清醒!创业之初,最怕完全沉浸在“战略规划”的逻辑美感当中战略只是“想”和“看”出来的吗?战略是事前适当考虑,事中边干边学,事后总结提高的结果!如果从便利店变身为服务小管家这个战略假设能够成立,每一步该怎样走,跨大跨小,就是战略“具体化”的过程。

赚100万,抓住一两个机遇就差不多了。但真想赚1000万,只靠一二个“点子”就不大靠谱。我们谈到的企业战略、财务知识,以及便利店的发展思路,正是为了赚1000万而铺垫的武功。深刻领会了这背后的商业逻辑,1000万离你还远吗?

Published by  Published by xFruits

Original source : http://www.mywowo.com/blog/default.asp?id=636...

真的是冒着生命危险写出的帖子

by baiheinet on 六月 28th, 2009

 来源 

   HCl/鹽酸/氫氯酸
  稀:比较酸,感觉嘴里滑溜溜的,典型的呕吐物感,微辣。
  浓:极度的酸,吐掉以后回味苦,然后整个嘴里发凉,10分钟后好转。
  
  H2SO4/硫酸
  稀:淡淡的酸味,回味感觉油腻,微热,甜,无任何不适感。
  较浓的(40%左右的):超烫,感觉喝烫稀饭了,然后微甜感和痛感并存,持续2天才退(98%的纯正浓硫酸不敢喝)。
  
  HNO3/硝酸/硝鏹水
  稀:先是苦,然后整条舌头麻了,然后痛,起了白斑,持续疼痛,3-4天后消退,同时嘴里感觉大吸了一口汽车尾气。
  浓:不敢喝 (猜测是浓硫酸的加强版)。
  
  NaOH/氫氧化鈉
  稀:基本上同浓的Na2CO3(我尝过,咸的),多一些辣感(对蛋白质腐蚀性强的都会有辣感 )。
  浓:含在嘴里十分的辣(可能是已经反应起来了) 然后舌头烧坏,呈黄色,肉腐烂,1个月不能说话,口里有赤痛感而且舌头麻木
有辛辣感半年后出院,说话变得不准,味觉几乎消失,嘴部留下疤痕(这东西对蛋白质的反应不是闹着玩的……)。
  
  CuSO4/硫酸銅
  一开始没味道,吐出后回味淡淡的苦涩(我的确尝过)。
  
  BaCl2/氯化鋇
  极苦咸,大约相当于MgCl2的加强版
  
  CCl4/四氯化碳
  这个最恐怖了,整个嘴里感到烧塑料的味道,极浓郁,吐掉以后出现说不出的怪异甜味,直感觉全身松软
(的确,闻起来还可以,尝起来就郁闷了)。
  
  Na2O2/過氧化鈉
  一般的咸 (Na盐基本都这个味道)。
  
  无水酒精/C2H5OH
  嘴里完全没味道,之后花露水的味道在鼻子里挥之不去。
  
  FeCl3/氯化鐵
  凉,然后酸,与硬币放嘴里感觉差不多(Fe盐都这味道)。
  
  AgNO3/硝酸銀
  没味道。。。
  
  Br2水溶液/溴水/氫溴酸、次溴酸
  极其浓重味道,感觉像汽车尾气与松节油混合的味(只能如此形容)
  
  Hg(NO3)2/硝酸汞
  很淡的味道,有点像味精和醋混合了 。
  
  H2O2/過氧化氫/雙氧水
  特辣,赶紧吐了,之后就没什么事情了 。
  
  还有一个百度知道里面的:
  
  极其微量的氰化物是苦的,宝贵资料啊。
  
  乙酰水杨酸我试过有点酸,有点涩,最后有点苦尽甘来的那种感觉。
  氯化钾的味道跟氯化钠差不多。
  
  我尝过溴化氢,一不小心吸进去的。味道上没什么感觉,但是非常呛,吸进去很少,但是咳了一整个下午,一直到吃晚饭都反胃,印象深刻啊!

  
  从上文看,他至少还尝过硬币、松节油、味精与醋的混合物。另外还吸过一大口汽车尾气…

建议各地有关单位学习一下如何处理尸体

by baiheinet on 六月 28th, 2009

编者按:建议各地有关单位认真学习下面这篇文章,防止下次死了人再次出现动用三万大军抢尸体的情况。

 



杀人后处理尸体的简便方法


作者:嘻哈当道
原文地址:
http://blog.sina.com.cn/s/blog_493802b80100dg7j.html~type=v5_one&label=rela_articletagpub

莲花
给你提供点实用的~~在家里就行~
杀人时如果情况比较突然,而且大多数朋友们以后会面对的也应该属于这个情况比较多。好,现在假设情况如下,夜晚,你在家因为和朋友争吵,失手把他杀了。接下来你应该怎么办,要自首和自杀的朋友们请关闭网页该干嘛干嘛去吧。如果不甘心为了这个冲动坐牢的同学们,请先不要往下看,先想一下自己会如何处理这个情况。

   

  好的,第一步,我认为是,先把尸体移动到浴室。然后把客厅的先打扫干净。这里要推荐CSI 里面曾经提到过的一种清洗液,也就是女生们现在用来清洗曾被大姨妈侵袭过的裤子或者被子。用这种东西清洗过的地板,墙壁等,不会被那个紫外灯照出来。而且女生家有

这个清洗液也是非常正常的。如果你是男孩子,就记得在善后

工作中,把这个瓶子扔了。顺便说一下,这种清洗液在各地超市里面都很好买,尤其是大型商场的卖进口产品多的超市。
   

  第二步,是要把被害人的衣服以及其他物件拿出来归类。这里没什么特别要提醒的,反正能烧的就烧掉。不能烧掉的,记得扔掉。严重要提出注意的,是被害人的手机。千万不要关机。因为手机关机前会向通讯站发出讯号。这样很容易就能定位关机时手机所在位置。前面的努力一下子就前功尽弃了。所以,先在家用这个手机播放音乐,等电用到差不多的时候,找个偏僻的公园或者灌木丛打一个10086 的语音电话。如果你刚巧知道被害人第二天和谁有约会的话,就更好了。先拨一个这个人的电话,在没通的时候就挂掉。然后发一个短信给这个联系人,短信内容为,明天别忘了或者明天别迟到等等类似。然后就把手机往地上扔一下,不要太用力,最好有点摔痕。最后在旁边看着手机把电耗光自动关机


  
  第三步,这点需要很强大的意志力和忍耐力。杀人不光是个技术活,也是个力气活啊。就是大家期待已久的分尸了。家里有浴缸的同志们有福啦。您拥有了最佳的分尸器皿。因为分尸会出现大量的血液,如果没有浴缸的话,您清洗的善后工作会变得非常复杂以及繁琐。我只能提醒家里没有浴缸的同学们,一定要在分尸的时候裸着,以及在门缝塞一些抹布,以避免血液流到客厅,你的打扫工作量会立刻变得巨大起来。好了,具体分尸没什么好说的,无非就是切割之类的精细手工活,如果您是医生,厨师或者屠夫的话,可能操作起来就比其他人快速的多,赢在起跑线上了。普通人呢,在切累了的时候,别忘了打个电话给您的亲朋好友,用轻松愉快的语调,随便聊一下今天公司发生的事情,或者当时正在播出的电视节目。最好邀请一个晚上有约会或者晚上很少出门的朋友一起喝个小酒,看个电影,被对方拒绝就太完美了。打完电话你就接着干活吧,虽然你现在是个凶手,明天一早还是要接着上班的,否则嫌疑就太大了。

  
  第四步,就是怎样把尸体带出去扔掉。当然不可能一起拿个垃圾袋出去扔。这样也太明显了。就算四下无人,别忘了电梯里还有摄像头。什么,你说走楼梯?如果你住在30 楼以上,你能保证在这么多的楼梯上不留一滴血吗?如果在搬运过程中袋子破了你怎么办?再说了,难道就把这堆尸体扔到小区垃圾箱?否则你拿着这个大垃圾袋怎么上出租车?而且应该有很浓厚的血腥味。出租车司机是多么热衷于报警啊。你自己有车?太好了,那就准备让洗车场的伙计们替你报警吧。而且在pol.ice 盘查的时候,有车族的嫌疑“噌噌噌”就大了很多。这部分我们认为,把尸体粉碎,弄到最小,分批带出去是最好不过了。首先,你要把尸体切到尽可能块,而且骨肉分离。把头部,手,***,耳朵,皮肤等最容易辨识的部位先放在一边。肉呢放进微波炉里分批烤熟,这样核糖核酸就被破坏了,你拿出去丢弃的时候就不大会被认出来是人肉;骨头是最占地方以及最难处理的,我们给您推荐的就是---- 台虎钳。它能没有声音的把骨头轧成粉末,实在是杀人灭口居家旅游必备产品。那些容易辨识的部位,先剁碎,然后用榨汁机,绞碎机等,弄成一团肉末。同样带出去扔掉。

  
  第五步,丢弃。这里就牵涉到出门了。出门你有两件事,一是购买我们刚才说的工具,包括清洗剂啊,台虎钳啊之类的。要做计程车出门哦,如果你住朝阳区的,就去丰台区买这些东西吧,反正越远越好。二是丢弃,我们刚才说的,骨头碎末以及烤熟的人肉条。最好的丢弃地址,小区居民垃圾桶,这个危险在于小区的大叔大妈们都是很热心的,陌生人来扔垃圾,搞不好要和你拉拉家常;饭店的垃圾桶,你多去几个饭店吃饭,每次扔一些,这个危险不是太大,但是量大不了;打开窑井盖往里扔,这个只能在晚上做,而且很容易被当成偷井盖的抓住,最后就是流动垃圾车,这个的难度在于你很难碰到,所以,老师从小教导我们平时要注意观察,书到用时方恨少了吧。

  
  第六步,细节的掩藏。这件事基本大块都说完了。但是细节往往决定着成败。你看大多数的案件都是死在细节上。我刚才说的手机关机问题就是一个很多人容易忽视的细节。现在还有几个重要的细节要和大家说明。

   

  首先,刚才说的全部事情,你只有三天左右的时间完成。一个人从失踪到报警到盘查社会关系到你家,差不多只有三天时间。你可要千万抓紧啊,明日复明日,万事成蹉跎。别等pol.ice到了你家,您还满浴缸都是血,那可是给了北京新闻一个头条啊。

  
  第二,摄像头只拍到了被害人进你家电梯的画面,没拍到他出你家。这里我们提供两个解决方案,一是当晚把电梯弄坏,可以解释为被害人从安全通道下楼梯走了,没被拍到;二是,如果你熟悉你们小区的电路走向,这对女生比较难,可以试着当晚把摄像头那一

路的电线切断,晚上物业基本不会来修,要修也要等到第二天,所以没拍到也很正常。还有,你必须弄清楚你家小区的摄像头录影带是保留几天,这个非常简单,随便找个借口就不要我亲自教了吧。而且我自己试了一下,已经成功问到本小区的情况啦。这一点又说

明了“机会只给有准备的人”。
  
  第三,血液的气味是很大的。做事的时候不要开排风扇,而且第二天一早千万要记得在门口打翻一瓶醋来掩盖。

  
  第四,微波炉用了一夜,这个月的用电量会突然暴涨。虽然这不构成直接证据,但是疑点还是要越少越好。大家不妨试试看把自己家冰箱的封条拉开一些。而且要无意间和朋友透露,好像冰箱不大制冷了类似的话,还可以掩盖气味。如果冰箱结霜严重,就请物业的来看一下吧。

    

  第五,台虎钳的问题。用完要清洗干净,早就告诉你们要保持良好的卫生习惯啊。最好再用砂皮打磨一遍就更好了。pol.ice一定会怀疑为什么一个女孩子有这种东西。这就需要你平时积累一些关于手工的爱好,譬如加入一个这样的QQ 群。如果您是个心灵手巧的人,不妨真的锉个什么半成品放在旁边。当然,如果您有办法把接近20 斤的台虎钳完美的处理掉,那就更好了。

 以上,技术层面都说的差不多了。在这里要提醒大家的还是素质,心理素质。大家看看本能里面的莎朗斯通,能够从容不迫的面对测谎仪。pol.ice是一定会来询问你的,如果你平时安分守己,没有案底,然后又回答流利,谈吐自如,乖巧可爱,最好再装作胆小温柔。那么基本上就算过关了。还有,pol.ice来问你,能够老实交代的都不要撒谎。至于什么几点钟在干吗之类的,记得就说,不记得就不记得。电视里面常常有这样的情景,上星期二晚上9 点你在干吗,然后演员假装想了一下就说出来了。妈的,坐在电脑旁边想了半天都没想出来我上礼拜二晚上干嘛了。说明这是一个多么普通的夜晚啊,和我千千万万个夜晚一样,没有什么特别的事情。

荆楚网6月24日报道
6月24日,石首市政府新闻发、昂贵到有些浪费的首饰铺、酒店以及豪华像酒店的住宅区、成年人的游乐场与难得的免费公园。将它们贯通的则是曲折的街水壶把握了最后的呈现机会,反射出光线吸引我,我加了七元钱换下它。此刻房子里的光线较差,到门口刚明亮一点又很快暗人向荆楚网介绍,23日在网上传播“永隆大酒店又挖出尸体”的谣言制造者在荆州市某网吧被查获,经查,造谣者为一在外读书的学生,该学生已承认了造假事实,并表示悔过。

荆楚网6月25日报道
石首市政府新闻发、昂贵到有些浪费的首饰铺、酒店以及豪华像酒店的住宅区、成年人的游乐场与难得的免费公园。将它们贯通的则是曲折的街水壶把握了最后的呈现机会,反射出光线吸引我,我加了七元钱换下它。此刻房子里的光线较差,到门口刚明亮一点又很快暗人今日向荆楚网介绍,公向,随即问个老太太附近有房子出租么,热情的她告诉我她家就有待租的房子,却又警觉的问我租这处干什么。还能干什么,安部和华中科技大学同济医学院权威法医专家对涂远高尸体通过解剖、检验、毒物化验、X光拍片等技术方法进行检验,认定涂远高系高坠自杀死亡。

经省公向,随即问个老太太附近有房子出租么,热情的她告诉我她家就有待租的房子,却又警觉的问我租这处干什么。还能干什么,安厅和荆州市公向,随即问个老太太附近有房子出租么,热情的她告诉我她家就有待租的房子,却又警觉的问我租这处干什么。还能干什么,安局刑事技术部门文字检验鉴定,在涂远高宿舍所提取的遗书为其本人所书写。

涂远高尸体已于6月25日火化。






最后想说一句:造谣的抓了,自杀的烧了,都洗洗睡吧

 

Pages: 1 2 3 4 5 6 7 Next