编译安装Mysql5.5

mysql5.5采用cmake代替了configure

groupadd mysql -g 27
useradd mysql -u 27 -g 27 -c "MySQL Server" -d /home/mysql -m
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.19.tar.gz/from/http://mysql.he.net/
tar zxf mysql-5.5.19.tar.gz
cd mysql-5.5.19
CFLAGS="-O3" CXX=gcc
CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"

阅读剩余部分...

php安装memcache模块

安装memcahed后还需要给php安装上memcahe模块才能调用,如果你喜欢也可以用pecl install memcache安装,如果是从源码仓里面安装的php也可以直接搜索安装php-memcache
wget -c http://pecl.php.net/get/memcache-3.0.6.tgz
tar xzf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/bin/phpize
./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir make make install echo "extension_dir = /usr/lib/php/extensions/no-debug-non-zts-20060613" >>/etc/php.ini echo "extension = memcache.so">>/etc/php.ini
/usr/bin/php -m|grep memcahe
红色部分需要根据您的具体情况修改改,安装完后运行 

nginx和MySQL安装加载gperftools模块

gperftools是google小组
if [ `uname -i` == "x86_64" ];
then
cd /tmp
wget -c http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz 
tar zxf libunwind-1.1.tar.gz
cd libunwind-1.1
./configure
make && make install
fi
cd /tmp
wget -c https://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
tar zxf gperftools-2.0.tar.gz
cd gperftools-2.0
./configure  
make  && make install 

echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig
将编译好的libtcmalloc.so模块加入mysqld_safe启动的时候进行动态加载
 sed -i 's/executing mysqld_safe/executing mysqld_safe\nexport LD_PRELOAD=\/usr\/local\/lib\/libtcmalloc.so/g'    /usr/bin/mysqld_safe
/etc/init.d/mysql restart
nginx不支持动态加载所以要重新编译
./configure 【其他参数】 --with-google_perftools_module
make && make install 
echo "google_perftools_profiles /tmp/tcmalloc;">>/etc/nginx/nginx.conf
/etc/init.d/nginx restart
mkdir /tmp/tcmalloc/ 
chmod  0777 /tmp/tcmalloc/ 

编译升级gcc-4.7.1

centos5升级kernel到3.7的时候发现gcc版本问题无法编译,rpm里面没有只有老版本只能自己编译一下了.
sudo yum install glibc-static libstdc++-static
wget http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.gz
tar xzf gcc-4.7.1.tar.gz
cd gcc-4.7.1
./contrib/download_prerequisites
cd ..
mkdir build_gcc4.7.1
cd build_gcc4.7.1
../gcc-4.7.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j24   #根据您的服务器CPU核心设置
sudo make install

Postfix添加DKIM

为了防止邮件被判定为垃圾邮件,可以给邮件系统增加DKIM(DomainKeys Identified Mail)功能,其主要的原理通俗的说,就是在发送邮件的时候通过私钥在邮件头写一段加密信息,然后公钥放到DNS服务器上,邮件的接收方通过邮件头的加密信息来和DNS上的公钥比对来判定邮件来源是否合法。这个计数貌似是雅虎提出的,被Yahoo! Mail和Gmail等厂商采用。

可以在http://sourceforge.net/projects/dkim-milter/ 下载源代码:

[root@mail dkim]# ll
total 736
-rw-r--r-- 1 root root 748415 Jul 13 2011 dkim-milter-2.8.3.tar.gz
[root@mail dkim]# tar zxvf dkim-milter-2.8.3.tar.gz

也可以通过下载RPM安装包安装,比较简单:

#Centos5
[root@mail dkim]#rpm -ivh http://download4.fedora.redhat.com/pub/epel/5/`uname -i`/dkim-milter-2.8.3-4.el5.`uname-i`.rpm
#Centos6
[root@mail dkim]#rpm -ivh http://download4.fedora.redhat.com/pub/epel/6/`uname -i`/dkim-milter-2.8.3-4.el5.`uname-i`.rpm

阅读剩余部分...

CentOS 封装打包rpm

系统环境:CentOS 5

事项:用源文件创建rpm文件

关于生成rmp文件不单是要centos下可行,在Linux其它发行版也是可以的;以下安装 courier-authlib软件为例:

1、关于RPM

在新装的系统中可能没有下面目录,需要我们自己建立(如有则不需建立);下面我简介这几目录
/usr/src/redhat/SPEC spec 文件夹,通常是rpm文件夹
/usr/src/redhat/RPMS 是生成rpm 的文件,下面还有i368,i486 等子文件夹,一般我们用i386 架构

阅读剩余部分...

qemu-kvm将SLIc 2.1刷入BIOS并成功激活Windows Server 2008 R2

在一台DELL R310的宿主机上安装了Ubuntu Server 12.10默认集成KVM虚拟机,用户态虚拟机软件qemu-kvm使用seabios的作为bios实现(位于 /usr/share/qemu-kvm/bios.bin,来自于qemu-common 1.2.0+noroms-0ubuntu2),该bios.bin仅包含部分来自宿主机的SLIC信息,但不完整,无法通过Window OEM验证。

本文将介绍安装KVM虚拟机,借助virt-install安装Windows客户机,去除bios.bin里内置的SLIC,然后使用-acpitable参数载入正确的SLIc 2.1信息,导入OEM证书和OEM key激活Windows。

