<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>奔向远方</title>
	<atom:link href="http://www.tisswb.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tisswb.cn</link>
	<description>结婚开始倒计时了，高兴~</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:59:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>编译安装LNMP(Linux+Nginx+Mysql+PHP+Memcache)服务器</title>
		<link>http://www.tisswb.cn/archives/564.html</link>
		<comments>http://www.tisswb.cn/archives/564.html#comments</comments>
		<pubDate>Thu, 29 Jul 2010 14:16:04 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Web服务器]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=564</guid>
		<description><![CDATA[最近学习了一段时间的LNMP和Nginx的负载均衡方面的内容，并且试着自己编译了几个生产环境，使用效果还不错，今天首先把这次安装配置的流水账先写下来，等消化一下具体内容，在好好写一份详细的LNMP编译安装配置的文章：
一、系统安装升级
1.最小化安装CentOS（最小化安装CentOS可以参考http://www.tisswb.cn/archives/519.html）
2.更新源更改为搜狐的源：mirrors.sohu.com
3.yum update
4.服务器基本配置
yum install setuptool ntsysv ntp vixie-cron crontabs microcode_ctl wget irqbalance vim-enhanced
5.执行setup命令
5.1 关闭iptables和selinux
5.2 仅仅开启crond irqbalance microcode_ctl network sshd syslog
<span class="readmore"><a href="http://www.tisswb.cn/archives/564.html" title="编译安装LNMP(Linux+Nginx+Mysql+PHP+Memcache)服务器" target="_blank">阅读全文——共16020字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近学习了一段时间的LNMP和Nginx的负载均衡方面的内容，并且试着自己编译了几个生产环境，使用效果还不错，今天首先把这次安装配置的流水账先写下来，等消化一下具体内容，在好好写一份详细的LNMP编译安装配置的文章：</p>
<p>一、系统安装升级<br />
1.最小化安装CentOS（最小化安装CentOS可以参考<a href="http://www.tisswb.cn/archives/519.html">http://www.tisswb.cn/archives/519.html</a>）<br />
2.更新源更改为搜狐的源：mirrors.sohu.com<br />
3.yum update<br />
4.服务器基本配置<br />
<code>yum install setuptool ntsysv ntp vixie-cron crontabs microcode_ctl wget irqbalance vim-enhanced<br />
</code>5.执行setup命令<br />
5.1 关闭iptables和selinux<br />
5.2 仅仅开启crond irqbalance microcode_ctl network sshd syslog</p>
<p>二、LNMP环境搭建<br />
1.配置编译需要的环境<br />
yum -y install autoconf bzip2 bzip2-devel curl curl-devel e2fsprogs e2fsprogs-devel freetype freetype-devel gcc gcc-c++ gcc-g77 gd gd-devel glib2 glib2-devel glibc glibc-devel krb5 krb5-devel libevent libevent-devel libidn libidn-devel libjpeg libjpeg-devel libpng libpng10 libpng10-devel libpng-devel libtool libtool-libs libxml2 libxml2-devel make ncurses ncurses-devel nss_ldap openldap openldap-clients openldap-devel openldap-servers openssl openssl-devel patch pspell-devel zlib zlib-devel<br />
2.下载所需要安装的软件<br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.36.tar.gz">http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.36.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.13.tar.gz">http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.13.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.13-fpm-0.5.13.diff.gz">http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.13-fpm-0.5.13.diff.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.38.tar.gz">http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.38.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz">http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz">http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz">http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz">http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz">http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.01.tar.gz">http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.01.tar.gz</a><br />
wget <a href="http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.tar.bz2">http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.tar.bz2</a><br />
3.安装PHP 5.2.13（FastCGI模式）<br />
3.1编译安装PHP 5.2.13所需的支持库<br />
tar zxvf libiconv-1.13.tar.gz<br />
cd libiconv-1.13/<br />
./configure &#8211;prefix=/usr/local<br />
make<br />
make install<br />
cd ../<br />
tar zxvf libmcrypt-2.5.8.tar.gz<br />
cd libmcrypt-2.5.8/<br />
./configure<br />
make<br />
make install<br />
/sbin/ldconfig<br />
cd libltdl/<br />
./configure &#8211;enable-ltdl-install<br />
make<br />
make install<br />
cd ../../<br />
tar zxvf mhash-0.9.9.9.tar.gz<br />
cd mhash-0.9.9.9/<br />
./configure<br />
make<br />
make install<br />
cd ../<br />
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8<br />
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a<br />
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la<br />
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so<br />
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1<br />
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config<br />
tar zxvf mcrypt-2.6.8.tar.gz<br />
cd mcrypt-2.6.8/<br />
/sbin/ldconfig<br />
./configure<br />
make<br />
make install<br />
cd ../<br />
3.2编译安装MySQL 5.1.38<br />
/usr/sbin/groupadd mysql<br />
/usr/sbin/useradd -g mysql mysql<br />
tar zxvf mysql-5.1.38.tar.gz<br />
cd mysql-5.1.38/<br />
./configure &#8211;prefix=/usr/local/webserver/mysql/ &#8211;enable-assembler &#8211;with-extra-charsets=complex &#8211;enable-thread-safe-client &#8211;with-big-tables &#8211;with-readline &#8211;with-ssl &#8211;with-embedded-server &#8211;enable-local-infile &#8211;with-plugins=innobase<br />
make &amp;&amp; make install<br />
chmod +w /usr/local/webserver/mysql<br />
chown -R mysql:mysql /usr/local/webserver/mysql<br />
cd ../<br />
如果你想在这台服务器上运行MySQL数据库，则执行以下两步。如果你只是希望让PHP支持MySQL扩展库，能够连接其他服务器上的MySQL数据库，那么，以下两步无需执行。<br />
3.2.1创建MySQL数据库存放目录<br />
mkdir -p /data0/mysql/3306/data/<br />
chown -R mysql:mysql /data0/mysql/<br />
3.2.2以mysql用户帐号的身份建立数据表<br />
/usr/local/webserver/mysql/bin/mysql_install_db &#8211;basedir=/usr/local/webserver/mysql &#8211;datadir=/data0/mysql/3306/data &#8211;user=mysql<br />
3.2.3创建my.cnf配置文件<br />
[client]<br />
default-character-set = utf8<br />
port    = 3306<br />
socket  = /tmp/mysql.sock</p>
<p>[mysql]<br />
#prompt=&#8221;(\u:blog.s135.com:)[\d]&gt; &#8221;<br />
no-auto-rehash</p>
<p>[mysqld]<br />
#default-character-set = utf8<br />
user    = mysql<br />
port    = 3306<br />
socket  = /tmp/mysql.sock<br />
basedir = /usr/local/webserver/mysql<br />
datadir = /data0/mysql/3306/data<br />
open_files_limit    = 10240<br />
back_log = 600<br />
max_connections = 3000<br />
max_connect_errors = 6000<br />
table_cache = 614<br />
external-locking = FALSE<br />
max_allowed_packet = 32M<br />
sort_buffer_size = 2M<br />
join_buffer_size = 2M<br />
thread_cache_size = 300<br />
thread_concurrency = 8<br />
query_cache_size = 32M<br />
query_cache_limit = 2M<br />
query_cache_min_res_unit = 2k<br />
default-storage-engine = MyISAM<br />
default_table_type = MyISAM<br />
thread_stack = 192K<br />
transaction_isolation = READ-COMMITTED<br />
tmp_table_size = 246M<br />
max_heap_table_size = 246M<br />
long_query_time = 1<br />
log_long_format<br />
log-bin = /data0/mysql/3306/binlog<br />
binlog_cache_size = 4M<br />
binlog_format = MIXED<br />
max_binlog_cache_size = 8M<br />
max_binlog_size = 512M<br />
expire_logs_days = 7<br />
key_buffer_size = 256M<br />
read_buffer_size = 1M<br />
read_rnd_buffer_size = 16M<br />
bulk_insert_buffer_size = 64M<br />
myisam_sort_buffer_size = 128M<br />
myisam_max_sort_file_size = 10G<br />
myisam_max_extra_sort_file_size = 10G<br />
myisam_repair_threads = 1<br />
myisam_recover</p>
<p>skip-name-resolve<br />
master-connect-retry = 10<br />
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396</p>
<p>server-id = 1</p>
<p>innodb_additional_mem_pool_size = 16M<br />
innodb_buffer_pool_size = 2048M<br />
innodb_data_file_path = ibdata1:1024M:autoextend<br />
innodb_file_io_threads = 4<br />
innodb_thread_concurrency = 8<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_log_buffer_size = 16M<br />
innodb_log_file_size = 128M<br />
innodb_log_files_in_group = 3<br />
innodb_max_dirty_pages_pct = 90<br />
innodb_lock_wait_timeout = 120<br />
innodb_file_per_table = 0<br />
[mysqldump]<br />
quick<br />
max_allowed_packet = 32M<br />
3.2.4创建管理MySQL数据库的shell脚本：<br />
vi /data0/mysql/3306/mysql</p>
<p>#!/bin/sh</p>
<p>mysql_port=3306<br />
mysql_username=&#8221;admin&#8221;<br />
mysql_password=&#8221;asdasdasd&#8221;</p>
<p>function_start_mysql()<br />
{<br />
printf &#8220;Starting MySQL&#8230;\n&#8221;<br />
/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe &#8211;defaults-file=/data0/mysql/${mysql_port}/my.cnf 2&gt;&amp;1 &gt; /dev/null &amp;<br />
}</p>
<p>function_stop_mysql()<br />
{<br />
printf &#8220;Stoping MySQL&#8230;\n&#8221;<br />
/usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown<br />
}</p>
<p>function_restart_mysql()<br />
{<br />
printf &#8220;Restarting MySQL&#8230;\n&#8221;<br />
function_stop_mysql<br />
sleep 5<br />
function_start_mysql<br />
}</p>
<p>function_kill_mysql()<br />
{<br />
kill -9 $(ps -ef | grep &#8216;bin/mysqld_safe&#8217; | grep ${mysql_port} | awk &#8216;{printf $2}&#8217;)<br />
kill -9 $(ps -ef | grep &#8216;libexec/mysqld&#8217; | grep ${mysql_port} | awk &#8216;{printf $2}&#8217;)<br />
}</p>
<p>if [ "$1" = "start" ]; then<br />
function_start_mysql<br />
elif [ "$1" = "stop" ]; then<br />
function_stop_mysql<br />
elif [ "$1" = "restart" ]; then<br />
function_restart_mysql<br />
elif [ "$1" = "kill" ]; then<br />
function_kill_mysql<br />
else<br />
printf &#8220;Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n&#8221;<br />
fi<br />
3.2.5 赋予shell脚本可执行权限<br />
chmod +x /data0/mysql/3306/mysql<br />
3.2.6 启动MySQL<br />
/data0/mysql/3306/mysql start<br />
3.2.7 通过命令行登录管理MySQL服务器（提示输入密码时直接回车）：<br />
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock<br />
3.2.8 输入以下SQL语句，创建一个具有root权限的用户（admin）和密码（asdasdasd）：<br />
GRANT ALL PRIVILEGES ON *.* TO &#8216;admin&#8217;@'localhost&#8217; IDENTIFIED BY &#8216;asdasdasd&#8217;;<br />
GRANT ALL PRIVILEGES ON *.* TO &#8216;admin&#8217;@'127.0.0.1&#8242; IDENTIFIED BY &#8216;asdasdasd&#8217;;<br />
GRANT ALL PRIVILEGES ON *.* TO &#8216;root&#8217;@'192.168.%.%&#8217; IDENTIFIED BY &#8216;asdasdasd&#8217;;<br />
3.2.9 停止MySQL<br />
/data0/mysql/3306/mysql stop<br />
3.3 编译安装PHP（FastCGI模式）<br />
tar zxvf php-5.2.13.tar.gz<br />
gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1<br />
cd php-5.2.13/<br />
./configure &#8211;prefix=/usr/local/webserver/php &#8211;with-config-file-path=/usr/local/webserver/php/etc &#8211;with-mysql=/usr/local/webserver/mysql &#8211;with-mysqli=/usr/local/webserver/mysql/bin/mysql_config &#8211;with-iconv-dir=/usr/local &#8211;with-freetype-dir &#8211;with-jpeg-dir &#8211;with-png-dir &#8211;with-zlib &#8211;with-libxml-dir=/usr &#8211;enable-xml &#8211;disable-rpath &#8211;enable-discard-path &#8211;enable-safe-mode &#8211;enable-bcmath &#8211;enable-shmop &#8211;enable-sysvsem &#8211;enable-inline-optimization &#8211;with-curl &#8211;with-curlwrappers &#8211;enable-mbregex &#8211;enable-fastcgi &#8211;enable-fpm &#8211;enable-force-cgi-redirect &#8211;enable-mbstring &#8211;with-mcrypt &#8211;with-gd &#8211;enable-gd-native-ttf &#8211;with-openssl &#8211;with-mhash &#8211;enable-pcntl &#8211;enable-sockets &#8211;with-ldap &#8211;with-ldap-sasl &#8211;with-xmlrpc &#8211;enable-zip &#8211;enable-soap<br />
make ZEND_EXTRA_LIBS=&#8217;-liconv&#8217;<br />
make install<br />
cp php.ini-dist /usr/local/webserver/php/etc/php.ini<br />
cd ../<br />
3.4 编译安装PHP5扩展模块<br />
tar zxvf memcache-2.2.5.tgz<br />
cd memcache-2.2.5/<br />
/usr/local/webserver/php/bin/phpize<br />
./configure &#8211;with-php-config=/usr/local/webserver/php/bin/php-config<br />
make<br />
make install<br />
cd ../</p>
<p>tar jxvf eaccelerator-0.9.6.tar.bz2<br />
cd eaccelerator-0.9.6/<br />
/usr/local/webserver/php/bin/phpize<br />
./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=/usr/local/webserver/php/bin/php-config<br />
make<br />
make install<br />
cd ../<br />
3.5 修改php.ini文件<br />
手工修改：查找/usr/local/webserver/php/etc/php.ini中的extension_dir = &#8220;./&#8221;<br />
修改为extension_dir = &#8220;/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/&#8221;<br />
并在此行后增加以下几行，然后保存：<br />
extension = &#8220;memcache.so&#8221;<br />
再查找output_buffering = Off<br />
修改为output_buffering = On<br />
3.6 配置eAccelerator加速PHP<br />
mkdir -p /usr/local/webserver/eaccelerator_cache<br />
vi /usr/local/webserver/php/etc/php.ini<br />
按shift+g键跳到配置文件的最末尾，加上以下配置信息：<br />
[eaccelerator]<br />
zend_extension=&#8221;/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so&#8221;<br />
eaccelerator.shm_size=&#8221;64&#8243;<br />
eaccelerator.cache_dir=&#8221;/usr/local/webserver/eaccelerator_cache&#8221;<br />
eaccelerator.enable=&#8221;1&#8243;<br />
eaccelerator.optimizer=&#8221;1&#8243;<br />
eaccelerator.check_mtime=&#8221;1&#8243;<br />
eaccelerator.debug=&#8221;0&#8243;<br />
eaccelerator.filter=&#8221;"<br />
eaccelerator.shm_max=&#8221;0&#8243;<br />
eaccelerator.shm_ttl=&#8221;3600&#8243;<br />
eaccelerator.shm_prune_period=&#8221;3600&#8243;<br />
eaccelerator.shm_only=&#8221;0&#8243;<br />
eaccelerator.compress=&#8221;1&#8243;<br />
eaccelerator.compress_level=&#8221;9&#8243;<br />
3.7 创建www用户和组<br />
/usr/sbin/groupadd www<br />
/usr/sbin/useradd -g www www<br />
3.8创建php-fpm配置文件<br />
在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件<br />
rm -f /usr/local/webserver/php/etc/php-fpm.conf<br />
vi /usr/local/webserver/php/etc/php-fpm.conf</p>
<p>&lt;?xml version=&#8221;1.0&#8243; ?&gt;<br />
&lt;configuration&gt;</p>
<p> All relative paths in this config are relative to php&#8217;s install prefix</p>
<p> &lt;section name=&#8221;global_options&#8221;&gt;</p>
<p>  Pid file<br />
  &lt;value name=&#8221;pid_file&#8221;&gt;/usr/local/webserver/php/logs/php-fpm.pid&lt;/value&gt;</p>
<p>  Error log file<br />
  &lt;value name=&#8221;error_log&#8221;&gt;/usr/local/webserver/php/logs/php-fpm.log&lt;/value&gt;</p>
<p>  Log level<br />
  &lt;value name=&#8221;log_level&#8221;&gt;notice&lt;/value&gt;</p>
<p>  When this amount of php processes exited with SIGSEGV or SIGBUS &#8230;<br />
  &lt;value name=&#8221;emergency_restart_threshold&#8221;&gt;10&lt;/value&gt;</p>
<p>  &#8230; in a less than this interval of time, a graceful restart will be initiated.<br />
  Useful to work around accidental curruptions in accelerator&#8217;s shared memory.<br />
  &lt;value name=&#8221;emergency_restart_interval&#8221;&gt;1m&lt;/value&gt;</p>
<p>  Time limit on waiting child&#8217;s reaction on signals from master<br />
  &lt;value name=&#8221;process_control_timeout&#8221;&gt;5s&lt;/value&gt;</p>
<p>  Set to &#8216;no&#8217; to debug fpm<br />
  &lt;value name=&#8221;daemonize&#8221;&gt;yes&lt;/value&gt;</p>
<p> &lt;/section&gt;</p>
<p> &lt;workers&gt;</p>
<p>  &lt;section name=&#8221;pool&#8221;&gt;</p>
<p>   Name of pool. Used in logs and stats.<br />
   &lt;value name=&#8221;name&#8221;&gt;default&lt;/value&gt;</p>
<p>   Address to accept fastcgi requests on.<br />
   Valid syntax is &#8216;ip.ad.re.ss:port&#8217; or just &#8216;port&#8217; or &#8216;/path/to/unix/socket&#8217;<br />
   &lt;value name=&#8221;listen_address&#8221;&gt;127.0.0.1:9000&lt;/value&gt;</p>
<p>   &lt;value name=&#8221;listen_options&#8221;&gt;</p>
<p>    Set listen(2) backlog<br />
    &lt;value name=&#8221;backlog&#8221;&gt;-1&lt;/value&gt;</p>
<p>    Set permissions for unix socket, if one used.<br />
    In Linux read/write permissions must be set in order to allow connections from web server.<br />
    Many BSD-derrived systems allow connections regardless of permissions.<br />
    &lt;value name=&#8221;owner&#8221;&gt;&lt;/value&gt;<br />
    &lt;value name=&#8221;group&#8221;&gt;&lt;/value&gt;<br />
    &lt;value name=&#8221;mode&#8221;&gt;0666&lt;/value&gt;<br />
   &lt;/value&gt;</p>
<p>   Additional php.ini defines, specific to this pool of workers.<br />
   &lt;value name=&#8221;php_defines&#8221;&gt;<br />
    &lt;value name=&#8221;sendmail_path&#8221;&gt;/usr/sbin/sendmail -t -i&lt;/value&gt;<br />
    &lt;value name=&#8221;display_errors&#8221;&gt;0&lt;/value&gt;<br />
   &lt;/value&gt;</p>
<p>   Unix user of processes<br />
   &lt;value name=&#8221;user&#8221;&gt;www&lt;/value&gt;</p>
<p>   Unix group of processes<br />
   &lt;value name=&#8221;group&#8221;&gt;www&lt;/value&gt;</p>
<p>   Process manager settings<br />
   &lt;value name=&#8221;pm&#8221;&gt;</p>
<p>    Sets style of controling worker process count.<br />
    Valid values are &#8217;static&#8217; and &#8216;apache-like&#8217;<br />
    &lt;value name=&#8221;style&#8221;&gt;static&lt;/value&gt;</p>
<p>    Sets the limit on the number of simultaneous requests that will be served.<br />
    Equivalent to Apache MaxClients directive.<br />
    Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi<br />
    Used with any pm_style.<br />
    &lt;value name=&#8221;max_children&#8221;&gt;128&lt;/value&gt;</p>
<p>    Settings group for &#8216;apache-like&#8217; pm style<br />
    &lt;value name=&#8221;apache_like&#8221;&gt;</p>
<p>     Sets the number of server processes created on startup.<br />
     Used only when &#8216;apache-like&#8217; pm_style is selected<br />
     &lt;value name=&#8221;StartServers&#8221;&gt;20&lt;/value&gt;</p>
<p>     Sets the desired minimum number of idle server processes.<br />
     Used only when &#8216;apache-like&#8217; pm_style is selected<br />
     &lt;value name=&#8221;MinSpareServers&#8221;&gt;5&lt;/value&gt;</p>
<p>     Sets the desired maximum number of idle server processes.<br />
     Used only when &#8216;apache-like&#8217; pm_style is selected<br />
     &lt;value name=&#8221;MaxSpareServers&#8221;&gt;35&lt;/value&gt;</p>
<p>    &lt;/value&gt;</p>
<p>   &lt;/value&gt;</p>
<p>   The timeout (in seconds) for serving a single request after which the worker process will be terminated<br />
   Should be used when &#8216;max_execution_time&#8217; ini option does not stop script execution for some reason<br />
   &#8217;0s&#8217; means &#8216;off&#8217;<br />
   &lt;value name=&#8221;request_terminate_timeout&#8221;&gt;0s&lt;/value&gt;</p>
<p>   The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file<br />
   &#8217;0s&#8217; means &#8216;off&#8217;<br />
   &lt;value name=&#8221;request_slowlog_timeout&#8221;&gt;0s&lt;/value&gt;</p>
<p>   The log file for slow requests<br />
   &lt;value name=&#8221;slowlog&#8221;&gt;logs/slow.log&lt;/value&gt;</p>
<p>   Set open file desc rlimit<br />
   &lt;value name=&#8221;rlimit_files&#8221;&gt;65535&lt;/value&gt;</p>
<p>   Set max core size rlimit<br />
   &lt;value name=&#8221;rlimit_core&#8221;&gt;0&lt;/value&gt;</p>
<p>   Chroot to this directory at the start, absolute path<br />
   &lt;value name=&#8221;chroot&#8221;&gt;&lt;/value&gt;</p>
<p>   Chdir to this directory at the start, absolute path<br />
   &lt;value name=&#8221;chdir&#8221;&gt;&lt;/value&gt;</p>
<p>   Redirect workers&#8217; stdout and stderr into main error log.<br />
   If not set, they will be redirected to /dev/null, according to FastCGI specs<br />
   &lt;value name=&#8221;catch_workers_output&#8221;&gt;yes&lt;/value&gt;</p>
<p>   How much requests each process should execute before respawn.<br />
   Useful to work around memory leaks in 3rd party libraries.<br />
   For endless request processing please specify 0<br />
   Equivalent to PHP_FCGI_MAX_REQUESTS<br />
   &lt;value name=&#8221;max_requests&#8221;&gt;1024&lt;/value&gt;</p>
<p>   Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.<br />
   Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)<br />
   Makes sense only with AF_INET listening socket.<br />
   &lt;value name=&#8221;allowed_clients&#8221;&gt;127.0.0.1&lt;/value&gt;</p>
<p>   Pass environment variables like LD_LIBRARY_PATH<br />
   All $VARIABLEs are taken from current environment<br />
   &lt;value name=&#8221;environment&#8221;&gt;<br />
    &lt;value name=&#8221;HOSTNAME&#8221;&gt;$HOSTNAME&lt;/value&gt;<br />
    &lt;value name=&#8221;PATH&#8221;&gt;/usr/local/bin:/usr/bin:/bin&lt;/value&gt;<br />
    &lt;value name=&#8221;TMP&#8221;&gt;/tmp&lt;/value&gt;<br />
    &lt;value name=&#8221;TMPDIR&#8221;&gt;/tmp&lt;/value&gt;<br />
    &lt;value name=&#8221;TEMP&#8221;&gt;/tmp&lt;/value&gt;<br />
    &lt;value name=&#8221;OSTYPE&#8221;&gt;$OSTYPE&lt;/value&gt;<br />
    &lt;value name=&#8221;MACHTYPE&#8221;&gt;$MACHTYPE&lt;/value&gt;<br />
    &lt;value name=&#8221;MALLOC_CHECK_&#8221;&gt;2&lt;/value&gt;<br />
   &lt;/value&gt;</p>
<p>  &lt;/section&gt;</p>
<p> &lt;/workers&gt;</p>
<p>&lt;/configuration&gt;<br />
3.9启动php-cgi进程，监听127.0.0.1的9000端口，进程数为128（如果服务器内存小于3GB，可以只开启64个进程），用户为www<br />
ulimit -SHn 65535<br />
/usr/local/webserver/php/sbin/php-fpm start</p>
<p>4.安装安装Nginx 0.8.36<br />
4.1 安装Nginx所需的pcre库<br />
tar zxvf pcre-8.01.tar.gz<br />
cd pcre-8.01/<br />
./configure<br />
make &amp;&amp; make install<br />
cd ../<br />
4.2 安装Nginx<br />
tar zxvf nginx-0.8.36.tar.gz<br />
cd nginx-0.8.36/<br />
./configure &#8211;user=www &#8211;group=www &#8211;prefix=/usr/local/webserver/nginx &#8211;with-http_stub_status_module &#8211;with-http_ssl_module<br />
make &amp;&amp; make install<br />
cd ../<br />
4.3 创建Nginx日志目录<br />
mkdir -p /data0/logs<br />
chmod +w /data0/logs<br />
chown -R www:www /data0/logs<br />
4.4 创建Nginx配置文件<br />
4.4.1 在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件<br />
rm -f /usr/local/webserver/nginx/conf/nginx.conf<br />
vi /usr/local/webserver/nginx/conf/nginx.conf</p>
<p>4.4.2 在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件<br />
vi /usr/local/webserver/nginx/conf/fcgi.conf</p>
<p>fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;<br />
fastcgi_param  SERVER_SOFTWARE    nginx;</p>
<p>fastcgi_param  QUERY_STRING       $query_string;<br />
fastcgi_param  REQUEST_METHOD     $request_method;<br />
fastcgi_param  CONTENT_TYPE       $content_type;<br />
fastcgi_param  CONTENT_LENGTH     $content_length;</p>
<p>fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;<br />
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;<br />
fastcgi_param  REQUEST_URI        $request_uri;<br />
fastcgi_param  DOCUMENT_URI       $document_uri;<br />
fastcgi_param  DOCUMENT_ROOT      $document_root;<br />
fastcgi_param  SERVER_PROTOCOL    $server_protocol;</p>
<p>fastcgi_param  REMOTE_ADDR        $remote_addr;<br />
fastcgi_param  REMOTE_PORT        $remote_port;<br />
fastcgi_param  SERVER_ADDR        $server_addr;<br />
fastcgi_param  SERVER_PORT        $server_port;<br />
fastcgi_param  SERVER_NAME        $server_name;</p>
<p># PHP only, required if PHP was built with &#8211;enable-force-cgi-redirect<br />
fastcgi_param  REDIRECT_STATUS    200;<br />
4.5 启动Nginx<br />
ulimit -SHn 65535<br />
/usr/local/webserver/nginx/sbin/nginx</p>
<p>5. 配置开机自动启动Nginx + PHP<br />
vi /etc/rc.local<br />
ulimit -SHn 65535<br />
/usr/local/webserver/php/sbin/php-fpm start<br />
/usr/local/webserver/nginx/sbin/nginx</p>
<p>6. 优化Linux内核参数<br />
vi /etc/sysctl.conf<br />
# Add<br />
net.ipv4.tcp_max_syn_backlog = 65536<br />
net.core.netdev_max_backlog =  32768<br />
net.core.somaxconn = 32768</p>
<p>net.core.wmem_default = 8388608<br />
net.core.rmem_default = 8388608<br />
net.core.rmem_max = 16777216<br />
net.core.wmem_max = 16777216</p>
<p>net.ipv4.tcp_timestamps = 0<br />
net.ipv4.tcp_synack_retries = 2<br />
net.ipv4.tcp_syn_retries = 2</p>
<p>net.ipv4.tcp_tw_recycle = 1<br />
#net.ipv4.tcp_tw_len = 1<br />
net.ipv4.tcp_tw_reuse = 1</p>
<p>net.ipv4.tcp_mem = 94500000 915000000 927000000<br />
net.ipv4.tcp_max_orphans = 3276800</p>
<p>#net.ipv4.tcp_fin_timeout = 30<br />
#net.ipv4.tcp_keepalive_time = 120<br />
net.ipv4.ip_local_port_range = 1024  65535</p>
<p>使配置立即生效<br />
/sbin/sysctl -p</p>
<p>以上就是所有的文章内容，这次的安装过程主要要感谢：<br />
张晏：<a href="http://blog.s135.com/nginx_php_v6/">http://blog.s135.com/nginx_php_v6/</a>   <a href="http://blog.s135.com/nginx_php_v5/">http://blog.s135.com/nginx_php_v5/</a><br />
LNMP一键安装（<a title="关注VPS Linux Nginx MySQL PHP WEB开发 系统管理 服务器架构 Debian CentOS" href="http://blog.licess.org/">Licess</a>）：<a href="http://lnmp.org/">http://lnmp.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/564.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 死机的应对方法</title>
		<link>http://www.tisswb.cn/archives/562.html</link>
		<comments>http://www.tisswb.cn/archives/562.html#comments</comments>
		<pubDate>Wed, 02 Jun 2010 03:33:21 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=562</guid>
		<description><![CDATA[最近这两天，CentOS的web服务器连续死掉了2次，远程直接没有反应，在机房里能输入用户名，输入完了就没有下文了。最头疼的是没有找到原因何在，也没有任何办法能够进系统重启或者查看内容，每次都是很心疼的摁住电源重启。于是就来找如何应对Linux这种键盘不响应的死机情况，还真找到了一篇：
Linux 会死机么？我可以很肯定地说，会！要让 Linux 死机很容易，但难的是在死机以后如何安全的让他摆脱死机状态，本文讲述如何从 linux 的死机状态中挣脱出来。

Linux 死机有很多种情况，最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理，此外还可以运行内存耗用极大的程序（如虚拟机），也会迅速提升系统负载。由于系统负载过高导致的卡死，一定是解决的越快越好！此时必须记住的是，不能再试图依赖任何图形界面的东西，如 Gnome 的系统监视器（这是我从 Windows 遗留下来的愚昧习惯……），这只会继续加重这种卡死的局面。那怎么办？
<span class="readmore"><a href="http://www.tisswb.cn/archives/562.html" title="linux 死机的应对方法" target="_blank">阅读全文——共1415字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近这两天，CentOS的web服务器连续死掉了2次，远程直接没有反应，在机房里能输入用户名，输入完了就没有下文了。最头疼的是没有找到原因何在，也没有任何办法能够进系统重启或者查看内容，每次都是很心疼的摁住电源重启。于是就来找如何应对Linux这种键盘不响应的死机情况，还真找到了一篇：</p>
<p>Linux 会死机么？我可以很肯定地说，会！要让 Linux 死机很容易，但难的是在死机以后如何安全的让他摆脱死机状态，本文讲述如何从 linux 的死机状态中挣脱出来。</p>
<p><a id="more"></a></p>
<p>Linux 死机有很多种情况，最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理，此外还可以运行内存耗用极大的程序（如虚拟机），也会迅速提升系统负载。由于系统负载过高导致的卡死，一定是解决的越快越好！此时必须记住的是，<strong>不能再试图依赖任何图形界面的东西</strong>，如 Gnome 的系统监视器（这是我从 Windows 遗留下来的愚昧习惯……），这只会继续加重这种卡死的局面。那怎么办？</p>
<p>不要怕，Linux 最初就是不需要图形界面的，因为有一个很强大的文字界面。按 Ctrl-Alt-F1（F1-F6 一般来说都可以），然后等一会儿，就会切换到 tty，也就是所谓的文字界面。这个时候需要用用户名密码登入。注意，可能键盘输入的速度比较慢，不过应该还是可以忍受的。下面在提示符后面输入 top 回车，这时会看到一张动态的表，上面列出了耗用资源最多的进程。观察它刷新一两次，按q退出，然后输入 kill ，其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少，如果你发现没有成功结束掉，就再输入 kill -KILL ，这次基本上就没问题了。</p>
<p>除了上面这种情况外，一些底层软件的 bug 也可能导致一些奇怪的死机问题。我某位同学近日就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。（最后是 sysreccd 修复了，貌似是分区表部分损坏）据其说，死机是键鼠均无反应。一般来说，系统负载高导致的死机，在可怕键盘也会有反应，有人说如果死机到键盘无响应“负载 都无限大了”，亦有人说这可能是 X Server 与驱动配合有问题导致的。不过我们考虑一下遇到这种情况怎么办？</p>
<p>OK，这是今天才学到的方法，叫做 reisub，这个方法可以在各种情况下安全地重启计算机。大家在键盘上找，可以找到一个叫做“Sys Rq”的键，在台机的键盘上通常与 Prt Sc 共键，在笔记本可能在其他位置，如 Delete。以台机为例，要使用这种方法需要<em>按住</em> Alt-Print(Sys Rq)，然后依次按下 reisub 这几个键，按完 b 系统就会重启。</p>
<p>下面解释一下这个方法：其实 Sys Rq 是一种叫做系统请求的东西，按住 Alt-Print 的时候就相当于按住了 Sys Rq 键，这个时候输入的一切都会直接由 Linux 内核来处理，它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作，他们分别表示：</p>
<pre>un<strong>R</strong>aw      将键盘控制从 X Server 那里抢回来
t<strong>E</strong>rminate 给所有进程发送 SIGTERM 信号，让他们自己解决善后
<strong>KI</strong>ll      给所有进程发送 SIGKILL 信号，强制他们马上关闭
<strong>S</strong>ync     将所有数据同步至磁盘
<strong>U</strong>nmount  将所有分区挂载为只读模式
re<strong>B</strong>oot     重启</pre>
<pre>这6个字母的顺序是不可以记错的。那怎么记呢？这里提供一个个人认为比较好的方法：单词 busier（busy 的比较级，更忙）倒过来就是了。</pre>
<p>基本上就这样了，Linux 的死机本来就不多见，现在见了也可以安全解决，多好~</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/562.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中$_SERVER的详细参数与说明</title>
		<link>http://www.tisswb.cn/archives/560.html</link>
		<comments>http://www.tisswb.cn/archives/560.html#comments</comments>
		<pubDate>Thu, 27 May 2010 13:54:51 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=560</guid>
		<description><![CDATA[最近经常用到PHP的$_SERVER常量，都是零零碎碎的随用随查，今天整理一下，并且把$_SERVER的详细参数及说明整理一下：
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名，与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数（如果运行在命令行模式）。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如，“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串，在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如，“HTTP/1.0”。
<span class="readmore"><a href="http://www.tisswb.cn/archives/560.html" title="PHP中$_SERVER的详细参数与说明" target="_blank">阅读全文——共1706字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近经常用到PHP的$_SERVER常量，都是零零碎碎的随用随查，今天整理一下，并且把$_SERVER的详细参数及说明整理一下：</p>
<p><code>$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名，与 document root相关。<br />
$_SERVER['argv'] #传递给该脚本的参数。<br />
$_SERVER['argc'] #包含传递给程序的命令行参数的个数（如果运行在命令行模式）。<br />
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如，“CGI/1.1”。<br />
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。<br />
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串，在响应请求时的头部中给出。<br />
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如，“HTTP/1.0”。<br />
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如：“GET”、“HEAD”，“POST”，“PUT”。<br />
$_SERVER['QUERY_STRING'] #查询(query)的字符串。<br />
$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。<br />
$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。<br />
$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如：“iso-8859-1,*,utf-8”。<br />
$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如：“gzip”。<br />
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如：“en”。<br />
$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如：“Keep-Alive”。<br />
$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。<br />
$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。<br />
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。<br />
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on)，否则返回off<br />
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。<br />
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。<br />
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。<br />
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。<br />
$_SERVER['SERVER_ADMIN'] #管理员信息<br />
$_SERVER['SERVER_PORT'] #服务器所使用的端口<br />
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。<br />
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统（不是文档根目录）的基本路径。<br />
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。<br />
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如，“/index.html”。<br />
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。<br />
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。<br />
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/560.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS中yum的详细使用方法</title>
		<link>http://www.tisswb.cn/archives/558.html</link>
		<comments>http://www.tisswb.cn/archives/558.html#comments</comments>
		<pubDate>Thu, 27 May 2010 07:36:36 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=558</guid>
		<description><![CDATA[一直以来，使用Centos经常使用到yum这个命令，最近刚装了个centos5.4的系统，想yum安装一些基本的软件，由于操作不当，把yum搞了个乱起八糟，老是想安装的提示找不到什么的。于是好好学了一下yum的详细使用方法：
yum是什么
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题
yum特点
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf
自动解决增加或删除rpm包时遇到的倚赖性问题
<span class="readmore"><a href="http://www.tisswb.cn/archives/558.html" title="CentOS中yum的详细使用方法" target="_blank">阅读全文——共2597字</a></span>]]></description>
			<content:encoded><![CDATA[<p>一直以来，使用Centos经常使用到yum这个命令，最近刚装了个centos5.4的系统，想yum安装一些基本的软件，由于操作不当，把yum搞了个乱起八糟，老是想安装的提示找不到什么的。于是好好学了一下yum的详细使用方法：</p>
<p>yum是什么</p>
<p>yum = Yellow dog Updater, Modified</p>
<p>主要功能是更方便的添加/删除/更新RPM包.</p>
<p>它能自动解决包的倚赖性问题.</p>
<p>它能便于管理大量系统的更新问题</p>
<p>yum特点</p>
<p>可以同时配置多个资源库(Repository)</p>
<p>简洁的配置文件(/etc/yum.conf</p>
<p>自动解决增加或删除rpm包时遇到的倚赖性问题</p>
<p>使用方便</p>
<p>保持与RPM数据库的一致性</p>
<p>yum安装</p>
<p>CentOS自带(yum-*.noarch.rpm)</p>
<p>#rpm -ivh yum-*.noarch.rpm</p>
<p>在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY：</p>
<p>#rpm &#8211;import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)</p>
<p>yum指令</p>
<p>注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.</p>
<p>rpm包的更新</p>
<p>检查可更新的rpm包</p>
<p>#yum check-update</p>
<p>更新所有的rpm包</p>
<p>#yum update</p>
<p>更新指定的rpm包,如更新kernel和kernel source</p>
<p>#yum update kernel kernel-source</p>
<p>大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级</p>
<p>#yum upgrade</p>
<p>rpm包的安装和删除</p>
<p>安装rpm包,如xmms-mp3</p>
<p>#yum install xmms-mp3</p>
<p>删除rpm包,包括与该包有倚赖性的包</p>
<p>#yum remove licq</p>
<p>注:同时会提示删除licq-gnome,licq-qt,licq-text</p>
<p>yum暂存(/var/cache/yum/)的相关参数</p>
<p>清除暂存中rpm包文件</p>
<p>#yum clean packages</p>
<p>清除暂存中rpm头文件</p>
<p>#yum clearn headers</p>
<p>清除暂存中旧的rpm头文件</p>
<p>#yum clean oldheaders</p>
<p>清除暂存中旧的rpm头文件和包文件</p>
<p>#yum clearn 或#yum clearn all</p>
<p>注:相当于yum clean packages + yum clean oldheaders</p>
<p>包列表</p>
<p>列出资源库中所有可以安装或更新的rpm包</p>
<p>#yum list</p>
<p>列出资源库中特定的可以安装或更新以及已经安装的rpm包</p>
<p>#yum list mozilla#yum list mozilla*</p>
<p>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包</p>
<p>列出资源库中所有可以更新的rpm包</p>
<p>#yum list updates</p>
<p>列出已经安装的所有的rpm包</p>
<p>#yum list installed</p>
<p>列出已经安装的但是不包含在资源库中的rpm包</p>
<p>#yum list extras</p>
<p>注:通过其它网站下载安装的rpm包</p>
<p>rpm包信息显示(info参数同list)</p>
<p>列出资源库中所有可以安装或更新的rpm包的信息</p>
<p>#yum info</p>
<p>列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息</p>
<p>#yum info mozilla#yum info mozilla*</p>
<p>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息</p>
<p>列出资源库中所有可以更新的rpm包的信息</p>
<p>#yum info updates</p>
<p>列出已经安装的所有的rpm包的信息</p>
<p>#yum info installed</p>
<p>列出已经安装的但是不包含在资源库中的rpm包的信息</p>
<p>#yum info extras</p>
<p>注:通过其它网站下载安装的rpm包的信息</p>
<p>搜索rpm包</p>
<p>搜索匹配特定字符的rpm包</p>
<p>#yum search mozilla</p>
<p>注:在rpm包名,包描述等中搜索</p>
<p>搜索有包含特定文件名的rpm包</p>
<p>#yum provides realplay</p>
<p>增加资源库</p>
<p>例如:增加rpm.livna.org作为资源库</p>
<p>安装Livna.org rpms GPG key</p>
<p>#rpm &#8211;import http://rpm.livna.org/RPM-LIVNA-GPG-KEY</p>
<p>检查GPG Key</p>
<p># rpm -qa gpg-pubkey*</p>
<p>显示Key信息</p>
<p>#rpm -qi gpg-pubkey-a109b1ec-3f6e28d5</p>
<p>(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)</p>
<p>yum常用的命令</p>
<p># yum install xxx 安装xxx软件</p>
<p># yum info xxx 查看xxx软件的信息</p>
<p># yum remove xxx 删除软件包</p>
<p># yum list 列出软件包</p>
<p># yum clean 清除缓冲和就的包</p>
<p># yum provides xxx 以xxx为关键字搜索包（提供的信息为关键字）</p>
<p># yum search xxx 搜索软件包（以名字为关键字）</p>
<p># yum groupupdate xxx</p>
<p># yum grouplist xxx</p>
<p># yum groupremove xxx</p>
<p>这三个都是一组为单位进行升级 列表和删除的操作。。比如 &#8220;Mysql Database&#8221;就是一个组会同时操作相关的所有软件包；</p>
<p># yum update 系统升级</p>
<p># yum list available 列出所有升级源上的包；</p>
<p># yum list updates 列出所有升级源上的可以更新包；</p>
<p># yum list installed 列出已经安装的包；</p>
<p># yun update kernel 升级内核；</p>
<p>yum常用的源</p>
<p>1) 自动选择最快的源</p>
<p>由于yum中有的mirror速度是非常慢的，如果yum选择了这个mirror，这个时候yum就会非常慢，对此，可以下载fastestmirror插件，它会自动选择最快的mirror：</p>
<p>#yum install yum-fastestmirror</p>
<p>配置文件：（一般不用动）/etc/yum/pluginconf.d/fastestmirror.conf</p>
<p>你的yum镜像的速度测试记录文件：/var/cache/yum/timedhosts.txt</p>
<p>(2)使用图形界面的yum</p>
<p>如果觉得命令行的yum不方便，那么可以使用图形化的yumex，这个看起来更方便，因为可以自由地选择软件仓库：</p>
<p>#yum install yumex</p>
<p>然后在系统工具中就可以看到yum extender了。实际上系统自带的“添加/删除程序“也可以实现图形化的软件安装，但有些yumex的功能它没有。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/558.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos中mysql重置密码</title>
		<link>http://www.tisswb.cn/archives/552.html</link>
		<comments>http://www.tisswb.cn/archives/552.html#comments</comments>
		<pubDate>Wed, 10 Feb 2010 04:26:33 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[CentOS]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=552</guid>
		<description><![CDATA[mysql YUM 安装路径rpm -ql mysql (usr/bin)
方法：
# /etc/init.d/mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &#38;
# mysql -u root mysql
mysql&#62; UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql&#62; FLUSH PRIVILEGES;
mysql&#62; quit
# /etc/init.d/mysqld restart
# mysql -uroot -p
]]></description>
			<content:encoded><![CDATA[<p>mysql YUM 安装路径rpm -ql mysql (usr/bin)</p>
<h3 title="转载">方法：</h3>
<p><code># /etc/init.d/mysqld stop<br />
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &amp;<br />
# mysql -u root mysql<br />
mysql&gt; UPDATE user SET Password=PASSWORD('newpassword') where USER='root';<br />
mysql&gt; FLUSH PRIVILEGES;<br />
mysql&gt; quit<br />
# /etc/init.d/mysqld restart<br />
# mysql -uroot -p</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/552.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql中int、bigint、smallint 和 tinyint的区别</title>
		<link>http://www.tisswb.cn/archives/550.html</link>
		<comments>http://www.tisswb.cn/archives/550.html#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:11:11 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web技术]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=550</guid>
		<description><![CDATA[最近使用mysql数据库的时候遇到了多种数字的类型，主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找，找到如下内容，留档做个总结：
使用整数数据的精确数字数据类型。
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据（所有数字）。存储大小为 8 个字节。
int
从 -2^31 (-2,147,483,648) 到 2^31 &#8211; 1 (2,147,483,647) 的整型数据（所有数字）。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到 2^15 &#8211; 1 (32,767) 的整型数据。存储大小为 2 个字节。
<span class="readmore"><a href="http://www.tisswb.cn/archives/550.html" title="mysql中int、bigint、smallint 和 tinyint的区别" target="_blank">阅读全文——共609字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近使用mysql数据库的时候遇到了多种数字的类型，主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找，找到如下内容，留档做个总结：</p>
<p>使用整数数据的精确数字数据类型。</p>
<p><strong>bigint</strong></p>
<p>从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据（所有数字）。存储大小为 8 个字节。</p>
<p><strong>int</strong></p>
<p>从 -2^31 (-2,147,483,648) 到 2^31 &#8211; 1 (2,147,483,647) 的整型数据（所有数字）。存储大小为 4 个字节。<strong>int </strong>的 SQL-92 同义字为 <strong>integer</strong>。</p>
<p><strong>smallint</strong></p>
<p>从 -2^15 (-32,768) 到 2^15 &#8211; 1 (32,767) 的整型数据。存储大小为 2 个字节。</p>
<p><strong>tinyint</strong></p>
<p>从 0 到 255 的整型数据。存储大小为 1 字节。</p>
<h5>注释</h5>
<p>在支持整数值的地方支持 <strong>bigint</strong> 数据类型。但是，<strong>bigint</strong> 用于某些特殊的情况，当整数值超过 <strong>int</strong> 数据类型支持的范围时，就可以采用 <strong>bigint</strong>。在 SQL Server 中，<strong>int</strong> 数据类型是主要的整数数据类型。</p>
<p>在数据类型优先次序表中，<strong>bigint</strong> 位于 <strong>smallmoney</strong> 和 <strong>int</strong> 之间。</p>
<p>只有当参数表达式是 <strong>bigint</strong> 数据类型时，函数才返回 <strong>bigint</strong>。SQL Server 不会自动将其它整数数据类型（<strong>tinyint</strong>、<strong>smallint</strong> 和 <strong>int</strong>）提升为 <strong>bigint</strong>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/550.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我要结婚了！</title>
		<link>http://www.tisswb.cn/archives/547.html</link>
		<comments>http://www.tisswb.cn/archives/547.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 13:29:43 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[东拉西扯]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=547</guid>
		<description><![CDATA[我要结婚了，高兴啊，激动啊，所以最近很少来这里了，只是前几天把博客转到了国外的服务器上来了一次，婚后一定会把前一段时间要写的东西继续完成。
]]></description>
			<content:encoded><![CDATA[<p>我要结婚了，高兴啊，激动啊，所以最近很少来这里了，只是前几天把博客转到了国外的服务器上来了一次，婚后一定会把前一段时间要写的东西继续完成。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/547.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用例子说明inner join,left join,right join,full join的区别</title>
		<link>http://www.tisswb.cn/archives/545.html</link>
		<comments>http://www.tisswb.cn/archives/545.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 07:54:36 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[SQL优化]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=545</guid>
		<description><![CDATA[最近论坛的数据超过了1600万了，时不时的出现访问速度超慢的情况，虽然不是出现频率很多，但也很影响论坛的正常运行。今天终于抽出一些时间来优化一下，经过分析，发现主要是在一个更新主贴回帖数的语句上出现了问题，因为我们的论坛是从dvbbs转过来的，所以当时这个语句做过调整，原来的语句是
SELECT count(*) FROM cdb_posts AS p LEFT JOIN cdb_members AS m ON p.authorid = m.uid WHERE p.tid = '1213675' AND p.invisible = '0' AND p.fid NOT IN (444,92) AND m.uid IS NOT NULL
发现效率真的很差，经常要执行10秒左右，于是现学现卖，抓紧学知识，首先是加索引，效果不错问题解决了。但是我还是想优化一下这个语句。因为这里面的left join一直以来概念模糊，只知道人家用我也用。今天到网上仔细找了找资料学习了一番，把这个语句改成了
<span class="readmore"><a href="http://www.tisswb.cn/archives/545.html" title="用例子说明inner join,left join,right join,full join的区别" target="_blank">阅读全文——共1414字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近论坛的数据超过了1600万了，时不时的出现访问速度超慢的情况，虽然不是出现频率很多，但也很影响论坛的正常运行。今天终于抽出一些时间来优化一下，经过分析，发现主要是在一个更新主贴回帖数的语句上出现了问题，因为我们的论坛是从dvbbs转过来的，所以当时这个语句做过调整，原来的语句是</p>
<p><code>SELECT count(*) FROM cdb_posts AS p LEFT JOIN cdb_members AS m ON p.authorid = m.uid WHERE p.tid = '1213675' AND p.invisible = '0' AND p.fid NOT IN (444,92) AND m.uid IS NOT NULL</code></p>
<p>发现效率真的很差，经常要执行10秒左右，于是现学现卖，抓紧学知识，首先是加索引，效果不错问题解决了。但是我还是想优化一下这个语句。因为这里面的left join一直以来概念模糊，只知道人家用我也用。今天到网上仔细找了找资料学习了一番，把这个语句改成了</p>
<p><code>SELECT count(*) FROM cdb_posts AS p INNER JOIN cdb_members AS m ON p.authorid = m.uid WHERE p.tid = '1213675' AND p.invisible = '0' AND p.fid NOT IN (444,92)</code></p>
<p>下面总结一下inner join,left join,right join,full join的区别</p>
<p>[TEST@ORA1] SQL&gt;select * from a;</p>
<p>编号 姓名<br />
&#8212;- &#8212;&#8212;&#8212;-<br />
1000 张三<br />
2000 李四<br />
3000 王五</p>
<p>[TEST@ORA1] SQL&gt;select * from b;</p>
<p>编号 商品<br />
&#8212;- &#8212;&#8212;&#8212;-<br />
1000 电视机<br />
2000 录像机<br />
4000 自行车</p>
<p>[TEST@ORA1] SQL&gt;set null 空值&#8211;这里为了显示方面我把NULL定义成了[空值]</p>
<p>[TEST@ORA1] SQL&gt;select a.*,b.* from a inner join b on a.编号=b.编号;</p>
<p>编号 姓名       编号 商品<br />
&#8212;- &#8212;&#8212;&#8212;- &#8212;- &#8212;&#8212;&#8212;-<br />
1000 张三       1000 电视机<br />
2000 李四       2000 录像机</p>
<p>[TEST@ORA1] SQL&gt;select a.*,b.* from a left join b on a.编号=b.编号;</p>
<p>编号 姓名       编号 商品<br />
&#8212;- &#8212;&#8212;&#8212;- &#8212;- &#8212;&#8212;&#8212;-<br />
1000 张三       1000 电视机<br />
2000 李四       2000 录像机<br />
3000 王五       空值 空值</p>
<p>[TEST@ORA1] SQL&gt;select a.*,b.* from a right join b on a.编号=b.编号;</p>
<p>编号 姓名       编号 商品<br />
&#8212;- &#8212;&#8212;&#8212;- &#8212;- &#8212;&#8212;&#8212;-<br />
1000 张三       1000 电视机<br />
2000 李四       2000 录像机<br />
空值 空值       4000 自行车</p>
<p>[TEST@ORA1] SQL&gt;select a.*,b.* from a full join b on a.编号=b.编号;</p>
<p>编号 姓名       编号 商品<br />
&#8212;- &#8212;&#8212;&#8212;- &#8212;- &#8212;&#8212;&#8212;-<br />
1000 张三       1000 电视机<br />
2000 李四       2000 录像机<br />
3000 王五       空值 空值<br />
空值 空值       4000 自行车</p>
<p>================================</p>
<p>看例子就一目了然啦。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/545.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>配置LAMP生产环境：安装Apache、PHP、Mysql</title>
		<link>http://www.tisswb.cn/archives/526.html</link>
		<comments>http://www.tisswb.cn/archives/526.html#comments</comments>
		<pubDate>Sat, 28 Nov 2009 16:59:52 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[Web服务器]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=526</guid>
		<description><![CDATA[上一篇主要说了一下快速最小化安装CentOS5.3的过程，这一篇主要讲一讲APM（Apache、PHP、Mysql的缩写）的安装过程。下一篇将集中讲述一下我是优化LAMP（CentOS5.3+Apache2.2.14+PHP5.2.11+Mysql5.0.36）的具体细节。
在CentOS5.3下面安装APM 主要有两种方法，第一种，yum快速安装；第二种，编译安装。这两种方法可以说各有各的好处，作为生产环境都是可以的，下面我们分别讲讲两种方法。
第一种，yum快速安装APM

安装APM
安装命令如下：
yum install httpd httpd-devel mysql mysql-devel mysql-server php php-devel php-mysql php-common php-gd php-mbstring php-mcrypt php-xml
使用/etc/init.d/httpd start 就可以开启web服务器。
<span class="readmore"><a href="http://www.tisswb.cn/archives/526.html" title="配置LAMP生产环境：安装Apache、PHP、Mysql" target="_blank">阅读全文——共828字</a></span>]]></description>
			<content:encoded><![CDATA[<p>上一篇主要说了一下<a href="http://www.tisswb.cn/archives/519.html" target="_self">快速最小化安装CentOS5.3</a>的过程，这一篇主要讲一讲APM（Apache、PHP、Mysql的缩写）的安装过程。下一篇将集中讲述一下我是优化LAMP（CentOS5.3+Apache2.2.14+PHP5.2.11+Mysql5.0.36）的具体细节。</p>
<p>在CentOS5.3下面安装APM 主要有两种方法，第一种，yum快速安装；第二种，编译安装。这两种方法可以说各有各的好处，作为生产环境都是可以的，下面我们分别讲讲两种方法。</p>
<p>第一种，yum快速安装APM</p>
<ol>
<li>安装APM<br />
安装命令如下：<br />
<code>yum install httpd httpd-devel mysql mysql-devel mysql-server php php-devel php-mysql php-common php-gd php-mbstring php-mcrypt php-xml</code><br />
使用/etc/init.d/httpd start 就可以开启web服务器。<br />
使用/etc/init.d/mysqld start 就可以开启Mysql数据库服务器。</li>
<li>初始化Mysql<br />
第一次启动mysql以后执行如下命令：<br />
<code>/usr/bin/mysqladmin -u root password 'asdasd'</code><br />
其中&#8221;中的asdasd是密码，你可以设置成想要的密码。<br />
这样的话就可以使用如下命令登陆mysql了：<br />
<code>mysql -uroot -p</code></li>
<li>设置httpd和mysqld开机启动<br />
命令如下：<br />
<code>chkconfig httpd on<br />
chkconfig mysqld on<br />
</code></li>
<li>在/var/www/html下面新建网页phpinfo.php，内容如下：<br />
这样就可以访问基本的web了：http://192.168.0.6/phpinfo.php （其中192.168.0.6是服务器的ip地址）</li>
</ol>
<p>第二种，编译安装APM</p>
<p>具体编译过程正在整理，敬请期待</p>
<p>20100525 今天更新了一下yum的安装方法，添加了几个devel的安装，因为有些时候安装其他的软件的时候需要用到。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/526.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>配置LAMP生产环境：安装CentOS5.3</title>
		<link>http://www.tisswb.cn/archives/519.html</link>
		<comments>http://www.tisswb.cn/archives/519.html#comments</comments>
		<pubDate>Thu, 26 Nov 2009 14:20:13 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[Web服务器]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=519</guid>
		<description><![CDATA[有几个月没有任何文章，今天回来了。几个月前换了新的工作，主要是将一个大数据量和大访问量的论坛的从dvbbs迁移到discuz，并且为新的程序配置LAMP安装生产环境并逐步优化，中间还负责对discuz进行了二次开发。从这篇文章开始，我开始总结一下这几个月的工作吧，首先安装操作系统，我的生产环境选择的是CentOS5.3，下面主要介绍一下CentOS的最小化安装过程。

系统启动到选择安装方式的时候，选择linux text，文本方式安装。
安装过程中，因为是最小化安装，所以语言选择en即可，分区我采用的是默认的没有进行修改，ip是自定义设置的，时间选项选择在上海，去掉了使用UTC的选项，最后选择程序的时候全部不选择。
最小化安装速度很快，也就是10分钟左右，基本的系统就能安装好，然后重启。
重启后，执行以下操作：
yum install setuptool ntsysv ntp vixie-cron crontabs microcode_ctl wget irqbalance
<span class="readmore"><a href="http://www.tisswb.cn/archives/519.html" title="配置LAMP生产环境：安装CentOS5.3" target="_blank">阅读全文——共3227字</a></span>]]></description>
			<content:encoded><![CDATA[<p>有几个月没有任何文章，今天回来了。几个月前换了新的工作，主要是将一个大数据量和大访问量的论坛的从dvbbs迁移到discuz，并且为新的程序配置LAMP安装生产环境并逐步优化，中间还负责对discuz进行了二次开发。从这篇文章开始，我开始总结一下这几个月的工作吧，首先安装操作系统，我的生产环境选择的是CentOS5.3，下面主要介绍一下CentOS的最小化安装过程。</p>
<ol>
<li>系统启动到选择安装方式的时候，选择linux text，文本方式安装。</li>
<li>安装过程中，因为是最小化安装，所以语言选择en即可，分区我采用的是默认的没有进行修改，ip是自定义设置的，时间选项选择在上海，去掉了使用UTC的选项，最后选择程序的时候全部不选择。</li>
<li>最小化安装速度很快，也就是10分钟左右，基本的系统就能安装好，然后重启。</li>
<li>重启后，执行以下操作：<br />
<code><span style="color: #ff0000;">yum install setuptool ntsysv ntp vixie-cron crontabs microcode_ctl wget irqbalance</span></code><br />
setuptool：可以让文本方式下的setup管用<br />
ntsysv：在setup下有system service管理<br />
ntp：时间更新服务<br />
vixie-cron，crontabs：cron服务<br />
microcode_ctl：inter CPU的微代码之类的东西<br />
wget：从网上下东西<br />
irqbalance：当服务器CPU为S.M.P架构或支持双核心、HT技术时安装，否则不用。</li>
<li>安装完成后，执行如下命令：<br />
<code><span style="color: #ff0000;">setup</span></code><br />
其中关闭Firewall，禁用SELinux。<br />
服务只留下：<br />
<code><strong>crond</strong><br />
<strong>irqbalance</strong> 没装，需要时用yum安装，仅当服务器CPU为S.M.P架构或支持双核心、HT技术时，才需开启，否则关闭。<br />
<strong>microcode_ctl<br />
network<br />
sshd<br />
syslog</strong></code></li>
</ol>
<p>这样，一个基本的CentOS系统就安装完了，下一篇我们就来说一说<a href="http://www.tisswb.cn/archives/526.html" target="_blank">安装Apache、PHP、MySql</a>。</p>
<p><strong>附录：</strong></p>
<p>1.使用163的更新源，163的更新源速度很快，虽然内容不是最新的，但是基本的东西都还是有的。</p>
<p>将/etc/yum.repos.d/CentOS-Base.repo 的内容替换成如下内容<br />
<code><br />
# CentOS-Base.repo<br />
#<br />
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.<br />
# The mirror system uses the connecting IP address of the client and the<br />
# update status of each mirror to pick mirrors that are updated to and<br />
# geographically close to the client.  You should use this for CentOS updates<br />
# unless you are manually picking other mirrors.<br />
#<br />
# If the mirrorlist= does not work for you, as a fall back you can try the<br />
# remarked out baseurl= line instead.<br />
#<br />
#</code></p>
<p><code>[base]<br />
name=CentOS-$releasever - Base<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=os<br />
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/<br />
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</code></p>
<p><code>#released updates<br />
[updates]<br />
name=CentOS-$releasever - Updates<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=updates<br />
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/<br />
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</code></p>
<p><code>#packages used/produced in the build but not released<br />
[addons]<br />
name=CentOS-$releasever - Addons<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=addons<br />
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/<br />
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</code></p>
<p><code>#additional packages that may be useful<br />
[extras]<br />
name=CentOS-$releasever - Extras<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=extras<br />
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/<br />
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</code></p>
<p><code> </code></p>
<p><code>#additional packages that extend functionality of existing packages<br />
[centosplus]<br />
name=CentOS-$releasever - Plus<br />
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus<br />
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/<br />
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/<br />
gpgcheck=1<br />
enabled=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</code></p>
<p>2.安装vim，并设置高亮。<br />
个人比较喜欢使用vim，可是CentOS默认只安装了vi的基本部分，需要执行下面的命令<br />
<code>yum -y install vim-enhanced</code><br />
然后在vim中:syntax on就可以设置高亮了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/519.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在ubuntu9.04下安装ZendStudio7.0详解</title>
		<link>http://www.tisswb.cn/archives/517.html</link>
		<comments>http://www.tisswb.cn/archives/517.html#comments</comments>
		<pubDate>Sun, 16 Aug 2009 14:31:39 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ZendStudio]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=517</guid>
		<description><![CDATA[ZendStudio7绝对是php编辑的神器，最近一段时间使用的是不亦乐乎。但是最近工作环境转移到了Ubuntu上了，还是相当希望能够使用ZS7。当然，zend公司还是给我们提供了linux下的安装文件了，由于是初次在linux下面安装ZendStudio7，下面记录一下安装步骤细节，以备以后查阅：
1.下载zendstudio的linux版本，我下载的地址是：http://downloads.zend.com/studio-eclipse/7.0.0/ZendStudio-7.0.0.tar.gz
2.安装支持环境，zendstudio7需要jre支持，所以需要安装一下
sudo apt-get instll sun-java6-jre sun-java6-jdk
3.解压缩ZendStudio7的压缩包，把内容解压缩到个人的home目录中，解压缩出来的文件是一个叫ZendStudio7_0_0.bin的文件
<span class="readmore"><a href="http://www.tisswb.cn/archives/517.html" title="在ubuntu9.04下安装ZendStudio7.0详解" target="_blank">阅读全文——共511字</a></span>]]></description>
			<content:encoded><![CDATA[<p>ZendStudio7绝对是php编辑的神器，最近一段时间使用的是不亦乐乎。但是最近工作环境转移到了Ubuntu上了，还是相当希望能够使用ZS7。当然，zend公司还是给我们提供了linux下的安装文件了，由于是初次在linux下面安装ZendStudio7，下面记录一下安装步骤细节，以备以后查阅：</p>
<p>1.下载zendstudio的linux版本，我下载的地址是：<a title="zendstudio7的官方下载地址" href="http://downloads.zend.com/studio-eclipse/7.0.0/ZendStudio-7.0.0.tar.gz">http://downloads.zend.com/studio-eclipse/7.0.0/ZendStudio-7.0.0.tar.gz</a></p>
<p>2.安装支持环境，zendstudio7需要jre支持，所以需要安装一下<br />
<code>sudo apt-get instll sun-java6-jre sun-java6-jd</code>k</p>
<p>3.解压缩ZendStudio7的压缩包，把内容解压缩到个人的home目录中，解压缩出来的文件是一个叫ZendStudio7_0_0.bin的文件</p>
<p>4.使用如下命令安装这个bin文件<br />
<code>./ZendStudio7_0_0.bin</code></p>
<p>5.再往后的安装步骤就跟在window下面安装一样了，一直点下一步就可以了</p>
<p>安装完成后的配置也跟windows下面的一样了，这里我就不多说了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/517.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux自动备份数据脚本</title>
		<link>http://www.tisswb.cn/archives/515.html</link>
		<comments>http://www.tisswb.cn/archives/515.html#comments</comments>
		<pubDate>Wed, 29 Jul 2009 07:09:20 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=515</guid>
		<description><![CDATA[Linux如果天天手工备份真是太麻烦了，今天抽空写了一份自动备份脚本具体步骤如下：
1.脚本文件
位置：/usr/systembak/backup.sh
内容：
#!/bin/sh
# File: /usr/systembak/backup.sh
# Database info
DB_USER=&#8221;dumpuser&#8221;
DB_PASS=&#8221;dumpuser&#8221;
# Others vars
<span class="readmore"><a href="http://www.tisswb.cn/archives/515.html" title="Linux自动备份数据脚本" target="_blank">阅读全文——共1184字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Linux如果天天手工备份真是太麻烦了，今天抽空写了一份自动备份脚本具体步骤如下：</p>
<p>1.脚本文件</p>
<p>位置：/usr/systembak/backup.sh</p>
<p>内容：</p>
<p>#!/bin/sh<br />
# File: /usr/systembak/backup.sh</p>
<p># Database info<br />
DB_USER=&#8221;dumpuser&#8221;<br />
DB_PASS=&#8221;dumpuser&#8221;</p>
<p># Others vars<br />
BIN_DIR=&#8221;/usr/bin&#8221;<br />
BCK_DIR=&#8221;/usr/systembak&#8221;<br />
WEB_DIR=&#8221;/var/www/html&#8221;<br />
DATA_DIR=&#8221;/var/lib/mysql&#8221;<br />
DATE=`date +%F`<br />
#FTP_SERV=&#8221;211.144.155.111&#8243;<br />
#FTP_USER=&#8221;username&#8221;<br />
#FTP_PASS=&#8221;12345678&#8243;<br />
#FTP_DIR=&#8221;"</p>
<p>#ZIP<br />
$BIN_DIR/mysqldump &#8211;opt -u$DB_USER -p$DB_PASS e23user | gzip &gt; $BCK_DIR/e23user_dump_$DATE.gz<br />
$BIN_DIR/mysqldump &#8211;opt -u$DB_USER -p$DB_PASS sdbbs | gzip &gt; $BCK_DIR/sdbbs_dump_$DATE.gz<br />
tar -czf $BCK_DIR/web_$DATE.tar.gz  $WEB_DIR<br />
tar -czf $BCK_DIR/e23user_$DATE.tar.gz  $DATA_DIR/e23user<br />
tar -czf $BCK_DIR/sdbbs_$DATE.tar.gz  $WEB_DIR/sdbbs</p>
<p>#UPLOAD<br />
#ftp -i -n $FTP_SERV &lt;&lt;FTP_END<br />
#user $FTP_USER $FTP_PASS<br />
#passive<br />
#binary<br />
#put $BCK_DIR/e23user_dump_$DATE.gz $FTP_DIR/e23user_dump_$DATE.gz<br />
#put $BCK_DIR/sdbbs_dump_$DATE.gz $FTP_DIR/sdbbs_dump_$DATE.gz<br />
#put $BCK_DIR/web_$DATE.tar.gz $FTP_DIR/web_$DATE.tar.gz<br />
#put $BCK_DIR/e23user_$DATE.tar.gz $FTP_DIR/e23user_$DATE.tar.gz<br />
#put $BCK_DIR/sdbbs_$DATE.tar.gz $FTP_DIR/sdbbs_$DATE.tar.gz<br />
#FTP_END</p>
<p>说明：由于没有远程备份服务器，所以UPLOAD部分暂时注释掉了，有了备份服务器只有即可去掉注释。</p>
<p>2.设置定时执行</p>
<p>修改文件：/etc/crontab</p>
<p>在最后添加：05 5 * * 0 root /usr/systembak/backup.sh</p>
<p>意义是在每周日的凌晨5点5分执行备份脚本</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/515.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Discuz7和jQuery冲突的解决方法</title>
		<link>http://www.tisswb.cn/archives/511.html</link>
		<comments>http://www.tisswb.cn/archives/511.html#comments</comments>
		<pubDate>Sun, 28 Jun 2009 03:32:33 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=511</guid>
		<description><![CDATA[discuz是个好程序，但是与其他好东西的兼容性就有点差了，最近开发disczu7的辅助功能组件的时候，想用jquery，就遇到了大问题了，有时候能用，有时候不能用，我就纳闷了，于是查了一上午，发现是jquery与discuz的common.js存在兼容性冲突，头疼啊，在网上找了个解决方法，还是不错的原文如下：
Discuz和jQuery的冲突有两点，在/include/javascript/common.js文件的57~64之间有如下代码：
Array.prototype.push = function(value) {
    this[this.length] = value;
    return this.length;
}
function $(id) {
    return document.getElementById(id);
}
Discuz为了兼容低版本的IE，重写了Array对象的push方法，但在重写之前没有做任何判断，有点太XX了~，改为一下形式：
<span class="readmore"><a href="http://www.tisswb.cn/archives/511.html" title="Discuz7和jQuery冲突的解决方法" target="_blank">阅读全文——共912字</a></span>]]></description>
			<content:encoded><![CDATA[<p>discuz是个好程序，但是与其他好东西的兼容性就有点差了，最近开发disczu7的辅助功能组件的时候，想用jquery，就遇到了大问题了，有时候能用，有时候不能用，我就纳闷了，于是查了一上午，发现是jquery与discuz的common.js存在兼容性冲突，头疼啊，在网上找了个解决方法，还是不错的原文如下：</p>
<p>Discuz和jQuery的冲突有两点，在/include/javascript/common.js文件的57~64之间有如下代码：</p>
<p>Array.prototype.push = function(value) {<br />
    this[this.length] = value;<br />
    return this.length;<br />
}</p>
<p>function $(id) {<br />
    return document.getElementById(id);<br />
}</p>
<p>Discuz为了兼容低版本的IE，重写了Array对象的push方法，但在重写之前没有做任何判断，有点太XX了~，改为一下形式：</p>
<p>if(typeof Array.prototype.push === &#8216;undefined&#8217;) {<br />
    Array.prototype.push = function(value) {<br />
        this[this.length] = value;<br />
        return this.length;<br />
    }<br />
}</p>
<p>第二点就是Discuz也有$()函数，就只是为了实现getElementById？功能没有人家强大就别学人家用美元符号嘛，占用符号资源。应该学学百度，人家就用一个字符G，多低调不和别人争美元。<br />
关于$()函数的冲突，jQuery中给出了解决方法，jQuery.noConflict()，把美元让给你（看看人家多大肚）。</p>
<p>我们的jQuery代码可以这样写：</p>
<p>var jq = jQuery.noConflict(); //把$让给第一个实现它的库，用jq代替<br />
jq(function()<br />
{<br />
//**********************<br />
}<br />
);</p>
<p>这样就完美解决了两者的冲突</p>
<p>原文：<a href="http://hi.baidu.com/mimimo/blog/item/2840768dd7048915b31bbadb.html">http://hi.baidu.com/mimimo/blog/item/2840768dd7048915b31bbadb.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/511.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php单引号和双引号的区别</title>
		<link>http://www.tisswb.cn/archives/505.html</link>
		<comments>http://www.tisswb.cn/archives/505.html#comments</comments>
		<pubDate>Tue, 26 May 2009 06:39:03 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php学习点滴]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=505</guid>
		<description><![CDATA[平时很少注意到这个细节，一直以为PHP中单引号和双引号是互通的，直到有一天，发现单引号和双引号确实存在区别的时候，就仔细研究了一下，有了下面这段文字。
&#8221; &#8221; 双引号里面的字段会经过编译器解释，然后再当作HTML代码输出。
&#8216; &#8216; 单引号里面的不进行解释，直接输出。
从字面意思上就可以看出，单引号比双引号要快了。
例如：
$abc=&#8217;my name is tome&#8217;;
echo $abc //结果是:my name is tom
echo &#8216;$abc&#8217; //结果是:$abc
echo &#8220;$abc&#8221; //结果是:my name is tom
特别在使用MYSQL语句的时候，双引号和单引号的用法让新手不知所措，在这里，举个例子，来进行说明。
<span class="readmore"><a href="http://www.tisswb.cn/archives/505.html" title="php单引号和双引号的区别" target="_blank">阅读全文——共957字</a></span>]]></description>
			<content:encoded><![CDATA[<p>平时很少注意到这个细节，一直以为PHP中单引号和双引号是互通的，直到有一天，发现单引号和双引号确实存在区别的时候，就仔细研究了一下，有了下面这段文字。</p>
<p>&#8221; &#8221; 双引号里面的字段会经过编译器解释，然后再当作HTML代码输出。</p>
<p>&#8216; &#8216; 单引号里面的不进行解释，直接输出。</p>
<p>从字面意思上就可以看出，单引号比双引号要快了。</p>
<p>例如：<br />
$abc=&#8217;my name is tome&#8217;;<br />
echo $abc //结果是:my name is tom<br />
echo &#8216;$abc&#8217; //结果是:$abc<br />
echo &#8220;$abc&#8221; //结果是:my name is tom</p>
<p>特别在使用MYSQL语句的时候，双引号和单引号的用法让新手不知所措，在这里，举个例子，来进行说明。</p>
<p>假设查询条件中使用的是常量，例如：</p>
<p>select    *    from    abc_table where user_name=&#8217;abc&#8217;;</p>
<p>SQL语句可以写成:</p>
<p>SQLstr = &#8220;select    *    from abc_table where user _name= &#8216;abc&#8217;&#8221; ;</p>
<p>假设查询条件中使用的是变量，例如：</p>
<p>$user_name = $_REQUEST['user_name']; //字符串变量</p>
<p>或</p>
<p>$user=array (&#8220;name&#8221;=&gt; $_REQUEST['user_name‘,"age"=&gt;$_REQUEST['age'];//数组变量</p>
<p>SQL语句就可以写成：</p>
<p>SQLstr = &#8220;select    *    from abc_table where user_name = &#8216; &#8221; . $user_name . &#8221; &#8216; &#8220;;</p>
<p>SQLstr = &#8220;select * from abc_table where user_name = &#8216; &#8221; . $user["name"] . &#8221; &#8216; &#8220;;</p>
<p>对比一下:</p>
<p>SQLstr=&#8221;select * from abc_table where user_name = &#8216; abc &#8216; &#8221; ;</p>
<p>SQLstr=&#8221;select * from abc_table where user_name =&#8217; &#8221; . $user _name . &#8221; &#8216; &#8220;;</p>
<p>SQLstr=&#8221;select * from abc_table where user_name =&#8217; &#8221; . $user["name"] . &#8221; &#8216; &#8220;;</p>
<p>SQLstr可以分解为以下3个部分:<br />
1：&#8221;select * from table where user_name = &#8216; &#8221; //固定SQL语句<br />
2：$user //变量<br />
3：&#8221; &#8216; &#8221;<br />
1,2,3部分字符串之间用&#8221;.&#8221; 来连接</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/505.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中file_get_contents函数超时的几种解决方法</title>
		<link>http://www.tisswb.cn/archives/498.html</link>
		<comments>http://www.tisswb.cn/archives/498.html#comments</comments>
		<pubDate>Sun, 24 May 2009 17:33:01 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web技术]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=498</guid>
		<description><![CDATA[在使用file_get_contents函数的时候，经常会出现超时的情况，在这里要通过查看一下错误提示，看看是哪种错误，比较常见的是读取超时，这种情况大家可以通过一些方法来尽量的避免或者解决。这里就简单介绍两种：
一、增加超时的时间限制
这里需要注意：set_time_limit只是设置你的PHP程序的超时时间，而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents，后来经测试，是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数：
$opts = array(
'http'=>array(
'method'=>"GET",
'timeout'=>60,
)
); 
<span class="readmore"><a href="http://www.tisswb.cn/archives/498.html" title="PHP中file_get_contents函数超时的几种解决方法" target="_blank">阅读全文——共683字</a></span>]]></description>
			<content:encoded><![CDATA[<p>在使用file_get_contents函数的时候，经常会出现超时的情况，在这里要通过查看一下错误提示，看看是哪种错误，比较常见的是读取超时，这种情况大家可以通过一些方法来尽量的避免或者解决。这里就简单介绍两种：</p>
<p>一、增加超时的时间限制</p>
<p>这里需要注意：set_time_limit只是设置你的PHP程序的超时时间，而不是file_get_contents函数读取URL的超时时间。<br />
我一开始以为set_time_limit也能影响到file_get_contents，后来经测试，是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数：</p>
<p><code>$opts = array(<br />
'http'=>array(<br />
'method'=>"GET",<br />
'timeout'=>60,<br />
)<br />
); </p>
<p>$context = stream_context_create($opts); </p>
<p>$html =file_get_contents('http://www.example.com', false, $context);<br />
fpassthru($fp);<br />
</code></p>
<p>二、一次有延时的话那就多试几次</p>
<p>有时候失败是因为网络等因素造成，没有解决办法，但是可以修改程序，失败时重试几次，仍然失败就放弃，因为file_get_contents()如果失败将返回 FALSE，所以可以下面这样编写代码：</p>
<p><code>$cnt=0;<br />
while($cnt < 3 &#038;&#038; ($str=@file_get_contents('http...'))===FALSE) $cnt++; </code></p>
<p>以上只是我搜集整理的一些小技巧，希望能找到更好的技巧。</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/498.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>下载Photoshop笔刷的15个好去处</title>
		<link>http://www.tisswb.cn/archives/494.html</link>
		<comments>http://www.tisswb.cn/archives/494.html#comments</comments>
		<pubDate>Fri, 08 May 2009 05:39:36 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[东拉西扯]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=494</guid>
		<description><![CDATA[Photoshop笔刷让 你用自己喜欢的方式和主题来完成你的艺术作品或者是某个设计。网上现在有大量的免费笔刷提供下载，但是浩瀚的网站世界让你很难准确地找到你想要的那一款。 本文就帮你发掘那些最优秀的笔刷出来，并把它们他们呈现在一个页面上。下面，向你推荐15个用以创建你自己笔刷集合的资源。
1、Blendfu
Blendfu获取Photoshop笔刷必备的一个网站：它允许你预览并直接试用所有的笔刷，这样可以节省你大量安装和试用的时间。Blendfu把笔刷分成很多目录，这样你就不必花费大量的时间去挨个查找你想要用的笔刷了。Blendfu除了提供Photoshop笔刷外还提供GIMP笔刷。

2、BrushKing
BrushKing提供了大量Photoshop笔刷示例。当鼠标经过笔刷缩略图时就会显示该笔刷的下载数量、作者、内置笔刷数量以及详细的使用许可等。

3、DeviantArt: Photoshop Brushes
<span class="readmore"><a href="http://www.tisswb.cn/archives/494.html" title="下载Photoshop笔刷的15个好去处" target="_blank">阅读全文——共2491字</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>Photoshop笔刷</strong>让 你用自己喜欢的方式和主题来完成你的艺术作品或者是某个设计。网上现在有大量的免费笔刷提供下载，但是浩瀚的网站世界让你很难准确地找到你想要的那一款。 本文就帮你发掘那些最优秀的笔刷出来，并把它们他们呈现在一个页面上。下面，向你推荐15个用以创建你自己笔刷集合的资源。</p>
<p>1、<a href="http://blendfu.com/">Blendfu</a><br />
Blendfu获取Photoshop笔刷必备的一个网站：它允许你预览并直接试用所有的笔刷，这样可以节省你大量安装和试用的时间。Blendfu把笔刷分成很多<a href="http://blendfu.com/categories">目录</a>，这样你就不必花费大量的时间去挨个查找你想要用的笔刷了。Blendfu除了提供Photoshop笔刷外还提供<a href="http://sixrevisions.com/graphics-design/10-websites-to-help-you-master-gimp/">GIMP</a>笔刷。<br />
<img src="http://www.dudo.org/attachments/month_0905/f200957211512.jpg" alt="Blendfu" /></p>
<p>2、<a href="http://www.brushking.eu/">BrushKing</a><br />
BrushKing提供了大量Photoshop笔刷示例。当鼠标经过笔刷缩略图时就会显示该笔刷的下载数量、作者、内置笔刷数量以及详细的使用许可等。<br />
<img src="http://www.dudo.org/attachments/month_0905/b200957211641.jpg" alt="BrushKing" /></p>
<p>3、<a href="http://browse.deviantart.com/resources/applications/psbrushes/">DeviantArt: Photoshop Brushes</a><br />
DeviantArt线上颇具影响力的图形设计组织，它提供了大量高质量的用户提交的Photoshop笔刷。这里有许多笔刷供你研究和下载，其中不仅包括流行的<a href="http://mark-s.deviantart.com/art/Fractal-Brushes-Set-20484978">碎片主题（fractals）</a>、<a href="http://ka05.deviantart.com/art/Splatter-Brushes-31656209">溅泼主题（splatter）</a>、<a href="http://seleneheart.deviantart.com/art/Flourish-Brushes-39043963">鲜花绽放</a>主题等，还包括了像<a href="http://falln-brushes.deviantart.com/art/Feathered-Angel-Wings-Brushes-18500235">天使翅膀</a>、<a href="http://jaapvdv.deviantart.com/art/Anime-Eyes-17942232">卡通人物眼睛</a>等本站独有的笔刷。<br />
<img src="http://www.dudo.org/attachments/month_0905/2200957211815.jpg" alt="DeviantArt: Photoshop Brushes" /></p>
<p>4、<a href="http://www.brusheezy.com/brushes">Brusheezy</a><br />
Brusheezy是对互联网上大量Photoshop笔刷的一个索引。你可以通过分类目录、Photoshop版本或者通过下载次数、评论数量、用户投票、添加日期等从中遴选出你需要的笔刷来。除提供Photoshop笔刷外，Brusheezy还提供<a href="http://www.brusheezy.com/patterns">Photoshop样式</a>下载。<br />
<img src="http://www.dudo.org/attachments/month_0905/d200957211835.jpg" alt="Brusheezy" /></p>
<p>5、<a href="http://www.psbrushes.net/">PS Brushes.net</a><br />
PS Brushes.net目前拥有500套笔刷。其独特之处就是提供每套笔刷内所有笔刷的预览图，因此你可以清楚了解到这些笔刷具体样式以及它们的规格等。PS Brushes.net有多个目录可供选择，这样可以使你很快了解全站内容。<br />
<img src="http://www.dudo.org/attachments/month_0905/y200957211849.jpg" alt="PS Brushes.net" /></p>
<p>6、<a href="http://www.obsidiandawn.com/brushes-categories">Obsidian Dawn</a><br />
Obsidian Dawn提供免费的Photoshop笔刷、样式和教程。笔刷部分包括许多有用且居吸引力的笔刷，它们使用<a href="http://www.obsidiandawn.com/designs-brushes">Design Brushes</a>和<a href="http://www.obsidiandawn.com/designs-brushes">Nature Brushes</a>等目录加以分类。<br />
<img src="http://www.dudo.org/attachments/month_0905/r200957211910.jpg" alt="Obsidian Dawn" /></p>
<p>7、<a href="http://qbrushes.com/">QBrushes.com</a><br />
QBrushes.com收藏了不同天才设计者的高质量笔刷。这个网站很许多易于查找的功能，方便你下载需要的笔刷类型。例如，你可以使用<a href="http://qbrushes.com/browse-by-tags/">按标签浏览</a>或者使用Abstract和<a href="http://sixrevisions.com/graphics-design/30-high-quality-grunge-photoshop-brush-sets/">Grunge</a>等目录来浏览等。<br />
<img src="http://www.dudo.org/attachments/month_0905/a200957211947.jpg" alt="QBrushes.com" /></p>
<p>8、<a href="http://myphotoshopbrushes.com/">myPhotoshopBrushes.com</a><br />
myPhotoshopBrushes.com提供了许多富有分享精神的设计者和艺术家们的优秀作品。除了大量笔刷外，该站还提供其它Photoshop资源，例如Photoshop样式和自定义形状等。<br />
<img src="http://www.dudo.org/attachments/month_0905/5200957212018.jpg" alt="myPhotoshopBrushes.com" /></p>
<p>9、<a href="http://fbrushes.com/">FBrushes</a><br />
FBrushes现有4000多个独立笔刷和超过200套的整套笔刷。该站采用独特的方式对笔刷分类，即根据笔刷的主题，如Ornamental 和 Splatters。<br />
<img src="http://www.dudo.org/attachments/month_0905/p200957212039.jpg" alt="FBrushes" /></p>
<p>10、<a href="http://www.designersbrush.com/index.html">Designers brush</a><br />
Designers brush搜集了大量高质量Photoshop笔刷。如果你想找Photoshop样式，你同样可以来这里试试。<br />
<img src="http://www.dudo.org/attachments/month_0905/520095721214.jpg" alt="Designers brush" /></p>
<p>11、<a href="http://gfxfever.com/photoshop-brushes">Gfxfever.com:Photoshop Brushes</a><br />
Gfxfever.com的目标人群是网站设计人员，旨在分享图像与网页设计资源。其Photoshop栏目提供了大量清亮的笔刷供免费下载。和许多笔刷下载网站一样，你可以为笔刷打分并以此判断笔刷的质量。<br />
<img src="http://www.dudo.org/attachments/month_0905/e200957212127.jpg" alt="Gfxfever.com:Photoshop Brushes" /></p>
<p>12、<a href="http://inobscuro.com/brushes/">In obscuro: Brushes</a><br />
In obscuro提供各类主题的免费笔刷。在“署名-非商业性使用-相同方式共享（ Creative Commons Attribution-Noncommercial-Share Alike）”许可范围内可以使用这些笔刷，因此你可以在许可范围内免费使用这些主题。这里有大量的笔刷可供选择，如 Photographic brushes 和 Grunge brushes。<br />
<img src="http://www.dudo.org/attachments/month_0905/8200957212153.jpg" alt="In obscuro: Brushes" /></p>
<p>13、<a href="http://getbrushes.com/">GetBrushes</a><br />
GetBrushes网上高品质、可下载的Photoshop笔刷指南。top-notch还开设论坛和讨论Photoshop以及图形设计相关的话题。<br />
<img src="http://www.dudo.org/attachments/month_0905/n200957212221.png" alt="GetBrushes" /></p>
<p>14、<a href="http://www.adobe.com/cfusion/exchange/index.cfm?from=1&amp;amp;amp;o=desc&amp;amp;amp;exc=16&amp;amp;amp;event=productHome&amp;amp;amp;s=5&amp;amp;amp;l=-1&amp;amp;amp;cat=196">Adobe &#8211; Photoshop Brushes</a><br />
Photoshop软件的开发者，Adobe，有一个鲜为人知的板块：Phothshop笔刷专栏。在Adobe上你可以找到近1000套笔刷。浏览Most Popular板块去看看哪些笔刷下载的最多。<br />
<img src="http://www.dudo.org/attachments/month_0905/2200957212233.png" alt="Adobe - Photoshop Brushes" /></p>
<p>15、Design Blogs and Sites（专注于设计的博客和网站）<br />
专门于讨论图形图像和网页设计的网站经常会提供可下载的免费资源。下面是提供一些：<br />
<img src="http://www.dudo.org/attachments/month_0905/w200957212244.png" alt="Design Blogs and Sites" /></p>
<p>15.1. <a href="http://www.smashingmagazine.com/tag/brushes/">Smashing Magazine Brushes</a><br />
他们提供的笔刷套装：</p>
<li><a href="http://www.smashingmagazine.com/2008/12/15/light-blurs-brushes-and-decoration-pack-for-photoshop/">Light Blurs Brushes and Decoration Pack For Photoshop</a></li>
<li><a href="http://www.smashingmagazine.com/2008/12/03/innocent-invaders-photoshop-brushes-set/">Innocent Invaders Photoshop Brushes Set</a></li>
<li><a href="http://www.smashingmagazine.com/2008/09/12/health-and-beauty-photoshop-brushes-set/">Health And Beauty Photoshop Brushes Set</a></li>
<p>15.2. <a href="http://psd.tutsplus.com/category/freebies/">Psdtuts+ Freebies</a><br />
Some sets they offer<br />
他们提供的笔刷套装：</p>
<li><a href="http://psd.tutsplus.com/freebies/brushes/17-cloud-vector-brushes/">17 Cloud Vector Brushes</a></li>
<li><a href="http://psd.tutsplus.com/freebies/brushes/hi-tech-brush-set/">Hi-Tech Brush Set</a></li>
<li><a href="http://psd.tutsplus.com/freebies/brushes/swirl-brushes/">Swirl Brushes</a></li>
<p>15.3. <a href="http://sixrevisions.com/category/freebies/">Six Revisions Freebies</a> (shameless plug)<br />
他们提供的笔刷套装：</p>
<li><a href="http://sixrevisions.com/freebies/brushes/fauna-free-high-res-photoshop-floral-brushes/">Fauna: Free High-Res Photoshop Floral Brushes</a></li>
<li><a href="http://sixrevisions.com/freebies/brushes/sr-grunge-free-high-resolution-photoshop-grunge-brushes/">SR Grunge: Free High Resolution Photoshop Grunge Brushes</a></li>
<p>15.4. <a href="http://www.bittbox.com/category/freebies/">BittBox Freebies</a><br />
他们提供的笔刷套装：</p>
<li><a href="http://www.bittbox.com/freebies/free-hi-res-splatter-photoshop-brushes/">Free Hi-Res Splatter Photoshop Brushes</a></li>
<li><a href="http://www.bittbox.com/freebies/free-hi-res-watercolor-photoshop-brushes/">Free Hi-Res Watercolor Photoshop Brushes</a></li>
<p>15.5. <a href="http://arbent.net/blog/category/freebies">Arbenting Freebies</a></p>
<li><a href="http://arbent.net/blog/freebies-kaleidoscope-photoshop-brush-pack-2">Kaleidoscope<br />
Photoshop Brush Pack</a></li>
<li><a href="http://arbent.net/blog/freebies-grunge-textures-pack-1">Grunge Texture Pack 1</a></li>
<p><strong>你最钟情的是什么？</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/494.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web开发测试必备的7个工具</title>
		<link>http://www.tisswb.cn/archives/492.html</link>
		<comments>http://www.tisswb.cn/archives/492.html#comments</comments>
		<pubDate>Fri, 24 Apr 2009 16:34:10 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[东拉西扯]]></category>
		<category><![CDATA[网站开发]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=492</guid>
		<description><![CDATA[Web开发需要调试，可是调试起来并非那么容易，因为很少有大型的软件来调试，但是一些工具配合起来使用，那也是相当的顺手哦。我个人使用最多的就是firefox中的firebug和webdeveloper，IE下面的话就用IETester来查看兼容性。这里给大家介绍7个比较实用的开发测试工具。
有很多很好的工具来进行Web开发测试。这些工具可以测试从CSS验证到网站速度的一切。确保用户有一个远离问题的使用体验是每个网站的目标，这些工具是那个过程的最终步骤。 
 

1. WebSitePulse Test Tools
 

 
想要一个对反应时间、文件大小和链接的快速测试？WebSitePulse Test Tools提供了一系列快速和简便易用的测试，然后图示出从网站速度到链接错误的一切。同时它也提供了文件大小、重定向速度和DNS的数据。
 
<span class="readmore"><a href="http://www.tisswb.cn/archives/492.html" title="Web开发测试必备的7个工具" target="_blank">阅读全文——共1518字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Web开发需要调试，可是调试起来并非那么容易，因为很少有大型的软件来调试，但是一些工具配合起来使用，那也是相当的顺手哦。我个人使用最多的就是firefox中的firebug和webdeveloper，IE下面的话就用IETester来查看兼容性。这里给大家介绍7个比较实用的开发测试工具。</p>
<p>有很多很好的工具来进行Web开发测试。这些工具可以测试从CSS验证到网站速度的一切。确保用户有一个远离问题的使用体验是每个网站的目标，这些工具是那个过程的最终步骤。 </p>
<p> </p>
<hr />
<h2>1. WebSitePulse Test Tools</h2>
<p> </p>
<hr /><img style="vertical-align: middle;" src="http://www.kooxo.com/uploads/allimg/090417/1757260.jpg" alt="" width="500" height="102" /></p>
<p> </p>
<p>想要一个对反应时间、文件大小和链接的快速测试？<a href="http://www.websitepulse.com/" target="_blank"><span style="color: #2e6ab1;">WebSitePulse Test Tools</span></a>提供了一系列快速和简便易用的测试，然后图示出从网站速度到链接错误的一切。同时它也提供了文件大小、重定向速度和DNS的数据。</p>
<hr /> </p>
<h2>2. XenoCode Browser Sandbox</h2>
<p> </p>
<hr /><img style="vertical-align: middle;" src="http://www.kooxo.com/uploads/allimg/090417/1757261.jpg" alt="" /></p>
<p> </p>
<p>浏览器测试是Web开发中最乏味和令人沮丧的部分。什么样的设计师或者程序员看到对齐毁坏的时候，没有尖叫着要杀了IE6？浏览器测试最困难的部分是，没有那个开发者在一台电脑上有各个版本的浏览器来进行完整的测试。<br />
进入<a href="http://www.xenocode.com/browsers/" target="_blank"><span style="color: #2e6ab1;">XenoCode Browser Sandbox</span></a>，是一系列的虚拟应用可以同时运行所有流行的浏览器，它甚至不需要安装软件。然而，XenoCode<a class="blippr-inline-smiley blippr-inline-smiley-05" href="http://www.blippr.com/apps/336978-Xenocode" target="_blank"></a>’s Browser Sandbox在某些浏览器中可能消耗很大，而且仍然缺少Mac版本。</p>
<hr /> </p>
<h2>3. Firebug Firefox Extension</h2>
<p> </p>
<hr /><img src="http://www.kooxo.com/uploads/allimg/090417/1757262.jpg" alt="" /></p>
<p> </p>
<p>任何地方的程序员最钟爱的扩展，<a href="http://getfirebug.com/" target="_blank"><span style="color: #2e6ab1;">Firebug</span></a>是拥有前端代码和CSS调试功能的最好的应用之一。如果有图片或者风格超出了边线，使用Firebug进行检查是最好的反应。设置可以在这个扩展中改变风格，来查看站点在浏览器中会如何显示。</p>
<hr /> </p>
<h2>4. Load Impact</h2>
<p> </p>
<hr /><img src="http://www.kooxo.com/uploads/allimg/090417/1757263.jpg" alt="" /></p>
<p> </p>
<p>如果站点中病毒以及Digg、Twitter和StumbleUpon都同时聚合它，它能顶住压力吗？<a href="http://loadimpact.com/" target="_blank"><span style="color: #2e6ab1;">Load Impact</span></a>帮助回答这个问题。它模拟在web服务器上大量的过载来确定是否能够处理高流量负荷。它有一个免费的版本和多个付费版本。</p>
<hr /> </p>
<h2>5. Safari <a class="bodytag" href="/articles/tag/Web" target="_blank"><span style="color: #335533;">Web</span></a> Inspector</h2>
<p> </p>
<hr /><img src="http://www.kooxo.com/uploads/allimg/090417/1757264.jpg" alt="" /></p>
<p> </p>
<p>Apple <a href="http://www.apple.com/safari/" target="_blank"><span style="color: #2e6ab1;">Safari浏览器</span></a>难能可贵的一个性能是它的<strong>Web Inspector</strong>。Web Inspector仅能够打开开发标签的时候才能使用，可以展示任何网页上的样式表、图片和脚本。不过Web Inspector最有用的部分是它的网络特性，可以展示实时哪个文档或者脚本从服务器传到浏览器的顺序和速度。使用它来查看脚本、文件或者图片是浏览器最紧张，然后修改。</p>
<hr /> </p>
<h2>6. Web Developer Firefox Extension</h2>
<p> </p>
<hr /><img src="http://www.kooxo.com/uploads/allimg/090417/1757265.jpg" alt="" /></p>
<p> </p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank"><span style="color: #2e6ab1;">Web Developer</span></a>是一个健壮的Firefox扩展，几乎没有开发站测试网站的时候不使用它。它提供了一个大范围的测试，包括测试出错的图片、测试在不同大小屏幕上的布局、浏览cookie信息以及校验标记。它是Firefox用户的终极测试伙伴。</p>
<hr /> </p>
<h2>7. W3C Validation Services</h2>
<p> </p>
<hr /><img src="http://www.kooxo.com/uploads/allimg/090417/1757266.jpg" alt="" /></p>
<p> </p>
<p>W3C是所有web验证的标准。W3C Validator查找任意网站的所有标记，展示基于行业标准的错误。它拥有十几种语言和属性变量，这里是一些最重要的验证：</p>
<blockquote><p>- <a href="http://validator.w3.org/" target="_blank"><span style="color: #2e6ab1;">W3C Markup Validation</span></a>（标记验证）<br />
- <a href="http://jigsaw.w3.org/css-validator/" target="_blank"><span style="color: #2e6ab1;">W3C CSS Validation </span></a>（CSS验证）<br />
- <a href="http://validator.w3.org/mobile/" target="_blank"><span style="color: #2e6ab1;">W3C mobileOK Checker</span></a>（手机浏览验证）<br />
- <a href="http://validator.w3.org/checklink" target="_blank"><span style="color: #2e6ab1;">W3C Link Checker</span></a>（链接检测）<br />
- <a href="http://validator.w3.org/feed/" target="_blank"><span style="color: #2e6ab1;">W3C Feed Validation Service</span></a> （Feed验证服务）</p></blockquote>
<p>这些工具设计用来通过尽早检测问题，使得网站尽量的快、尽量没有缺陷。至少，他们会使一个开发者知道他或她是否需要对着IE6尖叫。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/492.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>my.cnf详解及详细翻译</title>
		<link>http://www.tisswb.cn/archives/489.html</link>
		<comments>http://www.tisswb.cn/archives/489.html#comments</comments>
		<pubDate>Mon, 13 Apr 2009 05:55:29 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web技术]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=489</guid>
		<description><![CDATA[配置详解：
mysqld程序&#8211;目录和文件
basedir = path  使用给定目录作为根目录(安装目录)。
character-sets-dir = path  给出存放着字符集的目录。
datadir = path  从给定目录读取数据库文件。
pid-file = filename  为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。
socket = filename  为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)。
在Windows环境下，如果MySQL客户与服务器是通过命名管道进行通信的，&#8211;sock选项给出的将是该命名管道的名字(默认设置是MySQL)。
<span class="readmore"><a href="http://www.tisswb.cn/archives/489.html" title="my.cnf详解及详细翻译" target="_blank">阅读全文——共17353字</a></span>]]></description>
			<content:encoded><![CDATA[<h2><strong>配置详解：</strong></h2>
<p><span style="font-size: 10pt;">mysqld程序&#8211;目录和文件<br />
basedir = path  使用给定目录作为根目录(安装目录)。<br />
character-sets-dir = path  给出存放着字符集的目录。<br />
datadir = path  从给定目录读取数据库文件。<br />
pid-file = filename  为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。<br />
socket = filename  为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)。<br />
在Windows环境下，如果MySQL客户与服务器是通过命名管道进行通信的，&#8211;sock选项给出的将是该命名管道的名字(默认设置是MySQL)。<br />
lower_case_table_name = 1/0  新目录和数据表的名字是否只允许使用小写字母; 这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。</p>
<p>mysqld程序&#8211;语言设置<br />
character-sets-server = name  新数据库或数据表的默认字符集。为了与MySQL的早期版本保持兼容，这个字符集也可以用&#8211;default-character-set选项给出; 但这个选项已经显得有点过时了。<br />
collation-server = name  新数据库或数据表的默认排序方式。<br />
lanuage = name  用指定的语言显示出错信息。</p>
<p>mysqld程序&#8211;通信、网络、信息安全<br />
enable-named-pipes  允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。这个命名管道的默认名字是MySQL，但可以用&#8211;socket选项来改变。<br />
local-infile [=0]  允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。<br />
myisam-recover [=opt1, opt2, ...]  在启动时自动修复所有受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE; 它们与myisamchk程序的同名选项作用相同。<br />
old-passwords  使用MySQL 3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL 4.1版本开始引入的新加密算法)。<br />
port = n  为MySQL程序指定一个TCP/IP通信端口(通常是3306端口)。<br />
safe-user-create  只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令; 这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令)。<br />
shared-memory  允许使用内存(shared memory)进行通信(仅适用于Windows)。<br />
shared-memory-base-name = name  给共享内存块起一个名字(默认的名字是MySQL)。<br />
skip-grant-tables  不使用mysql数据库里的信息来进行访问控制(警告:这将允许用户任何用户去修改任何数据库)。<br />
skip-host-cache  不使用高速缓存区来存放主机名和IP地址的对应关系。<br />
skip-name-resovle  不把IP地址解析为主机名; 与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进。<br />
skip-networking  只允许通过一个套接字文件(Unix/Linux系统)或通过命名管道(Windows系统)进行本地连接，不允许ICP/IP连接; 这提高了安全性，但阻断了来自网络的外部连接和所有的Java客户程序(Java客户即使在本地连接里也使用TCP/IP)。<br />
user = name  mysqld程序在启动后将在给定UNIX/Linux账户下执行; mysqld必须从root账户启动才能在启动后切换到另一个账户下执行; mysqld_safe脚本将默认使用&#8211;user=mysql选项来启动mysqld程序。</p>
<p>mysqld程序&#8211;内存管理、优化、查询缓存区<br />
bulk_insert_buffer_size = n  为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。<br />
key_buffer_size = n  用来存放索引区块的RMA值(默认设置是8M)。<br />
join_buffer_size = n  在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K)。<br />
max_heap_table_size = n  HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。<br />
max_connections = n  MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。<br />
query_cache_limit = n  允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。<br />
query_cache_size = n  查询缓存区的最大长度(默认设置是0，不开辟查询缓存区)。<br />
query_cache_type = 0/1/2  查询缓存区的工作模式:0, 禁用查询缓存区; 1，启用查询缓存区(默认设置); 2，&#8221;按需分配&#8221;模式，只响应SELECT SQL_CACHE命令。<br />
read_buffer_size = n  为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB); 这个选项的设置值在必要时可以用SQL命令SET SESSION read_buffer_size = n命令加以改变。<br />
read_rnd_buffer_size = n  类似于read_buffer_size选项，但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)。<br />
sore_buffer = n  为排序操作分配的缓存区的长度(默认设置是2M); 如果这个缓存区太小，则必须创建一个临时文件来进行排序。<br />
table_cache = n  同时打开的数据表的数量(默认设置是64)。<br />
tmp_table_size = n  临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。</p>
<p>mysqld程序&#8211;日志<br />
log [= file]  把所有的连接以及所有的SQL命令记入日志(通用查询日志); 如果没有给出file参数，MySQL将在数据库目录里创建一个hostname.log文件作为这种日志文件(hostname是服务器的主机名)。<br />
log-slow-queries [= file]  把执行用时超过long_query_time变量值的查询命令记入日志(慢查询日志); 如果没有给出file参数，MySQL将在数据库目录里创建一个hostname-slow.log文件作为这种日志文件(hostname是服务器主机 名)。<br />
long_query_time = n  慢查询的执行用时上限(默认设置是10s)。<br />
long_queries_not_using_indexs  把慢查询以及执行时没有使用索引的查询命令全都记入日志(其余同&#8211;log-slow-queries选项)。<br />
log-bin [= filename]  把对数据进行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变更日志，binary update log)。这种日志的文件名是filename.n或默认的hostname.n，其中n是一个6位数字的整数(日志文件按顺序编号)。<br />
log-bin-index = filename  二进制日志功能的索引文件名。在默认情况下，这个索引文件与二进制日志文件的名字相同，但后缀名是.index而不是.nnnnnn。<br />
max_binlog_size = n  二进制日志文件的最大长度(默认设置是1GB)。在前一个二进制日志文件里的信息量超过这个最大长度之前，MySQL服务器会自动提供一个新的二进制日志文件接续上。<br />
binlog-do-db = dbname  只把给定数据库里的变化情况记入二进制日志文件，其他数据库里的变化情况不记载。如果需要记载多个数据库里的变化情况，就必须在配置文件使用多个本选项来设置，每个数据库一行。<br />
binlog-ignore-db = dbname  不把给定数据库里的变化情况记入二进制日志文件。<br />
sync_binlog = n  每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法，但效率最低。默认设置是n=0，意思是由操作系统来负责二进制日志文件的同步工作。<br />
log-update [= file]  记载出错情况的日志文件名(出错日志)。这种日志功能无法禁用。如果没有给出file参数，MySQL会使用hostname.err作为种日志文件的名字。</p>
<p>mysqld程序&#8211;镜像(主控镜像服务器)<br />
server-id = n  给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能。<br />
log-bin = name  启用二进制日志功能。这种日志的文件名是filename.n或默认的hostname.n，其中的n是一个6位数字的整数(日志文件顺序编号)。<br />
binlog-do/ignore-db = dbname  只把给定数据库里的变化情况记入二进制日志文件/不把给定的数据库里的变化记入二进制日志文件。</p>
<p>mysqld程序&#8211;镜像(从属镜像服务器)<br />
server-id = n  给服务器分配一个唯一的ID编号<br />
log-slave-updates  启用从属服务器上的日志功能，使这台计算机可以用来构成一个镜像链(A-&gt;B-&gt;C)。<br />
master-host = hostname  主控服务器的主机名或IP地址。如果从属服务器上存在mater.info文件(镜像关系定义文件)，它将忽略此选项。<br />
master-user = replicusername  从属服务器用来连接主控服务器的用户名。如果从属服务器上存在mater.info文件，它将忽略此选项。<br />
master-password = passwd  从属服务器用来连接主控服务器的密码。如果从属服务器上存在mater.info文件，它将忽略此选项。<br />
master-port = n  从属服务器用来连接主控服务器的TCP/IP端口(默认设置是3306端口)。<br />
master-connect-retry = n  如果与主控服务器的连接没有成功，则等待n秒(s)后再进行管理方式(默认设置是60s)。如果从属服务器存在mater.info文件，<br />
它将忽略此选项。<br />
master-ssl-xxx = xxx  对主、从服务器之间的SSL通信进行配置。<br />
read-only = 0/1  0: 允许从属服务器独立地执行SQL命令(默认设置); 1: 从属服务器只能执行来自主控服务器的SQL命令。<br />
read-log-purge = 0/1  1: 把处理完的SQL命令立刻从中继日志文件里删除(默认设置); 0: 不把处理完的SQL命令立刻从中继日志文件里删除。<br />
replicate-do-table = dbname.tablename  与&#8211;replicate-do-table选项的含义和用法相同，但数据库和数据库表名字里允许出现通配符&#8221;%&#8221;<br />
(例如: test%.%&#8211;对名字以&#8221;test&#8221;开头的所有数据库里的所以数据库表进行镜像处理)。<br />
replicate-do-db = name  只对这个数据库进行镜像处理。<br />
replicate-ignore-table = dbname.tablename  不对这个数据表进行镜像处理。<br />
replicate-wild-ignore-table = dbn.tablen  不对这些数据表进行镜像处理。<br />
replicate-ignore-db = dbname  不对这个数据库进行镜像处理。<br />
replicate-rewrite-db = db1name &gt; db2name  把主控数据库上的db1name数据库镜像处理为从属服务器上的db2name数据库。<br />
report-host = hostname  从属服务器的主机名; 这项信息只与SHOW SLAVE HOSTS命令有关&#8211;主控服务器可以用这条命令生成一份从属服务器的名单。<br />
slave-compressed-protocol = 1  主、从服务器使用压缩格式进行通信&#8211;如果它们都支持这么做的话。<br />
slave-skip-errors = n1, n2, &#8230;或all  即使发生出错代码为n1、n2等的错误，镜像处理工作也继续进行(即不管发生什么错误，镜像处理工作也继续进行)。<br />
如果配置得当，从属服务器不应该在执行SQL命令时发生错误(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上做镜像处理); 如果不使用<br />
slave-skip-errors选项，从属服务器上的镜像工作就可能国为发生错误而中断，中断后需要有人工参与才能继续进行。</p>
<p>mysqld&#8211;InnoDB&#8211;基本设置、表空间文件<br />
skip-innodb  不加载InnoDB数据表驱动程序&#8211;如果用不着InnoDB数据表，可以用这个选项节省一些内存。<br />
innodb-file-per-table  为每一个新数据表创建一个表空间文件而不是把数据表都集中保存在中央表空间里(后者是默认设置)。该选项始见于MySQL 4.1。<br />
innodb-open-file = n  InnoDB数据表驱动程序最多可以同时打开的文件数(默认设置是300)。如果使用了innodb-file-per-table选项并且需要同时打开很多<br />
数据表的话，这个数字很可能需要加大。<br />
innodb_data_home_dir = p  InnoDB主目录，所有与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的情况下，这个主目录就是MySQL的数据目录。<br />
innodb_data_file_path = ts  用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或<br />
千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还可以带一个autoextend属性和一个最大长度(max:n)。<br />
例如，ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: 表空间文件ibdata1的最大长度是1GB，ibdata2的最大长度也是1G，但允许它扩充到2GB。<br />
除文件名外，还可以用硬盘分区的设置名来定义表空间，此时必须给表空间的最大初始长度值加上newraw关键字做后缀，给表空间的最大扩充长度值加上<br />
raw关键字做后缀(例如/dev/hdb1:20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend。<br />
innodb_autoextend_increment = n  带有autoextend属性的表空间文件每次加大多少兆字节(默认设置是8MB)。这个属性不涉及具体的数据表文件，那些文件的<br />
增大速度相对是比较小的。<br />
innodb_lock_wait_timeout = n  如果某个事务在等待n秒(s)后还没有获得所需要的资源，就使用ROLLBACK命令放弃这个事务。这项设置对于发现和处理未能被<br />
InnoDB数据表驱动程序识别出来的死锁条件有着重要的意义。这个选项的默认设置是50s。<br />
innodb_fast_shutdown 0/1  是否以最快的速度关闭InnoDB，默认设置是1，意思是不把缓存在INSERT缓存区的数据写入数据表，那些数据将在MySQL服务器下次<br />
启动时再写入(这么做没有什么风险，因为INSERT缓存区是表空间的一个组成部分，数据不会丢失)。把这个选项设置为0反面危险，因为在计算机关闭时，<br />
InnoDB驱动程序很可能没有足够的时间完成它的数据同步工作，操作系统也许会在它完成数据同步工作之前强行结束InnoDB，而这会导致数据不完整。</p>
<p>mysqld程序&#8211;InnoDB&#8211;日志<br />
innodb_log_group_home_dir = p  用来存放InnoDB日志文件的目录路径(如ib_logfile0、ib_logfile1等)。在默认的情况下，InnoDB驱动程序将使用MySQL数据目<br />
录作为自己保存日志文件的位置。<br />
innodb_log_files_in_group = n  使用多少个日志文件(默认设置是2)。InnoDB数据表驱动程序将以轮转方式依次填写这些文件; 当所有的日志文件都写满以后，<br />
之后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB)。这个长度必须以MB(兆字节)或GB(千兆字节)为单位进行设置。<br />
innodb_flush_log_at_trx_commit = 0/1/2  这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为&#8221;同步&#8221;)到硬盘上。<br />
设置值0的意思是每隔一秒写一次日志并进行同步，这可以减少硬盘写操作次数，但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT<br />
命令就写一次日志并进行同步，这可以防止数据丢失，但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法，即每执行完一条COMMIT命令写一次日志，<br />
每隔一秒进行一次同步。<br />
innodb_flush_method = x  InnoDB日志文件的同步办法(仅适用于UNIX/Linux系统)。这个选项的可取值有两种: fdatasync，用fsync()函数进行同步; O_DSYNC，<br />
用O_SYNC()函数进行同步。<br />
innodb_log_archive = 1  启用InnoDB驱动程序的archive(档案)日志功能，把日志信息写入ib_arch_log_n文件。启用这种日志功能在InnoDB与MySQL一起使用时没有<br />
多大意义(启用MySQL服务器的二进制日志功能就足够用了)。</p>
<p>mysqld程序&#8211;InnoDB&#8211;缓存区的设置和优化<br />
innodb_log_buffer_pool_size = n  为InnoDB数据表及其索引而保留的RAM内存量(默认设置是8MB)。这个参数对速度有着相当大的影响，如果计算机上只运行有<br />
MySQL/InnoDB数据库服务器，就应该把全部内存的80%用于这个用途。<br />
innodb_log_buffer_size = n  事务日志文件写操作缓存区的最大长度(默认设置是1MB)。<br />
innodb_additional_men_pool_size = n  为用于内部管理的各种数据结构分配的缓存区最大长度(默认设置是1MB)。<br />
innodb_file_io_threads = n  I/O操作(硬盘写操作)的最大线程个数(默认设置是4)。<br />
innodb_thread_concurrency = n  InnoDB驱动程序能够同时使用的最大线程个数(默认设置是8)。</p>
<p>mysqld程序&#8211;其它选项<br />
bind-address = ipaddr  MySQL服务器的IP地址。如果MySQL服务器所在的计算机有多个IP地址，这个选项将非常重要。<br />
default-storage-engine = type  新数据表的默认数据表类型(默认设置是MyISAM)。这项设置还可以通过&#8211;default-table-type选项来设置。<br />
default-timezone = name  为MySQL服务器设置一个地理时区(如果它与本地计算机的地理时区不一样)。<br />
ft_min_word_len = n  全文索引的最小单词长度工。这个选项的默认设置是4，意思是在创建全文索引时不考虑那些由3个或更少的字符构建单词。<br />
Max-allowed-packet = n  客户与服务器之间交换的数据包的最大长度，这个数字至少应该大于客户程序将要处理的最大BLOB块的长度。这个选项的默认设置是1MB。<br />
Sql-mode = model1, mode2, &#8230;  MySQL将运行在哪一种SQL模式下。这个选项的作用是让MySQL与其他的数据库系统保持最大程度的兼容。这个选项的可取值包括<br />
ansi、db2、oracle、no_zero_date、pipes_as_concat。</p>
<p>注意：如果在配置文件里给出的某个选项是mysqld无法识别的(如，因为犯了一个愚蠢的打字错误)，MySQL服务器将不启动。</span></p>
<h2><strong>详细翻译：</strong></h2>
<div id="articleBody" class="articleContent">#BEGIN CONFIG INFO<br />
#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大<br />
#TYPE: SYSTEM<br />
#END CONFIG INFO</p>
<p>#<br />
# 此mysql配置文件例子针对4G内存，并在<a href="http://www.bt285.cn/"><span style="color: #006600;">www.bt285.cn</span></a> bt下载与 <a href="http://www.5a520.cn/"><span style="color: #006600;">www.5a520.cn</span></a> 小说520，这两个日ip 2w ,pv 20w  测试过的。<br />
# 主要使用INNODB<br />
#处理复杂队列并且连接数量较少的mysql服务器<br />
#<br />
# 将此文件复制到/etc/my.cnf 作为全局设置,<br />
# mysql-data-dir/my.cnf 作为服务器指定设置<br />
# (@localstatedir@ for this installation) 或者放入<br />
# ~/.my.cnf 作为用户设置.<br />
#<br />
# 在此配置文件中, 你可以使用所有程序支持的长选项.<br />
# 如果想获悉程序支持的所有选项<br />
# 请在程序后加上&#8221;&#8211;help&#8221;参数运行程序.<br />
#<br />
# 关于独立选项更多的细节信息可以在手册内找到<br />
#</p>
<p>#<br />
# 以下选项会被MySQL客户端应用读取.<br />
# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容.<br />
# 如果你想你自己的MySQL应用程序获取这些值<br />
# 需要在MySQL客户端库初始化的时候指定这些选项</p>
<p>#<br />
[client]<br />
#password = [your_password]<br />
port = @MYSQL_TCP_PORT@<br />
socket = @MYSQL_UNIX_ADDR@</p>
<p># *** 应用定制选项 ***</p>
<p>#<br />
#  MySQL 服务端<br />
#<br />
[mysqld]</p>
<p># 一般配置选项<br />
port = @MYSQL_TCP_PORT@<br />
socket = @MYSQL_UNIX_ADDR@</p>
<p># back_log 是操作系统在监听队列中所能保持的连接数,<br />
# 队列保存了在MySQL连接管理器线程处理之前的连接.<br />
# 如果你有非常高的连接率并且出现&#8221;connection refused&#8221; 报错,<br />
# 你就应该增加此处的值.<br />
# 检查你的操作系统文档来获取这个变量的最大值.<br />
# 如果将back_log设定到比你操作系统限制更高的值,将会没有效果<br />
back_log = 50</p>
<p># 不在TCP/IP端口上进行监听.<br />
# 如果所有的进程都是在同一台服务器连接到本地的mysqld,<br />
# 这样设置将是增强安全的方法<br />
# 所有mysqld的连接都是通过Unix sockets 或者命名管道进行的.<br />
# 注意在windows下如果没有打开命名管道选项而只是用此项<br />
# (通过 &#8220;enable-named-pipe&#8221; 选项) 将会导致mysql服务没有任何作用!<br />
#skip-networking</p>
<p># MySQL 服务所允许的同时会话数的上限<br />
# 其中一个连接将被SUPER权限保留作为管理员登录.<br />
# 即便已经达到了连接数的上限.<br />
max_connections = 100<br />
一般像在我这个<a href="http://www.bt285.cn/"><span style="color: #006600;">www.bt285.cn</span></a> pv 10w   max_connections=30 就够了。但是如果页面都像<a href="http://www.bt285.cn/content.php?id=1196863"><span style="color: #006600;">http://www.bt285.cn/content.php?id=1196863</span></a> 这个甜性涩爱页面一样，max_connections=30是不够的。<br />
# 每个客户端连接最大的错误允许数量,如果达到了此限制.<br />
# 这个客户端将会被MySQL服务阻止直到执行了&#8221;FLUSH HOSTS&#8221; 或者服务重启<br />
# 非法的密码以及其他在链接时的错误会增加此值.<br />
# 查看 &#8220;Aborted_connects&#8221; 状态来获取全局计数器.<br />
max_connect_errors = 10</p>
<p># 所有线程所打开表的数量.<br />
# 增加此值就增加了mysqld所需要的文件描述符的数量<br />
# 这样你需要确认在[mysqld_safe]中 &#8220;open-files-limit&#8221; 变量设置打开文件数量允许至少4096<br />
table_cache = 2048</p>
<p># 允许外部文件级别的锁. 打开文件锁会对性能造成负面影响<br />
# 所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他约束!)<br />
# 或者你在文件层面上使用了其他一些软件依赖来锁定MyISAM表<br />
#external-locking</p>
<p># 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要)<br />
# 每个连接独立的大小.大小动态增加<br />
max_allowed_packet = 16M</p>
<p># 在一个事务中binlog为了记录SQL状态所持有的cache大小<br />
# 如果你经常使用大的,多声明的事务,你可以增加此值来获取更大的性能.<br />
# 所有从事务来的状态都将被缓冲在binlog缓冲中然后在提交后一次性写入到binlog中<br />
# 如果事务比此值大, 会使用磁盘上的临时文件来替代.<br />
# 此缓冲在每个连接的事务第一次更新状态时被创建<br />
binlog_cache_size = 1M</p>
<p># 独立的内存表所允许的最大容量.<br />
# 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源.<br />
max_heap_table_size = 64M</p>
<p># 排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序<br />
# 如果排序后的数据无法放入排序缓冲,<br />
# 一个用来替代的基于磁盘的合并分类会被使用<br />
# 查看 &#8220;Sort_merge_passes&#8221; 状态变量.<br />
# 在排序发生时由每个线程分配<br />
sort_buffer_size = 8M</p>
<p># 此缓冲被使用来优化全联合(full JOINs 不带索引的联合).<br />
# 类似的联合在极大多数情况下有非常糟糕的性能表现,<br />
# 但是将此值设大能够减轻性能影响.<br />
# 通过 &#8220;Select_full_join&#8221; 状态变量查看全联合的数量<br />
# 当全联合发生时,在每个线程中分配<br />
join_buffer_size = 8M</p>
<p># 我们在cache中保留多少线程用于重用<br />
# 当一个客户端断开连接后,如果cache中的线程还少于thread_cache_size,<br />
# 则客户端线程被放入cache中.<br />
# 这可以在你需要大量新连接的时候极大的减少线程创建的开销<br />
# (一般来说如果你有好的线程模型的话,这不会有明显的性能提升.)<br />
thread_cache_size = 8</p>
<p># 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.<br />
# 此值只对于支持 thread_concurrency() 函数的系统有意义( 例如Sun Solaris).<br />
# 你可可以尝试使用 [CPU数量]*(2..4) 来作为thread_concurrency的值<br />
thread_concurrency = 8</p>
<p># 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果.<br />
# 打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表.<br />
# 查看 &#8220;Qcache_lowmem_prunes&#8221; 状态变量来检查是否当前值对于你的负载来说是否足够高.<br />
# 注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同,<br />
# 查询缓冲也许引起性能下降而不是性能提升.<br />
query_cache_size = 64M</p>
<p># 只有小于此设定值的结果才会被缓冲<br />
# 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.<br />
query_cache_limit = 2M</p>
<p># 被全文检索索引的最小的字长.<br />
# 你也许希望减少它,如果你需要搜索更短字的时候.<br />
# 注意在你修改此值之后,<br />
# 你需要重建你的 FULLTEXT 索引<br />
ft_min_word_len = 4</p>
<p># 如果你的系统支持 memlock() 函数,你也许希望打开此选项用以让运行中的mysql在在内存高度紧张的时候,数据在内存中保持锁定并且防止可能被swapping out<br />
# 此选项对于性能有益<br />
#memlock</p>
<p># 当创建新表时作为默认使用的表类型,<br />
# 如果在创建表示没有特别执行表类型,将会使用此值<br />
default_table_type = MYISAM</p>
<p># 线程使用的堆大小. 此容量的内存在每次连接时被预留.<br />
# MySQL 本身常不会需要超过64K的内存<br />
# 如果你使用你自己的需要大量堆的UDF函数<br />
# 或者你的操作系统对于某些操作需要更多的堆,<br />
# 你也许需要将其设置的更高一点.<br />
thread_stack = 192K</p>
<p># 设定默认的事务隔离级别.可用的级别如下:<br />
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE<br />
transaction_isolation = REPEATABLE-READ</p>
<p># 内部(内存中)临时表的最大大小<br />
# 如果一个表增长到比此值更大,将会自动转换为基于磁盘的表.<br />
# 此限制是针对单个表的,而不是总和.<br />
tmp_table_size = 64M</p>
<p># 打开二进制日志功能.<br />
# 在复制(replication)配置中,作为MASTER主服务器必须打开此项<br />
# 如果你需要从你最后的备份中做基于时间点的恢复,你也同样需要二进制日志.<br />
log-bin=mysql-bin</p>
<p># 如果你在使用链式从服务器结构的复制模式 (A-&gt;B-&gt;C),<br />
# 你需要在服务器B上打开此项.<br />
# 此选项打开在从线程上重做过的更新的日志,<br />
# 并将其写入从服务器的二进制日志.<br />
#log_slave_updates</p>
<p># 打开全查询日志. 所有的由服务器接收到的查询 (甚至对于一个错误语法的查询)<br />
# 都会被记录下来. 这对于调试非常有用, 在生产环境中常常关闭此项.<br />
#log</p>
<p># 将警告打印输出到错误log文件.  如果你对于MySQL有任何问题<br />
# 你应该打开警告log并且仔细审查错误日志,查出可能的原因.<br />
#log_warnings</p>
<p># 记录慢速查询. 慢速查询是指消耗了比 &#8220;long_query_time&#8221; 定义的更多时间的查询.<br />
# 如果 log_long_format 被打开,那些没有使用索引的查询也会被记录.<br />
# 如果你经常增加新查询到已有的系统内的话. 一般来说这是一个好主意,<br />
log_slow_queries</p>
<p># 所有的使用了比这个时间(以秒为单位)更多的查询会被认为是慢速查询.<br />
# 不要在这里使用&#8221;1&#8243;, 否则会导致所有的查询,甚至非常快的查询页被记录下来(由于MySQL 目前时间的精确度只能达到秒的级别).<br />
long_query_time = 2</p>
<p># 在慢速日志中记录更多的信息.<br />
# 一般此项最好打开.<br />
# 打开此项会记录使得那些没有使用索引的查询也被作为到慢速查询附加到慢速日志里<br />
log_long_format</p>
<p># 此目录被MySQL用来保存临时文件.例如,<br />
# 它被用来处理基于磁盘的大型排序,和内部排序一样.<br />
# 以及简单的临时表.<br />
# 如果你不创建非常大的临时文件,将其放置到 swapfs/tmpfs 文件系统上也许比较好<br />
# 另一种选择是你也可以将其放置在独立的磁盘上.<br />
# 你可以使用&#8221;;&#8221;来放置多个路径<br />
# 他们会按照roud-robin方法被轮询使用.<br />
#tmpdir = /tmp</p>
<p># ***  复制有关的设置</p>
<p># 唯一的服务辨识号,数值位于 1 到 2^32-1之间.<br />
# 此值在master和slave上都需要设置.<br />
# 如果 &#8220;master-host&#8221; 没有被设置,则默认为1, 但是如果忽略此选项,MySQL不会作为master生效.<br />
server-id = 1</p>
<p># 复制的Slave (去掉master段的注释来使其生效)<br />
#<br />
# 为了配置此主机作为复制的slave服务器,你可以选择两种方法:<br />
#<br />
# 1) 使用 CHANGE MASTER TO 命令 (在我们的手册中有完整描述) -<br />
#    语法如下:<br />
#<br />
#    CHANGE MASTER TO MASTER_HOST=&lt;host&gt;, MASTER_PORT=&lt;port&gt;,<br />
#    MASTER_USER=&lt;user&gt;, MASTER_PASSWORD=&lt;password&gt; ;<br />
#<br />
#    你需要替换掉 &lt;host&gt;, &lt;user&gt;, &lt;password&gt; 等被尖括号包围的字段以及使用master的端口号替换&lt;port&gt; (默认3306).<br />
#<br />
#    例子:<br />
#<br />
#    CHANGE MASTER TO MASTER_HOST=&#8217;125.564.12.1&#8242;, MASTER_PORT=3306,<br />
#    MASTER_USER=&#8217;joe&#8217;, MASTER_PASSWORD=&#8217;secret&#8217;;<br />
#<br />
# 或者<br />
#<br />
# 2) 设置以下的变量. 不论如何, 在你选择这种方法的情况下, 然后第一次启动复制(甚至不成功的情况下,<br />
#     例如如果你输入错密码在master-password字段并且slave无法连接),<br />
#    slave会创建一个 master.info 文件,并且之后任何对于包含在此文件内的参数的变化都会被忽略<br />
#    并且由 master.info 文件内的内容覆盖, 除非你关闭slave服务, 删除 master.info 并且重启slave 服务.<br />
#    由于这个原因,你也许不想碰一下的配置(注释掉的) 并且使用 CHANGE MASTER TO (查看上面) 来代替<br />
#<br />
# 所需要的唯一id号位于 2 和 2^32 &#8211; 1之间<br />
# (并且和master不同)<br />
# 如果master-host被设置了.则默认值是2<br />
# 但是如果省略,则不会生效<br />
#server-id = 2<br />
#<br />
# 复制结构中的master &#8211; 必须<br />
#master-host = &lt;hostname&gt;<br />
#<br />
# 当连接到master上时slave所用来认证的用户名 &#8211; 必须<br />
#master-user = &lt;username&gt;<br />
#<br />
# 当连接到master上时slave所用来认证的密码 &#8211; 必须<br />
#master-password = &lt;password&gt;<br />
#<br />
# master监听的端口.<br />
# 可选 &#8211; 默认是3306<br />
#master-port = &lt;port&gt;</p>
<p># 使得slave只读.只有用户拥有SUPER权限和在上面的slave线程能够修改数据.<br />
# 你可以使用此项去保证没有应用程序会意外的修改slave而不是master上的数据<br />
#read_only</p>
<p>#*** MyISAM 相关选项</p>
<p># 关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块.<br />
# 不要将其设置大于你可用内存的30%,<br />
# 因为一部分内存同样被OS用来缓冲行数据<br />
# 甚至在你并不使用MyISAM 表的情况下, 你也需要仍旧设置起 8-64M 内存由于它同样会被内部临时磁盘表使用.<br />
key_buffer_size = 32M</p>
<p># 用来做MyISAM表全表扫描的缓冲大小.<br />
# 当全表扫描需要时,在对应线程中分配.<br />
read_buffer_size = 2M</p>
<p># 当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道.<br />
# 如果你增高此值,可以提高很多ORDER BY的性能.<br />
# 当需要时由每个线程分配<br />
read_rnd_buffer_size = 16M</p>
<p># MyISAM 使用特殊的类似树的cache来使得突发插入<br />
# (这些插入是,INSERT &#8230; SELECT, INSERT &#8230; VALUES (&#8230;), (&#8230;), &#8230;, 以及 LOAD DATA<br />
# INFILE) 更快. 此变量限制每个进程中缓冲树的字节数.<br />
# 设置为 0 会关闭此优化.<br />
# 为了最优化不要将此值设置大于 &#8220;key_buffer_size&#8221;.<br />
# 当突发插入被检测到时此缓冲将被分配.<br />
bulk_insert_buffer_size = 64M</p>
<p># 此缓冲当MySQL需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE 到一个空表中引起重建索引时被分配.<br />
# 这在每个线程中被分配.所以在设置大值时需要小心.<br />
myisam_sort_buffer_size = 128M</p>
<p># MySQL重建索引时所允许的最大临时文件的大小 (当 REPAIR, ALTER TABLE 或者 LOAD DATA INFILE).<br />
# 如果文件大小比此值更大,索引会通过键值缓冲创建(更慢)<br />
myisam_max_sort_file_size = 10G</p>
<p># 如果被用来更快的索引创建索引所使用临时文件大于制定的值,那就使用键值缓冲方法.<br />
# 这主要用来强制在大表中长字串键去使用慢速的键值缓冲方法来创建索引.<br />
myisam_max_extra_sort_file_size = 10G</p>
<p># 如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.<br />
# 这对于拥有多个CPU以及大量内存情况的用户,是一个很好的选择.<br />
myisam_repair_threads = 1</p>
<p># 自动检查和修复没有适当关闭的 MyISAM 表.<br />
myisam_recover</p>
<p># 默认关闭 Federated<br />
skip-federated</p>
<p># *** BDB 相关选项 ***</p>
<p># 如果你运行的MySQL服务有BDB支持但是你不准备使用的时候使用此选项. 这会节省内存并且可能加速一些事.<br />
skip-bdb</p>
<p># *** INNODB 相关选项 ***</p>
<p># 如果你的MySQL服务包含InnoDB支持但是并不打算使用的话,<br />
# 使用此选项会节省内存以及磁盘空间,并且加速某些部分<br />
#skip-innodb</p>
<p># 附加的内存池被InnoDB用来保存 metadata 信息<br />
# 如果InnoDB为此目的需要更多的内存,它会开始从OS这里申请内存.<br />
# 由于这个操作在大多数现代操作系统上已经足够快, 你一般不需要修改此值.<br />
# SHOW INNODB STATUS 命令会显示当先使用的数量.<br />
innodb_additional_mem_pool_size = 16M</p>
<p># InnoDB使用一个缓冲池来保存索引和原始数据, 不像 MyISAM.<br />
# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.<br />
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%<br />
# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.<br />
# 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,<br />
# 所以不要设置的太高.<br />
innodb_buffer_pool_size = 2G</p>
<p># InnoDB 将数据保存在一个或者多个数据文件中成为表空间.<br />
# 如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了.<br />
# 其他情况下.每个设备一个文件一般都是个好的选择.<br />
# 你也可以配置InnoDB来使用裸盘分区 &#8211; 请参考手册来获取更多相关内容<br />
innodb_data_file_path = ibdata1:10M:autoextend</p>
<p># 设置此选项如果你希望InnoDB表空间文件被保存在其他分区.<br />
# 默认保存在MySQL的datadir中.<br />
#innodb_data_home_dir = &lt;directory&gt;</p>
<p># 用来同步IO操作的IO线程的数量. This value is<br />
# 此值在Unix下被硬编码为4,但是在Windows磁盘I/O可能在一个大数值下表现的更好.<br />
innodb_file_io_threads = 4</p>
<p># 如果你发现InnoDB表空间损坏, 设置此值为一个非零值可能帮助你导出你的表.<br />
# 从1开始并且增加此值知道你能够成功的导出表.<br />
#innodb_force_recovery=1</p>
<p># 在InnoDb核心内的允许线程数量.<br />
# 最优值依赖于应用程序,硬件以及操作系统的调度方式.<br />
# 过高的值可能导致线程的互斥颠簸.<br />
innodb_thread_concurrency = 16</p>
<p># 如果设置为1 ,InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上,<br />
# 这提供了完整的ACID行为.<br />
# 如果你愿意对事务安全折衷, 并且你正在运行一个小的食物, 你可以设置此值到0或者2来减少由事务日志引起的磁盘I/O<br />
# 0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘.<br />
# 2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.<br />
innodb_flush_log_at_trx_commit = 1</p>
<p># 加速InnoDB的关闭. 这会阻止InnoDB在关闭时做全清除以及插入缓冲合并.<br />
# 这可能极大增加关机时间, 但是取而代之的是InnoDB可能在下次启动时做这些操作.<br />
#innodb_fast_shutdown</p>
<p># 用来缓冲日志数据的缓冲区的大小.<br />
# 当此值快满时, InnoDB将必须刷新数据到磁盘上.<br />
# 由于基本上每秒都会刷新一次,所以没有必要将此值设置的太大(甚至对于长事务而言)</p>
<p>innodb_log_buffer_size = 8M</p>
<p># 在日志组中每个日志文件的大小.<br />
# 你应该设置日志文件总合大小到你缓冲池大小的25%~100%<br />
# 来避免在日志文件覆写上不必要的缓冲池刷新行为.<br />
# 不论如何, 请注意一个大的日志文件大小会增加恢复进程所需要的时间.<br />
innodb_log_file_size = 256M</p>
<p># 在日志组中的文件总数.<br />
# 通常来说2~3是比较好的.<br />
innodb_log_files_in_group = 3</p>
<p># InnoDB的日志文件所在位置. 默认是MySQL的datadir.<br />
# 你可以将其指定到一个独立的硬盘上或者一个RAID1卷上来提高其性能<br />
#innodb_log_group_home_dir</p>
<p># 在InnoDB缓冲池中最大允许的脏页面的比例.<br />
# 如果达到限额, InnoDB会开始刷新他们防止他们妨碍到干净数据页面.<br />
# 这是一个软限制,不被保证绝对执行.<br />
innodb_max_dirty_pages_pct = 90</p>
<p># InnoDB用来刷新日志的方法.<br />
# 表空间总是使用双重写入刷新方法<br />
# 默认值是 &#8220;fdatasync&#8221;, 另一个是 &#8220;O_DSYNC&#8221;.<br />
#innodb_flush_method=O_DSYNC</p>
<p># 在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久.<br />
# InnoDB在其拥有的锁表中自动检测事务死锁并且回滚事务.<br />
# 如果你使用 LOCK TABLES 指令, 或者在同样事务中使用除了InnoDB以外的其他事务安全的存储引擎<br />
# 那么一个死锁可能发生而InnoDB无法注意到.<br />
# 这种情况下这个timeout值对于解决这种问题就非常有帮助.<br />
innodb_lock_wait_timeout = 120</p>
<p>[mysqldump]<br />
# 不要在将内存中的整个结果写入磁盘之前缓存. 在导出非常巨大的表时需要此项<br />
quick</p>
<p>max_allowed_packet = 16M</p>
<p>[mysql]<br />
no-auto-rehash</p>
<p># 仅仅允许使用键值的 UPDATEs 和 DELETEs .<br />
#safe-updates</p>
<p>[isamchk]<br />
key_buffer = 512M<br />
sort_buffer_size = 512M<br />
read_buffer = 8M<br />
write_buffer = 8M</p>
<p>[myisamchk]<br />
key_buffer = 512M<br />
sort_buffer_size = 512M<br />
read_buffer = 8M<br />
write_buffer = 8M</p>
<p>[mysqlhotcopy]<br />
interactive-timeout</p>
<p>[mysqld_safe]<br />
# 增加每个进程的可打开文件数量.<br />
# 警告: 确认你已经将全系统限制设定的足够高!<br />
# 打开大量表需要将此值设高 j<br />
open-files-limit = 8192</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/489.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>由诺基亚的404页面想到的</title>
		<link>http://www.tisswb.cn/archives/487.html</link>
		<comments>http://www.tisswb.cn/archives/487.html#comments</comments>
		<pubDate>Fri, 10 Apr 2009 05:31:37 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[东拉西扯]]></category>
		<category><![CDATA[用户体验]]></category>
		<category><![CDATA[网站开发]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=487</guid>
		<description><![CDATA[对于网站来说，往往注重设计与内容的丰富，很少有网站会关注一些反方向的重点，比如错误提示404页面，这个页面说大不大说小不小，访问的频率嘛，也不低。往往用户在浏览网页时，一旦出现了&#8221;出错&#8221;或者&#8221;抱歉&#8221;页面之类404页面的时候，用户会对网站的信任度迅速降低，如何有效的留住用户成为404页面的使命，但一般网站往往会忽视404页面所应体现的作用。
一次在诺基亚网站点击下载手机的词典文件链接时，诺基亚网站出现了错误提示：一个主题为&#8221;抱歉&#8221;的404页面。
咱们看看诺基亚的具体做法：404页面中随机贴出一张俏皮的图片（共三张）再加上几个关键的&#8221;安慰词&#8221;，将用户的紧张感瞬间打消，并立刻在下方给出了解决办法。
此页面的价值：
1. 告诉用户所处的环境：出错。
2. 告诉用户出错原因。
3. 打消用户紧张感。
4. 告诉用户该如何解决问题，给出几条途径。
<span class="readmore"><a href="http://www.tisswb.cn/archives/487.html" title="由诺基亚的404页面想到的" target="_blank">阅读全文——共418字</a></span>]]></description>
			<content:encoded><![CDATA[<p>对于网站来说，往往注重设计与内容的丰富，很少有网站会关注一些反方向的重点，比如错误提示404页面，这个页面说大不大说小不小，访问的频率嘛，也不低。往往用户在浏览网页时，一旦出现了&#8221;出错&#8221;或者&#8221;抱歉&#8221;页面之类404页面的时候，用户会对网站的信任度迅速降低，如何有效的留住用户成为404页面的使命，但一般网站往往会忽视404页面所应体现的作用。</p>
<p>一次在诺基亚网站点击下载手机的词典文件链接时，诺基亚网站出现了错误提示：一个主题为&#8221;抱歉&#8221;的404页面。</p>
<p>咱们看看诺基亚的具体做法：404页面中随机贴出一张俏皮的图片（共三张）再加上几个关键的&#8221;安慰词&#8221;，将用户的紧张感瞬间打消，并立刻在下方给出了解决办法。</p>
<p>此页面的价值：</p>
<p>1. 告诉用户所处的环境：出错。<br />
2. 告诉用户出错原因。<br />
3. 打消用户紧张感。<br />
4. 告诉用户该如何解决问题，给出几条途径。<br />
5. 留住用户，增加用户黏性。</p>
<p>尽管用户不一定能得到满意结果，但是，这个404错误页面的使命已经完成，而且完成得很好。</p>
<p align="center"><img class="alignleft" src="http://image-001.yo2cdn.com/wp-content/uploads/228/22820/2008/05/07d15eee778c99e9b3fb955e.jpg" alt="07d15eee778c99e9b3fb955e.jpg" width="530" height="274" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/487.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网络商城盈利方式的探讨</title>
		<link>http://www.tisswb.cn/archives/484.html</link>
		<comments>http://www.tisswb.cn/archives/484.html#comments</comments>
		<pubDate>Fri, 10 Apr 2009 04:04:21 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[东拉西扯]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[网站策划]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=484</guid>
		<description><![CDATA[网上商城现在已经没有门槛了，现在遍网都是商城，可是商城这么多，盈利模式是不是也这么多呢？其实商城多，模式无非广告、产品推广、精准投放、服务收费等几种模式。商城要根据网站的特点来选择盈利方式，不能照搬照仿。
第一种 广告模式
广告是各个网站的最常见的盈利方式，任何时候广告都是一种不可抛弃的盈利方式，广告可以分为站内和站外两种模式。
第二种 产品模式
既然有了商城了产品自然是要有的，既然可以邀请别人来开店挣钱，难道站长就不能在上面开店赚钱吗？寻找热销产品添加在网站商城中，既增加了网站的产品数量，又增加了网站的成交量，还增加了自己的收入三全其美；还有一种就是收取推广费，你帮商家介绍产品，与商家谈好，美推销一件产品你收多少钱的佣金，这也是一种方式。第二种方式在国外的一些C2C网站上很流行。
第三种 精准模式
在你的网站上开店的有的是个人有的则是商家或者厂家，厂家需要的就是一种推广，你可以依照这个商家的特点与他们谈推广，为他们制定合适的推广方法，并收取 一定的服务费。精准模式的意思就是讲，这样的盈利模式需要有针对性的客户，有切实需求的客户，模式可以是产品推广，也可以是为商家制作专业网站，也可以是 为大的商家客户讲网络营销课程，其次还有很多，这就是精准营销的特点。
<span class="readmore"><a href="http://www.tisswb.cn/archives/484.html" title="网络商城盈利方式的探讨" target="_blank">阅读全文——共646字</a></span>]]></description>
			<content:encoded><![CDATA[<p>网上商城现在已经没有门槛了，现在遍网都是商城，可是商城这么多，盈利模式是不是也这么多呢？其实商城多，模式无非广告、产品推广、精准投放、服务收费等几种模式。商城要根据网站的特点来选择盈利方式，不能照搬照仿。</p>
<p><strong>第一种 广告模式</strong></p>
<p>广告是各个网站的最常见的盈利方式，任何时候广告都是一种不可抛弃的盈利方式，广告可以分为站内和站外两种模式。</p>
<p><strong>第二种 产品模式</strong></p>
<p>既然有了商城了产品自然是要有的，既然可以邀请别人来开店挣钱，难道站长就不能在上面开店赚钱吗？寻找热销产品添加在网站商城中，既增加了网站的产品数量，又增加了网站的成交量，还增加了自己的收入三全其美；还有一种就是收取<span class="t_tag" onclick="tagshow(event)">推广</span>费，你帮商家介绍产品，与商家谈好，美推销一件产品你收多少钱的佣金，这也是一种方式。第二种方式在国外的一些C2C网站上很流行。</p>
<p><strong>第三种 精准模式</strong></p>
<p>在你的网站上开店的有的是个人有的则是商家或者厂家，厂家需要的就是一种推广，你可以依照这个商家的特点与他们谈推广，为他们制定合适的推广方法，并收取 一定的服务费。精准模式的意思就是讲，这样的盈利模式需要有针对性的客户，有切实需求的客户，模式可以是产品推广，也可以是为商家制作专业网站，也可以是 为大的商家客户讲网络营销课程，其次还有很多，这就是精准营销的特点。</p>
<p><strong>第四种 服务模式</strong></p>
<p>针对商城中的客户提供统一和单独的服务项目，如为客户知道网店模板，为客户编辑管理网店，为客户代管理网店这都都属于服务类性质，当然还有很多其他的服务方式，比如秘书管理等等，</p>
<p>考虑自己的营销模式，研究出自己的盈利方式，是草根站长做站的动力。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.cn/archives/484.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
