yum安装php/apache/mysql/memcached

一、需求:
php:php5.2.6以上,要求支持如下模块:mysql、gd、memcached、mbstring、apc、mcrypt、curl、ftp(其中curl/ftp默认已安装)
apache:要求配置php模块。
mysql:Mysql5.1.46以上,需要支持Innodb,支持分区
memcached:memcached-1.4.4.tar.gz
二、背景
(1)新版家校圈服务器在世纪互联机房,所以跟我们社区网站的服务器在不同的外网。登录时使用外网IP。配置源码时还是使用2.14里的源,通过2.14的外网地址进行访问。
(2)centos yum的使用方法
yum是什么,yum = Yellow dog Updater, Modified。主要功能是更方便的添加/删除/更新RPM包,它能自动解决包的倚赖性问题,便于管理大量系统的更新问题。
yum特点:
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性
yum安装:
CentOS自带(yum-*.noarch.rpm)
#rpm -ivh yum-*.noarch.rpm
在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY,这个东东是用于rpm包校验用的,一般在系统光盘里可找到。
#rpm –import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)
yum常用的命令:
# yum install xxx         安装xxx软件
# yum info xxx             查看xxx软件的信息
# yum remove xxx     删除软件包
# yum list                     列出软件包
# yum clean                 清除缓冲和就的包
# yum provides xxx     以xxx为关键字搜索包(提供的信息为关键字)
# yum search xxx       搜索软件包(以名字为关键字)
# yum groupupdate xxx
# yum grouplist xxx
# yum groupremove xxx
(这三个都是一组为单位进行升级 列表和删除的操作。。比如 “Mysql Database”就是一个组会同时操作相关的所有软件包;)
# yum update             系统升级
# yum list available     列出所有升级源上的包;
# yum list updates     列出所有升级源上的可以更新包;
# yum list installed     列出已经安装的包;
# yun update kernel   升级内核;
yum自动选择最快的源:
(1)由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror:
#yum install yum-fastestmirror
配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf
你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt
(2)换为中国的源
中国官方镜像网站: http://centos.ustc.edu.cn
cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.bak
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
mv CentOS-Base.repo.5  CentOS-Base.repo
yum -y update
系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.
rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY*
(3)为Centos5添加网易163、搜狐的yum源
先关闭fastestmirror
“vi /etc/yum/pluginconf.d/fastestmirror.conf” and set “enable=0″
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
yum makecache
yum update
now enjoy it!
三、安装方法
yum clean all
yum -y install libevent*
yum -y install httpd*
yum -y install  mysql mysql-server
yum -y install php php-gd php-memcached php-mbstring php-mcrypt php-mysql php-apc
tar -zxvf memcached-1.4.4.tar.gz
cd memcached-1.4.4
./configure && make && make install