由于Ubuntu Server没有安装图形环境,DELL R310服务器也是不带显示器的,所有windows的安装过程是通过本来的Macbook Air的VNC客户端操作的。

安装KVM虚拟机

首先检查你的处理器是否支持硬件虚拟化;如果支持,下面这个命令

$ sudo egrep '(vmx|svm)' --color=always /proc/cpuinfo

会看到如下类似信息

阅读剩余部分...

Kvm虚拟化Guesr OS CPU无法识别显示QEMU Virtual CPU

直接生成的配置文件启动的guest os会显示QEMU Virtual CPU, 其实老早就想写了 人又太懒了,最近调试Kvm又用上了就记录一下
<domain type='kvm' >
to
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <qemu:commandline>           <qemu:arg value='-cpu'/>           <qemu:arg value='host'/>         </qemu:commandline>

Windows2003启用划分磁盘

一般用模板安装后C盘算固定的定制大小,或者要么就是一个硬盘就一个C盘.

这里主要说一下如何启用未划分的磁盘

具体流程 我的电脑属性>计算机管理>存储>磁盘管理>分配盘符

其他乱七八糟的就不叙述了,请直接看图片

阅读剩余部分...

删除virbr0网桥

安装Xen和Kvm的时候brctl show会看到virbr0的网卡 直接删除又删不掉.
Kvm直接建立网桥配置倒是没什么影响,Xen下不是走peth0的话guest os就没办法上网,
综合一下 这个对咋们错杀一千也绝对不能留下来.
直接用brctl delbr virbr0会提示使用中无法删除,所以让ifconfig停掉它

实例命令

ifconfig  virbr0 down
brctl delbr virbr0

Linux将正在执行的进程转入后台

命令CTRL+Z强制将当前进程转为后台,并使之停止。 1、使进程恢复运行(后台)
使用命令bg
$bg
如果用CTRL+Z停止了几个程序,可用命令$jobs查看
如[1]- Running ./test1 &
[2]+Stopped ./test2
可使用命令$bg  %1  将任务1转入后台运行
2、使进程恢复至前台运行
命令$fg
总结:

阅读剩余部分...

libvirt domain XML配置实例

kvmla测试kvm虚拟化有一个多月了,现在已经开始公测了. 这里记录一下virsh管理下的kvm配置文件实例大全

<domain type='vbox'>
 <name>vbox</name>
 <uuid>4dab22b31d52d8f32516782e98ab3fa0</uuid>

 <os>
<type>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
<boot dev='fd'/>
<boot dev='network'/>
 </os>

 <memory>654321</memory>
 <vcpu>1</vcpu>

阅读剩余部分...

Krypt机房11月促销

凌动 ATOMD510 1.66GHZ 2GB内存 160GB SATA硬盘 10TB 流量 100 Mbps 3IP $64.95/月
双核E7400 2.83GHz 2GB内存 160GB SATA硬盘 10TB 流量 100 Mbps 3IP $69.95/月
双核E5200 2.5GHz 2GB内存 320GB SATA硬盘 10TB 流量 100 Mbps 3IP $64.95/月


Krypt 机房和电信联通直连 速度非常不错

ssl出错ssl_error_rx_record_too_long

没事干在nginx的default站点下添加段listen 443;默认监听443, 没想到原来一直正常的https站全部打不开了.
SSL 接收到一个超出最大准许长度的记录。

(错误码: ssl_error_rx_record_too_long)
去掉后解决了冲突..............

Nginx负载均衡与健康检查

   在业界,一直流传这样一句话:Nginx抗并发能力强!为什么Nginx抗并发能力强?原因是使用了非阻塞、异步传输
阻塞:如apache代理tomcat时,apache开启10个进程,同时处理着10个请求,在tomcat没有返回给apache结果时,apache是不会处理用户发出的第11个请求
非阻塞:如nginx代理tomcat时,nginx开启1000个并发,同时处理着1000个请求,在tomcat没有返回给nginx结果时,nginx会依然处理后面用户发给的请求
同步传输:比如squid代理tomcat时,浏览器发起请求,然后请求会squid立刻被转到后端服务器,于是在浏览器和后端服务器之间就建立了一个连接。在请求发起到请求完成,这条连接都是一直存在的。
异步传输:比如nginx代理tomcat时,浏览器发起请求,请求不会立刻转到后端服务器,而是将请求数据(header)先保存到nginx上,然后nginx再把这个请求发到后端服务器, 后端服务器处理完之后把数据返回到nginx上,nginx将数据流发到浏览器。

     如上图所示假设用户执行一个上传文件操作,由于用户网速较慢,因此需要花半个小时才能把文件传到服务器。squid的同步代理在用户开始上传后就和 后端tomcat建立了连接,半小时后文件上传结束,所以,后端tomcat服务器连接保持了半个小时;而nginx异步代理就是先将数据保存在 nginx上,因此仅仅是nginx和用户 保持了半小时连接,后端服务器在这半小时内没有为这个请求开启连接,半小时后用户上传结束,nginx才将上传内容发到后端tomcat,nginx和后 台之间的带宽 是很充裕的,所以只花了一秒钟就将请求发送到了后台,由此可见,后端服务器连接保持了一秒。

阅读剩余部分...