我的版本为Centos Release 5.3 (Final)
使用这个命令可以知道你的Linux版本
cat /etc/redhat-release
首先要安装libevent库。
cd /usr/local/src
curl -O http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz
tar xzvf libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable
./configure --prefix=/usr/local
make
make install
接下来就是安装memcached
Hosting in Chinese
cd /usr/local/src
curl -O http://www.danga.com/memcached/dist/memcached-1.2.8.tar.gz
tar xzvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
LDFLAGS='-Wl,--rpath /usr/local/lib' ./configure --prefix=/usr/local
make
make install
安装完毕后,用下面这个命令以用户root来运行memcache
memcached -u root -d -m 64 -l 192.168.0.101 -p 11211
root 为所执行的用户
64 为缓存大小64M
192.168.0.101 为所在的服务器IP地址
11211 是所在端口
要关闭memcache
pkill memcached
接下来是安装php-pecl-memcache
一个命令就可以。
yum install php-pecl-memcache
还是需要php扩展,就用下面这个命令
pecl install memcache
接下来重启apache,用phpinfo()查看,应该可以看到memcache的部分,如果没有的话,检查这里的设置:
/etc/php.ini加上了 extension=memcache.so
当然也要确认memcache.so是否存在,是否在/usr/lib/php/modules/下,如果不是,那么找到它,并用完整路径表示。
查看memcache的运行情况,可以用memcache.php来查看。
当让也要有web 程序支持才有用,比如我用的phpbb 3就可以使用memcache,具体方法参考这里
这里
看来命中率还是很高的。
使用这个命令可以知道你的Linux版本
cat /etc/redhat-release
首先要安装libevent库。
cd /usr/local/src
curl -O http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz
tar xzvf libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable
./configure --prefix=/usr/local
make
make install
接下来就是安装memcached
Hosting in Chinese
cd /usr/local/src
curl -O http://www.danga.com/memcached/dist/memcached-1.2.8.tar.gz
tar xzvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
LDFLAGS='-Wl,--rpath /usr/local/lib' ./configure --prefix=/usr/local
make
make install
安装完毕后,用下面这个命令以用户root来运行memcache
memcached -u root -d -m 64 -l 192.168.0.101 -p 11211
root 为所执行的用户
64 为缓存大小64M
192.168.0.101 为所在的服务器IP地址
11211 是所在端口
要关闭memcache
pkill memcached
接下来是安装php-pecl-memcache
一个命令就可以。
yum install php-pecl-memcache
还是需要php扩展,就用下面这个命令
pecl install memcache
接下来重启apache,用phpinfo()查看,应该可以看到memcache的部分,如果没有的话,检查这里的设置:
/etc/php.ini加上了 extension=memcache.so
当然也要确认memcache.so是否存在,是否在/usr/lib/php/modules/下,如果不是,那么找到它,并用完整路径表示。
查看memcache的运行情况,可以用memcache.php来查看。
当让也要有web 程序支持才有用,比如我用的phpbb 3就可以使用memcache,具体方法参考这里
这里
看来命中率还是很高的。
MySQL5.1 引入表分区功能,使得MySQL在处理大表的能力上得到增强。使用过表分区功能的朋友应该知道,MySQL5.1中使用表分区的时候,对字段是有要求的,那就是必须是整数型,或者可以将其他类型的字段通过函数转换成整数型才可以。
/* with MySQL 5.1 ivan @ MySQL实验室(mysqlab.net/blog/) */
CREATE TABLE mysqlab_net
(
ivan DATE
)
PARTITION BY RANGE (TO_DAYS(ivan))
(
PARTITION p01 VALUES LESS THAN (TO_DAYS(‘2007-08-08′)),
PARTITION p02 VALUES LESS THAN (TO_DAYS(‘2008-08-08′)),
PARTITION p03 VALUES LESS THAN (TO_DAYS(‘2009-08-08′)),
PARTITION p04 VALUES LESS THAN (MAXVALUE));
SHOW CREATE TABLE mysqlab_net\G
*************************** 1. row ***************************
TABLE: mysqlab_net
CREATE TABLE: CREATE TABLE `mysqlab_net` (
`ivan` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (TO_DAYS(ivan))
(PARTITION p01 VALUES LESS THAN (733261) ENGINE = InnoDB,
PARTITION p02 VALUES LESS THAN (733627) ENGINE = InnoDB,
PARTITION p03 VALUES LESS THAN (733992) ENGINE = InnoDB,
PARTITION p04 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
怎么样?读取的时候谁知道那个数字是多少?(不过也可以通过自定义函数实现还原)
MySQL5.5中加入了columns关键字,使得可读性好多了。看例子
/* with MySQL 5.5 ivan @ MySQL实验室(mysqlab.net/blog/) */
CREATE TABLE `mysqlab.net`
(
ivan DATE
)
PARTITION BY RANGE COLUMNS(ivan)
(
PARTITION p01 VALUES LESS THAN (‘2007-08-08′),
PARTITION p02 VALUES LESS THAN (‘2008-08-08′),
PARTITION p03 VALUES LESS THAN (‘2009-08-08′),
PARTITION p04 VALUES LESS THAN (MAXVALUE);
SHOW CREATE TABLE `mysqlab.net`\G
*************************** 1. row ***************************
TABLE: mysqlab.net
CREATE TABLE: CREATE TABLE `mysqlab.net` (
`ivan` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50500 PARTITION BY RANGE COLUMNS(ivan)
(PARTITION p01 VALUES LESS THAN (’2007-08-08′) ENGINE = InnoDB,
PARTITION p02 VALUES LESS THAN (’2008-08-08′) ENGINE = InnoDB,
PARTITION p03 VALUES LESS THAN (’2009-08-08′) ENGINE = InnoDB,
PARTITION p04 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) */
另外MySQL5.5表分区(partition) columns关键字还支持多字段,比如 partition by range columns(a,b);将支持清空指定的分区TRUNCATE PARTITION。MySQL5.5有望在明年(2010)夏季GA。另外MySQL5.5支持的半同步功能在高可用上的使用,让人非常期待!
/* with MySQL 5.1 ivan @ MySQL实验室(mysqlab.net/blog/) */
CREATE TABLE mysqlab_net
(
ivan DATE
)
PARTITION BY RANGE (TO_DAYS(ivan))
(
PARTITION p01 VALUES LESS THAN (TO_DAYS(‘2007-08-08′)),
PARTITION p02 VALUES LESS THAN (TO_DAYS(‘2008-08-08′)),
PARTITION p03 VALUES LESS THAN (TO_DAYS(‘2009-08-08′)),
PARTITION p04 VALUES LESS THAN (MAXVALUE));
SHOW CREATE TABLE mysqlab_net\G
*************************** 1. row ***************************
TABLE: mysqlab_net
CREATE TABLE: CREATE TABLE `mysqlab_net` (
`ivan` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (TO_DAYS(ivan))
(PARTITION p01 VALUES LESS THAN (733261) ENGINE = InnoDB,
PARTITION p02 VALUES LESS THAN (733627) ENGINE = InnoDB,
PARTITION p03 VALUES LESS THAN (733992) ENGINE = InnoDB,
PARTITION p04 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
怎么样?读取的时候谁知道那个数字是多少?(不过也可以通过自定义函数实现还原)
MySQL5.5中加入了columns关键字,使得可读性好多了。看例子
/* with MySQL 5.5 ivan @ MySQL实验室(mysqlab.net/blog/) */
CREATE TABLE `mysqlab.net`
(
ivan DATE
)
PARTITION BY RANGE COLUMNS(ivan)
(
PARTITION p01 VALUES LESS THAN (‘2007-08-08′),
PARTITION p02 VALUES LESS THAN (‘2008-08-08′),
PARTITION p03 VALUES LESS THAN (‘2009-08-08′),
PARTITION p04 VALUES LESS THAN (MAXVALUE);
SHOW CREATE TABLE `mysqlab.net`\G
*************************** 1. row ***************************
TABLE: mysqlab.net
CREATE TABLE: CREATE TABLE `mysqlab.net` (
`ivan` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50500 PARTITION BY RANGE COLUMNS(ivan)
(PARTITION p01 VALUES LESS THAN (’2007-08-08′) ENGINE = InnoDB,
PARTITION p02 VALUES LESS THAN (’2008-08-08′) ENGINE = InnoDB,
PARTITION p03 VALUES LESS THAN (’2009-08-08′) ENGINE = InnoDB,
PARTITION p04 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) */
另外MySQL5.5表分区(partition) columns关键字还支持多字段,比如 partition by range columns(a,b);将支持清空指定的分区TRUNCATE PARTITION。MySQL5.5有望在明年(2010)夏季GA。另外MySQL5.5支持的半同步功能在高可用上的使用,让人非常期待!
1946月7月11号“七君子”之一的民盟中央执行委员李公朴被暗杀。四天后在“李公朴殉难经过报告会” 上,闻一多拍案而起,即兴演讲说:
“这几天,大家晓得,在昆明出现了历史上最卑劣最无耻的事情!李先生究竟犯了什么罪,竟遭此毒手?他只不过用笔写写文章,用嘴说说话,而他所写的,所说的,都无非是一个没有失掉良心的中国人的话!大家都有一枝笔,有一张嘴,有什么理由拿出来讲啊!有事实拿出来说啊!为什么要打要杀,而且又不敢光明正大的来打来杀,而偷偷摸摸的来暗杀!这成什么话?
今天,这里有没有特务?你站出来!是好汉的站出来!你出来讲!凭什么要杀死李先生?杀死了人,又不敢承认,还要诬蔑人,说什么“桃色事件”,说什么共产党杀共产党,无耻啊!无耻啊!这是某集团的无耻,恰是李先生的光荣!李先生在昆明被暗杀是李先生留给昆明的光荣!也是昆明人的光荣!
去年“一二·一”昆明青年学生为了反对内战,遭受屠杀,那算是青年的一代献出了他们最宝贵的生命!现在李先生为了争取民主和平而遭受了反动派的暗杀,我们骄傲一点说,这算是像我这样大年纪的一代,我们的老战友,献出了最宝贵的生命!这两桩事发生在昆明,这算是昆明无限的光荣!
反动派暗杀李先生的消息传出以后,大家听了都悲愤痛恨。我心里想,这些无耻的东西,不知他们是怎么想法,他们的心理是什么状态,他们的心是怎样长的!其实很简单,他们这样疯狂的来制造恐怖,正是他们自己在慌啊!在害怕啊!所以他们制造恐怖,其实是他们自己在恐怖啊!特务们,你们想想,你们还有几天?你们完了,快完了!你们以为打伤几个,杀死几个,就可以了事,就可以把人民吓倒了吗?其实广大的人民是打不尽的,杀不完的!要是这样可以的话,世界上早没有人了。
你们杀死一个李公朴,会有千百万个李公朴站起来!你们将失去千百万的人民!你们看着我们人少,没有力量?告诉你们,我们的力量大得很,强得很!看今天来的这些人,都是我们的人,都是我们的力量!此外还有广大的市民!我们有这个信心:人民的力量是要胜利的,真理是永远存在的。历史上没有一个反人民的势力不被人民毁灭的!希特勒,墨索里尼,不都在人民面前倒下去了吗?翻开历史看看,你们还站得住几天!你们完了,快完了!我们的光明就要出现了。我们看,光明就在我们眼前,而现在正是黎明之前那个最黑暗的时候。我们有力量打破这个黑暗,争到光明!我们的光明,就是反动派的末日!
李先生的血不会白流的!李先生赔上了这条性命,我们要换来一个代价。“一二·一”四烈士倒下了,年青的战士们的血换来了政治协商会议的召开;现在李先生倒下了,他的血要换取政协会议的重开!我们有这个信心!
“一二·一”是昆明的光荣,是云南人民的光荣。云南有光荣的历史,远的如护国,这不用说了,近的如“一二·一”,都是属于云南人民的。我们要发扬云南光荣的历史!
反动派挑拨离间,卑鄙无耻,你们看见联大走了,学生放暑假了,便以为我们没有力量了吗?特务们!你们错了!你们看见今天到会的一千多青年,又握起手来了,我们昆明的青年决不会让你们这样蛮横下去的!
反动派,你看见一个倒下去,可也看得见千百个继起的!
正义是杀不完的,因为真理永远存在!历史赋予昆明的任务是争取民主和平,我们昆明的青年必须完成这任务!
我们不怕死,我们有牺牲的精神!我们随时像李先生一样,前脚跨出大门,后脚就不准备再跨进大门! ”
—-以此纪念因言论而被迫害的人们。
“这几天,大家晓得,在昆明出现了历史上最卑劣最无耻的事情!李先生究竟犯了什么罪,竟遭此毒手?他只不过用笔写写文章,用嘴说说话,而他所写的,所说的,都无非是一个没有失掉良心的中国人的话!大家都有一枝笔,有一张嘴,有什么理由拿出来讲啊!有事实拿出来说啊!为什么要打要杀,而且又不敢光明正大的来打来杀,而偷偷摸摸的来暗杀!这成什么话?
今天,这里有没有特务?你站出来!是好汉的站出来!你出来讲!凭什么要杀死李先生?杀死了人,又不敢承认,还要诬蔑人,说什么“桃色事件”,说什么共产党杀共产党,无耻啊!无耻啊!这是某集团的无耻,恰是李先生的光荣!李先生在昆明被暗杀是李先生留给昆明的光荣!也是昆明人的光荣!
去年“一二·一”昆明青年学生为了反对内战,遭受屠杀,那算是青年的一代献出了他们最宝贵的生命!现在李先生为了争取民主和平而遭受了反动派的暗杀,我们骄傲一点说,这算是像我这样大年纪的一代,我们的老战友,献出了最宝贵的生命!这两桩事发生在昆明,这算是昆明无限的光荣!
反动派暗杀李先生的消息传出以后,大家听了都悲愤痛恨。我心里想,这些无耻的东西,不知他们是怎么想法,他们的心理是什么状态,他们的心是怎样长的!其实很简单,他们这样疯狂的来制造恐怖,正是他们自己在慌啊!在害怕啊!所以他们制造恐怖,其实是他们自己在恐怖啊!特务们,你们想想,你们还有几天?你们完了,快完了!你们以为打伤几个,杀死几个,就可以了事,就可以把人民吓倒了吗?其实广大的人民是打不尽的,杀不完的!要是这样可以的话,世界上早没有人了。
你们杀死一个李公朴,会有千百万个李公朴站起来!你们将失去千百万的人民!你们看着我们人少,没有力量?告诉你们,我们的力量大得很,强得很!看今天来的这些人,都是我们的人,都是我们的力量!此外还有广大的市民!我们有这个信心:人民的力量是要胜利的,真理是永远存在的。历史上没有一个反人民的势力不被人民毁灭的!希特勒,墨索里尼,不都在人民面前倒下去了吗?翻开历史看看,你们还站得住几天!你们完了,快完了!我们的光明就要出现了。我们看,光明就在我们眼前,而现在正是黎明之前那个最黑暗的时候。我们有力量打破这个黑暗,争到光明!我们的光明,就是反动派的末日!
李先生的血不会白流的!李先生赔上了这条性命,我们要换来一个代价。“一二·一”四烈士倒下了,年青的战士们的血换来了政治协商会议的召开;现在李先生倒下了,他的血要换取政协会议的重开!我们有这个信心!
“一二·一”是昆明的光荣,是云南人民的光荣。云南有光荣的历史,远的如护国,这不用说了,近的如“一二·一”,都是属于云南人民的。我们要发扬云南光荣的历史!
反动派挑拨离间,卑鄙无耻,你们看见联大走了,学生放暑假了,便以为我们没有力量了吗?特务们!你们错了!你们看见今天到会的一千多青年,又握起手来了,我们昆明的青年决不会让你们这样蛮横下去的!
反动派,你看见一个倒下去,可也看得见千百个继起的!
正义是杀不完的,因为真理永远存在!历史赋予昆明的任务是争取民主和平,我们昆明的青年必须完成这任务!
我们不怕死,我们有牺牲的精神!我们随时像李先生一样,前脚跨出大门,后脚就不准备再跨进大门! ”
—-以此纪念因言论而被迫害的人们。
安装一个中文版的winscp软件,连接到Linux or Centos5.4上,在配置文件上面点击右键,选择"编辑"即可修改配置文件了
AWStats是在一个很流行的基于Perl的WEB日志分析工具。本文讲述CentOS5下nginx怎么安装配置awstats。
下载和安装
由于CentOS5没有自带awstats,所以我们必须手工下载awstats的RPM包,从awstats的主页上,找到下载地址 http://dfn.dl.sourceforge.net/sourceforge/awstats/awstats-6.7-1.noarch.rpm 并下载到CentOS5的任意一个目录下。执行如下命令安装:
rpm -ivh awstats-6.7-1.noarch.rpm
awstats被安装在了 /usr/local/awstats/ 目录下
配置nginx支持Perl CGI
这个哥们就没有写了。。。郁闷。。。
服务器监控很爽,我们还nginx日志也是用这个做的,nginx日志监控logstsh+es +laravel,非常的强大.
下载和安装
由于CentOS5没有自带awstats,所以我们必须手工下载awstats的RPM包,从awstats的主页上,找到下载地址 http://dfn.dl.sourceforge.net/sourceforge/awstats/awstats-6.7-1.noarch.rpm 并下载到CentOS5的任意一个目录下。执行如下命令安装:
rpm -ivh awstats-6.7-1.noarch.rpm
awstats被安装在了 /usr/local/awstats/ 目录下
配置nginx支持Perl CGI
这个哥们就没有写了。。。郁闷。。。
服务器监控很爽,我们还nginx日志也是用这个做的,nginx日志监控logstsh+es +laravel,非常的强大.
目前互联网络上到处都是扫描器,探测蜘蛛的情况之下,一个新安装Windows XP还没有进行打补丁动作的个人电脑的平均存活时间仅仅只有3。在3之后,电脑就会被网络上的恶意程序所感染。而连上网通过 WindowsUpdate更新补丁这段时间当然也算在内。不过还好,如果用户不是直接连接互联网,而是通过路由器或者防火墙来上网的话,存活时间将会大大加长。看到这个新闻确实有同感,同时也加强了安全意识,服务器一定要安全,客户才能满意!
在VPS上安装完MySQL之后,缺省的用户只有root@localhost,新添加MySQL用户最简单的方法是: 在phpmyadmin里面执行如下语句(语句最后要加分;号):
grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD'
当然在SSH里面运行
mysql -uroot -p
之后也能够输入上面的sql语句,效果一样。 解释如下: 这将添加新用户,用户名称是USERNAME,密码是PASSWORD,这个用户在DBNAME这个数据库里面有修改,读取等权限。
或者:
大家觉得这个,可能不方便,就用第一个grant了,直接修改得了!
grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD'
flush privileges
当然在SSH里面运行
mysql -uroot -p
之后也能够输入上面的sql语句,效果一样。 解释如下: 这将添加新用户,用户名称是USERNAME,密码是PASSWORD,这个用户在DBNAME这个数据库里面有修改,读取等权限。
GRANT USAGE ON *.* TO wiki@localhost IDENTIFIED BY 'wiki';
flush privileges
//一定要注意需要flush,那个用户才能登陆的喔。或者:
mysqladmin -u root password YOUR_PASSWORD
mysqladmin -u用户名 -p旧密码 password 新密码 修改密码
大家觉得这个,可能不方便,就用第一个grant了,直接修改得了!
CentOS 下的socks5 安装配置
socks5代理的功能和作用这里我就不罗嗦了,下面是在CentOS5 VPS下的安装配置的一些笔记 --------------------------------------- 1.配置编译环境
yum -y install gcc automake make
2.安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3.下载,编译安装ss5(socks5)
wget http://jaist.dl.sourceforge.net/sourceforge/ss5/ss5-3.6.1-1.tar.gz
tar zxvf ss5-3.6.1-1.tar.gz
cd ss5-3.6.1
./configure
make
make install
#启动ss5服务
/etc/init.d/ss5 start
ss5 默认使用1080端口,并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -
为
# SHost SPort Authentication
#
auth 0.0.0.0/0 - u
在 /etc/opt/ss5/ss5.passwd 中添加 用户名和密码 如:
test test
使用用户验证,重启ss5服务
/etc/init.d/ss5 restart
socks5代理的功能和作用这里我就不罗嗦了,下面是在CentOS5 VPS下的安装配置的一些笔记 --------------------------------------- 1.配置编译环境
yum -y install gcc automake make
2.安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3.下载,编译安装ss5(socks5)
wget http://jaist.dl.sourceforge.net/sourceforge/ss5/ss5-3.6.1-1.tar.gz
tar zxvf ss5-3.6.1-1.tar.gz
cd ss5-3.6.1
./configure
make
make install
#启动ss5服务
/etc/init.d/ss5 start
ss5 默认使用1080端口,并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -
为
# SHost SPort Authentication
#
auth 0.0.0.0/0 - u
在 /etc/opt/ss5/ss5.passwd 中添加 用户名和密码 如:
test test
使用用户验证,重启ss5服务
/etc/init.d/ss5 restart
修改mysql的编码为utf8
MySQL的中文编码问题最简单的解决方案是:修改mysql的配置文件/etc/mysql/my.cnf (在CentOS下是/etc/my.cnf),在[mysqld] 和 [client]段都加入如下指令:
default-character-set=utf8
注意:如果没有[client]段,就手工加入[client]段。然后重新启动MySQL即可。验证一下是否生效:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>
这样新建立的数据库缺省就是UTF8编码了。
MySQL的中文编码问题最简单的解决方案是:修改mysql的配置文件/etc/mysql/my.cnf (在CentOS下是/etc/my.cnf),在[mysqld] 和 [client]段都加入如下指令:
default-character-set=utf8
注意:如果没有[client]段,就手工加入[client]段。然后重新启动MySQL即可。验证一下是否生效:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>
这样新建立的数据库缺省就是UTF8编码了。
安装Windows Server 2003操作系统的VPS在console登录默认要先按下Ctrl+Alt+Delete组合键然后才弹出登录对话框,要取消这个限制的方法是:点击 “开始-->运行” 在弹出的DOS窗口中输入gpedit.msc,在新窗口中选择:计算机配置-->Windows设置-->安全设置-->本地策略,这时在本地策略下面可见到有“安全选项”,点击“安全选项”在右侧的框内找到“交互式登录:不要按CTRL+ALT+DEL”,启用这个选项即可。
通过IP反查域名
在下面这个地方可以通过IP反查域名,结果还是比较准确的 http://www.domaintools.com/reverse-ip/
在下面这个地方可以通过IP反查域名,结果还是比较准确的 http://www.domaintools.com/reverse-ip/
http://rashost.com/blog/spawn-fcgi-release-from-lighttpd
spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,功能和php-fpm类似。
最初spawn-fcgi是lighttpd的一部分,2009年2月份,lighttpd的开发人员把spawn-fcgi单独拿出来成立了一个项目,详见 http://blog.lighttpd.net/articles/2009/02/18/prerelease-of-spawn-fcgi-1-... 。spawn-fcgi的项目地址是 http://redmine.lighttpd.net/projects/spawn-fcgi/wiki ,目前的最新版本是1.6.2
spawn-fcgi是个新项目,很多Linux发行版都没有收录,我们瑞豪开源针对VPS常用的Linux发行版编译了spawn-fcgi,放在http://rashost.com/download 供客户下载安装
MySQL的Replication功能可以自动同步主MySQL服务器的更新到若干个辅MySQL服务器上,这个功能能把MySQL的数据实时分布到多台机器上,提交了MySQL的数据安全性。
配置MySQL Replication并不是个简单的工作,如果配置的不好,回导致MySQL的同步性能不好,或者不能同步,甚至导致主辅服务器的数据不一致。
下面主服务器为master,辅助服务器为slave
master的配置
第一步保证master能单机正常工作,略。
在master上创建一个MySQL用户,这个用户专门用于Replication:
grant replication slave on *.* to 'repluser'@'%' identified by 'mypassword';
编辑MySQL的配置文件,允许log-bin,并且给master分配一个ID:
[mysqld]
skip-name-resolve
server-id=10
log-bin=mysql-bin
sync_binlog=1
innodb_flush_logs_at_trx_commit=1
innodb_support_xa=1
slave的配置
配置ID等
[mysqld]
server-id=20
log_bin = mysql-bin
relay_log = mysql-relay-bin
skip_slave_start
log_slave_updates = 1
read_only
skip-name-resolve
同步数据
在master上把数据导出,并记录当前数据位置。用一个用户连接mysql并运行:
flush tables with read lock;
show master status;
然后该连接不要退出,否则read lock就失效了,记录下当前日志的文件名和位置。在另外一个窗口运行如下命令导出数据:
mysqldump -uroot -p --all-databases |gzip -c > db.sql.gz
然后把数据文件拷贝到slave上,解压缩:
gunzip db.sql.gz
进MySQL导入:
source db.sql;
这时候slave上的数据已经同步到master的导出时刻的数据了,下面就启动自动同步的线程就可以了:
change master to master_host='1.1.1.1', master_user='repluser', aster_password='mypassword',master_log_file='mysql-bin.000006',master_log_pos=502185;
show slave status;
start slave;
show slave status;
从上面的show slave status命令的输出可以看到,IO线程和SQL线程都开始工作了。过几分钟后比较一下slave和master上的日志文件及其位置,应该就是一样的了。
注意事项
* 应用程序不要使用数据库的root用户,一定要创建普通用户供应用程序使用,因为root用户可以在slave上进行写操作,容易导致数据不一致。
http://rashost.com/blog/centos5-vps-compile-php-fpm
本文记录了在CentOS 5 VPS上编译打了php-fpm补丁的php 5.2.10的过程。
安装库文件
安装编译php需要的一些库文件
yum install libxml2-devel libmcrypt-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel openldap-devel libmhash-devel mysql-devel libtool-ltdl-devel
如果是64位的系统,然后需要调整一下mysql的库文件,否则在64位系统下老去找32位的mysql库:
cd /usr/lib
mv mysql mysql.i386
ln -sf /usr/lib64/mysql mysql
编译php-fpm
给php打php-fpm补丁:
cd php-5.2.10
patch -p1 < ../php-5.2.10-fpm-0.5.13.diff
开始编译php,注意:如果是64位的系统,建议去掉 --with-ldap-sasl,否则有可能编译不过
./configure --prefix=/opt/php --with-iconv --with-zlib --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --enable-sqlite-utf8 --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-png-dir
make
当编译到php-5.2.10/ext/date/lib/parse_date.c的时候,挂了,好像不往下走了,这时候ctrl-c中断编译过程,把当前正在执行的语句复制粘贴到命令行单独执行,发现还是好像死循环一样不结束,再次ctrl-c中断,删除掉这个命令中的-O2参数,继续执行,这样这个命令很快就结束了,然后继续运行:
make
make install
cp php.ini-dist /opt/php/lib/php.ini
然后运行 /opt/php/sbin/php-fpm start 就可以启动php的fastcgi进程了,这些php fastcgi进程应该可以正常工作了。
优化php-fpm
编辑php-fpm的配置文件/opt/php/etc/php-fpm.conf,
* 去掉display_errors参数的注释,修改参数值为1
* 去掉sendmail_path参数的注释
* 去掉user,group参数的注释,并设定值为nobody
* 修改max_children参数的值为10
安装php加速器eAccelerator
tar jxf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
yum install -y autoconf
/opt/php/bin/phpize
./configure --enable-eaccelerator --with-php-config=/opt/php/bin/php-config
make
make install
mkdir /opt/php/eaccelerator_cache
然后vim /opt/php/lib/php.ini,在文件末尾加入:
[eaccelerator]
zend_extension="/opt/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/opt/php/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
然后重启php-fpm,在phpinfo()页面中应该能看到eaccelerator的信息了。
打包
我们把/opt/php目录打包放到 http://rashost.com/download 下面,供客户下载使用。
最后,安装好之后,记着在/etc/rc.local文件中加入自动启动php-fpm的语句:
/opt/php/sbin/php-fpm start
phpmyadmin是个很方便的mysql数据库管理工具,可以用来管理mysql数据库,导入,导出等。
phpmyadmin在导入mysql的时候有个问题,如果要导入的数据库文件比较大,那么导入就会失败。下面介绍一个方法,可以导入任意大小的mysql数据库,步骤如下:
1. 通过FTP把数据库的SQL文件上传到网站的根目录下
2. 在网站的根目录下,创建文件import.php,该文件的内容见文章末尾
3. 在浏览器里面访问这个import.php,假设你的网站域名是www.a.com,那么就在浏览器里面访问 http://www.a.com/import.php , 只要浏览器一开始访问这个import.php文件,数据就开始导入了
4. 数据导入结束后,屏幕上会出现"import ok"的字样
import.php文件的内容如下:
<?
system("mysql -uroot -pmypassword database < a.sql");
print "import ok";
?>
其中root表示数据库用户名,mypassword表示root的密码,database表示要导入的数据库的名字,a.sql表示数据库文件的文件名,该文件是解压缩后的文件。这几个变量可以根据实际情况修改。
rsync是Linux下最好的同步软件,本文记录了在centos 5 VPS下配置rsync服务端的过程。
安装:
yum install -y rsync xinetd
然后rpm -ql rsync就可以看到rsync安装了哪些文件。编辑/etc/xinetd.d/rsync文件,修改disable=no,然后重启xinetd:
/etc/init.d/xinetd restart
创建文件 /etc/rsyncd.conf 内容如下:
pid file = /var/run/rsyncd.pid
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow=68.68.99.184/255.255.255.0 216.18.195.23/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[www]
path = /home/pics/www
list=yes
ignore errors
auth users = pics
secrets file = /etc/rsyncd.secrets
comment = pics www
创建文件 /etc/rsyncd.motd 内容随便写即可
创建文件 /etc/rsyncd.secrets 内容是用户名和密码,比如:
syncuser: mypassword
然后执行如下命令:
chmod 700 /etc/rsyncd.secrets
这样就配置好了,在客户端就可以用rsync命令了,比如:
rsync rsync://syncuser@216.18.195.23/
rsync --password-file=/etc/rsync.password rsync://syncuser@216.18.195.23/www /home/pics/www --recursive --times --links --hard-links --delete -av