1.memcached的安装
1)memcached是基于libevent的事件处理,所以安装memcached时先要安装libevent库。
yum -y install libevent libevent-devel
2)memcached编译安装比较简单,一般都采用编译安装的方式如下:
wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar -zxvf memcached-1.4.5.tar.gz
cd  memcached-1.4.5
./configure
make && make install
——————————————————————————————————————————
2.memcached启动
1)memcached常用参数:(/usr/local/bin/memcached -h)
-p <num>      TCP port number to listen on (default: 11211)
-U <num>      UDP port number to listen on (default: 11211, 0 is off)
-l <ip_addr>  interface to listen on (default: INADDR_ANY, all addresses)
-d            run as a daemon
-u <username> assume identity of <username> (only when run as root)
-m <num>      max memory to use for items in megabytes (default: 64 MB)
-c <num>      max simultaneous connections (default: 1024)
-P <file>     save PID in <file>, only used with -d option
-f <factor>   chunk size growth factor (default: 1.25)
2)以daemon的方式启动memcached
/usr/local/bin/memcached -u nobody -p 11211 -m 64 -c 128 -d
——————————————————————————————————————————
3.memcached结合mysql、perl的实践
cat memcached_mysql.pl
#!/usr/bin/perl
#Usage: test memcahed with mysql and perl
#Made by yunhaozou@gmail.com,2010/12/20
#
use Cache::Memcached;
use DBI;
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use strict;
#
my $host = “127.0.0.1″;  #db相关信息
my $port = “3306″;
my $db = “zichan_db”;
my $user = “root”;
my $password = “”;
my $dsn = “dbi:mysql:database=$db:hostname=$host:port=$port”;
my $dbh = DBI->connect($dsn,$user,$password) or die “Couldn’t connect to database: ” . DBI->errstr;  #连接db
my $memcached = Cache::Memcached->new({ servers=>["127.0.0.1:11211"],compress_threshold=>10_000});   #连接memcached
#$memcached = Cache::Memcached->new({ servers=>["127.0.0.1:11211","192.168.2.1:11211"],compress_threshold=>10_000}); #表示连接两台机的memcached,这样可以实现负载均衡,一个机器挂了,另一个可以继续用
my $zcsql = “select sn,model,cab_no,func,intra_ip,man_addr,contact from equipment where sn=’0917QAR012′;”;
#
my $result = query_result($zcsql);
print Dumper $result;
$dbh->disconnect();
#
sub query_result{
my $query_sql = shift;
my $query_key = md5_hex($query_sql);  #把查询sql语句转换为MD5值的key
my $query_result = $memcached->get($query_key);
return $query_result if $query_result;  #当在memcaed有缓存时直接返回
$query_result = $dbh->selectrow_hashref($query_sql);
$memcached->set(“$query_key”, $query_result); #当在memcached没有缓存时从数据查询,并缓存memcached
return $query_result;
}
——————————————————————————————————————————
4.日常运维
1)memcached是典型的是耗内存不耗CPU。而通常web进程(如Apache)是CPU敏感,内存不那么敏感的。因此可将memcached直接跑在前台web主机上,作为数据缓存(或数据库连接池)使用,也就是在web程序与数据库之间多加了一层。
2)尽量使用memcached分布式部署。但各个模块尽量做到memcached资源隔离(之前因为社区前端公用memcached,有一次广东综合通信上线了一个页面,因工程师写代码时失误,显式调用了flush memcache,从而每次访问都清空整个memcached,把整个网站社区前端memcached资源清空,而且过几秒又被清空,这样造成的后果有多严重就不说了,写那代码的哥们有多惨也不说了~~)
3)用telnet测试memcached
telnet 127.0.0.1 11211
Trying 127.0.0.1…
Connected to zou.yunhao (127.0.0.1).
Escape character is ‘^]’.
set key 0 10 6   //10表示过期时间10秒,6表示将要存入数据字节为6(这里result为6)
result
STORED
get key
VALUE key 0 6
result
END
4)memcached性能查看命令stats
telnet 127.0.0.1 11211
stats
STAT pid 18006
STAT uptime 702   //memcached运行的秒数
STAT time 1292904537 //memcached服务器所在主机当前系统的时间,单位是秒。
STAT version 1.4.5
STAT pointer_size 64  //服务器所在主机操作系统的指针大小,一般为32或64
STAT rusage_user 0.003999
STAT rusage_system 0.013997
STAT curr_connections 10   //表示当前的连接数
STAT total_connections 11   //表示从memcached服务启动到当前时间,系统打开过的连接的总数。
STAT connection_structures 11
STAT cmd_get 0   //查询缓存的次数,平均每秒缓存次数cmd_get/uptime
STAT cmd_set 0   //设置key=>value的次数
STAT cmd_flush 0
STAT get_hits 0  //缓存命中的次数,缓存命中率=get_hits/cmd_get*100%
STAT get_misses 0  //cmd_get-get_hits
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7  //memcached服务器从网络读取的总的字节数
STAT bytes_written 0  //memcached服务器发送到网络的总的字节数。
STAT limit_maxbytes 67108864  //memcached服务缓存允许使用的最大字节数
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
——————————————————————————————————————————
5.监控
1)nagios监控
a. check_memcached
先要安装check_memcached插件
wget http://search.cpan.org/CPAN/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz
tar xzvf Nagios-Plugins-Memcached-0.02.tar.gz
cd Nagios-Plugins-Memcached-0.02
perl Makefile.PL   (可能需要其他perl的modules,依照提示通过cpan安装即可)
make && make install
check_memcached [-H host:port] [-w warnings] [-c critical] [--size-warnng size-warnng] [--size-critical size-critical] [--hit-warning hit-warning] [--hit-critical
hit-critical] [-t timeout]
b. /check_tcp -H host -p 11211 -t 5 -E -s ‘stats/r/nquit/r/n’ -e ‘uptime’ -M crit
2)cacti监控
一台服务器起多个memcached,多端口cacti部署监控。
a. 需要一个 Python memcached Client API
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz
tar xzvf python-memcached-1.45.tar.gz
cd python-memcached-1.45
python setup.py install
b. 加模板memcached multiport
wget http://tag1consulting.com/blog/cacti-memcache-multi-port-templates
cp memcached.py   <cacti install目录>/scripts/memcachedmultiport.py
c. 增加监控时devices->des && ip->host template选择memcachedmultiport->Downed Device Detection选择none->SNMP Version选择not in use->create graphs->Port to query for memcached statistics填写memcached端口。
3)也可以自定义nagios、cacti监控,通过memcached命令stats取相关数据。
本文出自孤风颠影|网站运维 网址:http://yunhaozou.org/mysql/233.html.转载请保留.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值