备份 /etc/yum.repos.d/CentOS-Base.repo
修改 /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
可以直接参考163镜像官方文档:http://mirrors.163.com/.help/centos.html
环境:CentOS 5.7 php-5.4.11 apache-2.4.3
php 下载链接:wget http://cn2.php.net/get/php-5.4.11.tar.gz/from/us3.php.net/mirror
apache 下载链接:wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.4.3.tar.gz
mysql 直接yum即可,省去安装的麻烦
一:安装apache,至于加什么参数,我认为最简单的就是最合适的:
./configure --prefix=/opt/soft/apache
make && make install
新版本的apache在apr和apr-util调用时,一般都依赖自身的apr,否则会报以下类似错误:
Cannot use an external APR with the bundled APR-util
所以需要插件的升级支持,安装以下插件:
wget http://apache.dataguru.cn//apr/apr-1.4.6.tar.gz
wget http://www.fayea.com/apache-mirror//apr/apr-util-1.5.1.tar.gz
wget http://sourceforge.net/projects/pcre/files/pcre/8.31/pcre-8.31.tar.gz/download
解压过了,进入相关目录,configure && make && make install 即可
需要注意的是,安装apr-util时,需要指定安装好的apr目录,因此编译apr-util时加上以下参数
./configure --with-apr=/usr/local/apr/
二:安装php,这个要看具体的系统需求,我的如下:
./configure --prefix=/opt/soft/php --with-apxs2=/opt/soft/apache/bin/apxs --with-openssl --with-config-file-path=/opt/soft/php/etc --with-mysql --enable-sysvmsg --enable-sysvsem --enable-sysvshm
make && make install
make install 之后,会看到以下提示信息:
Wrote PEAR system config file at: /opt/soft/php/etc/pear.conf
You may want to add: /opt/soft/php/lib/php to your php.ini include_path
/usr/sky/soft/php/php-5.4.11/build/shtool install -c ext/phar/phar.phar /opt/soft/php/bin
ln -s -f /opt/soft/php/bin/phar.phar /opt/soft/php/bin/phar
Installing PDO headers: /opt/soft/php/include/php/ext/pdo/
按照提示,分别进行操作:
cp php.ini-production /opt/soft/php/etc/php.ini vim /opt/soft/php/etc/php.ini /opt/tools/php-5.4.11/build/shtool install -c ext/phar/phar.phar /opt/soft/php/bin ln -s -f /opt/soft/php/bin/phar.phar /opt/soft/php/bin/phar
cp php.ini-production /opt/soft/php/etc/php.ini
我的phh.ini的文件位于/opt/soft/php/etc目录中
2. 安装pcntl模块,在php-5.4.11目录下执行:
cd ext/pcntl /opt/soft/php/bin/phpize ./configure --with-php-config=/opt/soft/php/bin/php-config make make test make install echo "extension=pcntl.so" >> /opt/soft/php/etc/php.ini
三:yum 安装mysql
yum install mysql mysql-* php-mysql.x86_6 php-pdo.x86_64 php-pear-MDB2-Driver-mysql.noarch apr-util-mysql.x86_64 mod_auth_mysql.x86_64
四: php与apache整合:
在apache的httpd.conf文件中添加:
AddType application/x-httpd-php .php .php3 .phtml .inc
AddType application/x-httpd-php-source .phps
Redis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,你只需要执行下面一条命令,就能获得 Redis 系统的状态报告。
redis-cli info内存使用
如果 Redis 使用的内存超出了可用的物理内存大小,那么 Redis 很可能系统会被 OOM Killer杀掉。针对这一点,你可以通过 info 命令对 used_memory 和 used_memory_peak 进行监控,为使用内存量设定阀值,并设定相应的报警机制。当然,报警只是手段,重要的是你得预先计划好,当内存使用量过大后,你应该做些什么,是清除一些没用的冷数据,还是把 Redis 迁移到更强大的机器上去。
持久化如果因为你的机器或 Redis 本身的问题导致 Redis 崩溃了,那么你唯一的救命稻草可能就是 dump 出来的 rdb文件了,所以,对 Redis dump 文件进行监控也是很重要的。你可以通过对rdb_last_save_time 进行监控,了解你最近一次 dump 数据操作的时间,还可以通过对rdb_changes_since_last_save 进行监控来知识如果这时候出现故障,你会丢失多少数据。
主从复制如果你设置了主从复制模式,那么你最好对复制的情况是否正常做一些监控,主要是对 info 输出中的 master_link_status 进行监控,如果这个值是 up,那么说明同步正常,如果是 down,那么你就要注意一下输出的其它一些诊断信息了。比如下面这些:
role:slave master_host:192.168.1.128 master_port:6379 master_link_status:down master_last_io_seconds_ago:-1 master_sync_in_progress:0 master_link_down_since_seconds:1356900595Fork 性能
当 Redis 持久化数据到磁盘上时,它会进行一次 fork 操作,通过 fork 对内存的 copy on write 机制最廉价的实现内存镜像。但是虽然内存是 copy on write 的,但是虚拟内存表是在 fork 的瞬间就需要分配,所以 fork 会造成主线程短时间的卡顿(停止所有读写操作),这个卡顿时间和当前 Redis 的内存使用量有关。通常 GB 量级的 Redis 进行 fork 操作的时间在毫秒级。你可以通过对 info 输出的 latest_fork_usec 进行监控来了解最近一次 fork 操作导致了多少时间的卡顿。
配置一致Redis 支持使用 CONFIG SET 操作来实现运行实的配置修改,这很方便,但同时也会导致一个问题。就是通过这个命令动态修改的配置,是不会同步到你的配置文件中去的。所以当你因为某些原因重启 Redis 时,你使用 CONFIG SET 做的配置修改就会丢失掉,所以我们最好保证在每次使用 CONFIG SET 修改配置时,也把配置文件一起相应地改掉。为了防止人为的失误,所以我们最好对配置进行监控,使用 CONFIG GET 命令来获取当前运行时的配置,并与 redis.conf 中的配置值进行对比,如果发现两边对不上,就启动报警。
慢日志
Redis 提供了