gearman 任务分发 安装&扩展

一. 安装依赖环境

yum install vim wget gcc gcc-c++ make dos2unix gperf libevent 
libevent-devel zlib-devel bzip2-devel openssl-devel ncurses-devel boost 
boost-devel mysql-devel libuuid-devel gperf -y 

二. 安装

wget https://launchpadlibrarian.net/165674261/gearmand-1.1.12.tar.gz
# tar -zxvf gearmand-1.1.12.tar.gz
# cd gearmand-1.1.12
# ./configure
make && make install
ldconfig #重新加载库文件
#创建日志文件夹
mkdir -p /usr/local/var/log
#创建日志文件
touch /usr/local/var/log/gearmand.log
#启动JOB Server
gearmand -d -u root #当前用户位root时使用-u root

三. 安装PHP扩展

# wget http://pecl.php.net/get/gearman
# mv gearman gearman.tar.gz
# tar -zxvf gearman.tar.gz
# cd gearman-1.1.2/
# /usr/local/php/bin/phpize
# ./configure —with-php-config=/usr/local/php/bin/php-config
# make
# make install
将扩展添加到PHP配置文件中
echo "extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/gearman.so" 
>> /usr/local/php/etc/php.ini
# service httpd restart

centos FFmpeg转换音视频格式+ffmpeg-php扩展安装

1、安装依赖环境软件

yum install automake autoconf libtool gcc gcc-c++ -y

2、安装第三方更新源

rpm -ivh http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

3、安装ffmpeg

yum install ffmpeg ffmpeg-devel mencoder mplayer flvtool2

4. 安装ffmpeg-php
下载ffmpeg-php

http://sourceforge.net/projects/ffmpeg-php/files/OldFiles/ffmpeg-php-0.6.2.tbz2/download

解压缩

tar jxvf ffmpeg-php-0.6.2.bz2
cd ffmpeg-php-0.6.2
/usr/locla/php/bin/phpize
./configure —with-php-config=/usr/locla/php/bin/php-config
make && make install

将扩展加入到php.ini文件

vim /usr/local/php/etc/php.ini

在最后加入

[ffmpeg]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ffmpeg.so

然后重启apache
完成!
转换音频

ffmpeg -i a.wav a.mp3

转换视频

ffmpeg -i test.flv -y -ab 720 -ar 22050 -qscale 10 -s 640*480 -r 15 test.mp4

参数说明
-i 是 要转换文件名
-y是 覆盖输出文件
-ab 是 音频数据流,大家在百度听歌的时候应该都可以看到 128 64
-ar 是 声音的频率 22050 基本都是这个。
-qscale 是视频输出质量,后边的值越小质量越高,但是输出文件就越“肥”
-s 是输出 文件的尺寸大小!
-r 是 播放侦数。

用OpenOffice+ jodconverter将office文档转换为PDF文档

1.安装前首先执行yum update -y 更新到最新, 否则安装jdk时jre字体不会安装

2.卸载系统自带java

yum remove java -y

3.下载java

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

mkdir /usr/java

cd /usr/java

rpm -ivh jdk-7u75-linux-x64.rpm

然后配置环境变量输入如下命令,进入配置文件。

[root@localhost java]# vi /etc/profile
在文件中加入

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/java/jdk1.7.0_60
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

让环境变量生效。

执行配置文件,令其立刻生效,输入如下命令:

[root@localhost java]# source /etc/profile

查看当前java安装的版本
[root@localhost java]# java -version
java version “1.7.0_60″
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

  1. 下载openoffice

wget http://softlayer-sng.dl.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/zh-CN/Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

安装openoffice

tar zxvf Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

cd zh-CN/RPEM

rpm -ivh *.rpm ―nodeps ―force

安装后的默认目录是在:/opt/目录下面

  1. 启动服务

/opt/openoffice4/program/soffice -headless -accept=”socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard &

安装office-SDK

下载

wget https://archive.apache.org/dist/openoffice/4.1.0/binaries/SDK/Apache_OpenOffice-SDK_4.1.0_Linux_x86-64_install-rpm_en-US.tar.gz

 

tar zxvf Apache_OpenOffice-SDK_4.1.0_Linux_x86-64_install-rpm_en-US.tar.gz

 

cd en-US/RPMS/

rpm -ivh *.rpm

 

安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF了。

这个安装很简单,直接上网站下一个这个东东回来。

解压,复制到一个目录里面去,就能直接用了,调用它里面的/lib/jodconverter-cli-2.2.2.jar这个玩意儿就行,可以直接运行命令测试:

 

java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/1.doc /tmp/1.pdf

转换命令

java -jar /usr/local/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /a.doc /a.pdf

注:如果文档转换后中文无法显示或乱码,这是由于centos安装时采取最小化安装造成的,只需找个完整安装的服务器,将/usr/share/fonts 文件夹下的字体复制到相应服务器然后重启服务器即可,

如果完成上述操作后中文有乱码,请在windows系统中 c:/windows/font/目录下的所有字体复制到 /usr/share/fonts/目录下 ,重启服务器即可

MySQL主从服务器配置

主服务器 IP:192.168.1.138

从服务器IP:192.168.1.137

1、打开主服务器的mysql 配置文件

2、找到[mysqld]节点,添加或修改成以下内容。

server-id=1 #服务器ID
log-bin=mysql-bin01
binlog-do-db=leonis #这里设置需要在主服务器记录日志的数据库,只有在这里设置了的数据库才能被复制到从服务器
binlog-ignore-db=mysql #这里设置在主服务器上不记度日志的数据库
expire_logs_days=10

3、进入主服务器的mysql控制台,执行 FLUSH TABLES WITH READ LOCK;锁定现有数据库,再执行show master status;记录File和Position项目的值.

952334

4、执行 SHOW VARIABLES LIKE “%log_bin%”;  查看主服务器的binlog是否开启。 log_bin 这项 为 ON 的话就表示已开启。

936136

 

然后把数据库的锁定打开 UNLOCK TABLES;

5、在主服务器上创建从服务器使用的帐号并给予相应的权限(主要是replication slave权限),为避免配置过程中出现问题,可以也给予 reload,super权限,配好后再跟据实际情况取消。

grant replication slave, reload, super on *.* to ‘backup’@’192.168.0.1’ identified by ‘123456’; #backup是用户名,123456是密码

6、至此主服务器已设置完成。

7、接下来打开从服务器的mysql配置文件。在[mysqld]节点下,添加或修改成。

server-id=2
log-bin=mysql-bin02
replicate-do-db=leonis
replicate-ignore-db=mysql
expire_logs_days=10

#下面的配置只在mysql 5.1.7 之前的版本才有效。

master-host=192.168.1.138
master-user=root
master-password=leonis
master-port=3306

8、如果你是mysql 5.1.7之后版本的话,要进入从服务器的mysql控制台,使用命令设置。

change master to
master_host=‘192.168.1.138′,
master_user=’root’,
master_password=‘leonis’,
master_log_file=’mysql-bin01.000008′,  #此处填写主服务器的日志文件名,文章上方主服务状态信息中的File的值,上面已用红色强调。
master_log_pos=197; #此处填写主服务器日志文件记录的位置,文章上方主服务状态信息中的Position的值,上面已用红色强调。

9、执行上面命令后,再执行start slave,用启动从服务器模式。

10、可以使用 show processlist 查看进程,进程状态如和下方内容一样的话,说明从服务器运行正常,已经连接上主服务器,开始接受并执行日志。

127859

11、然后最好重启一下从服务器的MySQL。

12、在从服务器的MySQL控制台,使用show slave status; 命令,查看从服务器的运行状态。显示结果中以下两项都为Yes的话,那说明正常。

  1. Slave_IO_Running: Yes
  2. Slave_SQL_Running: Yes

13、在主服务器上leonis数据库创建表,写入数据,然后到从服务器上查看leonis数据库有没有进行同步。

Linux下rsync+sersync实现实时同步数据

rsync+sersync做实时同步时,用于推送文件的服务器运行sersync服务,用于接受文件的服务器则运行rsync守护进程

sersync会利用rsync命令将文件推送到rsync服务器, sersync坐位住服务器,rsync坐位景象u服务器,实现数据同步备份,web镜像等功能
rsync   服务器IP:192.168.1.137
sersync服务器IP:192,168.1.138
使用sersync之前,必须先配置好rsync服务器
配置rsync 接收端
1. 安装rsync
yum install rsync -y
yum install xinetd -y
2. 启动rsync依赖服务并加入到开机启动项
service xinetd start
chkconfig xinetd on
3.配置:
uid = root
gid = root
use chroot = no
max connections = 10
strict modes = yes
port = 873
address = 192.168.1.137
[data] # rsync模块名,后面配置sersync会用到
path = /data  # 该同步目录只要uid所指定的用户有写权限即可
comment = mirror for leonis
ignore errors
read only = on
list = no
auth users = user
secrets file = /etc/rsync.pas # 密码认证文件,必须为600权限,否则rsync传输会报错
host allow = *
#host deny = 0.0.0.0/0
pid file = /var/run/rsync.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
4.创建同步目录
mkdir /data
5.配置认证文件
echo “user:123456” > /etc/rsync.pas
chmod 666 /etc/rsync.pas
rsync –daemon –config=/etc/rsyncd.conf
6.重启xinetd使其配置生肖
service xinetd restart
7.设置开机启动
echo ”rsync —daemon —config=/etc/rsyncd.conf” >>/etc/rc.local
配置sersync 推送端
安装rsync
vi /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync
disable = no #修改为no
创建认证密码文件
touch /etc/rsync.pas
echi “123456” >> /etc/rsync.pas
chomod 600 /etc/rsync.pas
mkdir /data/leonis  #在源服务器上创建测试文件夹,然后在源服务器运行下面2行命令
rsync -avH –port=873 –progress –delete/data/root@192.168.21.127::data –password-file=/etc/rsync.pas
运行完成后,查看接收端服务器,192,168.1.137, 如果在data目录下leonis文件夹存在,说明数据同步正常
安装sersync工具,实时触发rsync进行同步
1.下载sersync源码包
2.创建sersync目录结构
mkdir /usr/local/sersync
mkdir /usr/local/sersync/conf
mkdir /usr/local/sersync/bin
mkdir /usr/local/sersync/log
tar zxvf sersync2.5_64bit_binary_stable_final.tar.gz
cd GNU-Linux-x64
cp confxml.xml /usr/local/sersync/conf
cp sersync2 /usr/local/sersync/bin
3.配置confxml.xml

# cd /usr/local/sersync/conf

# vi confxml.xml

按照注释进行修改

—————————–

<?xml version=”1.0″ encoding=”ISO-8859-1″?>

<head version=”2.5″>

# 设置本地IP和端口

<host hostip=”localhost” port=”8008″></host>

# 开启DUBUG模式

<debug start=”false”/>

# 开启xfs文件系统

<fileSystem xfs=”false”/>

# 同步时忽略推送的文件(正则表达式),默认关闭

<filter start=”false”>

<exclude expression=”(.*)\.svn”></exclude>

<exclude expression=”(.*)\.gz”></exclude>

<exclude expression=”^info/*”></exclude>

<exclude expression=”^static/*”></exclude>

</filter>

<inotify>

# 设置要监控的事件

<delete start=”true”/>

<createFolder start=”true”/>

<createFile start=”true”/>

<closeWrite start=”true”/>

<moveFrom start=”true”/>

<moveTo start=”true”/>

<attrib start=”true”/>

<modify start=”true”/>

</inotify>

<sersync>

# 本地同步的目录路径

<localpath watch=”/data”>

# 远程IP和rsync模块名

<remote ip=”192.168.100.29″ name=”data”/>

<!–<remote ip=”192.168.8.39″ name=”tongbu”/>–>

<!–<remote ip=”192.168.8.40″ name=”tongbu”/>–>

</localpath>

<rsync>

# rsync指令参数

<commonParams params=”-auvzP”/>

# rsync同步认证

<auth start=”true” users=”user” passwordfile=”/etc/rsync.pas”/>

# 设置rsync远程服务端口,远程非默认端口则需打开自定义

<userDefinedPort start=”false” port=”874″/><!– port=874 –>

# 设置超时时间

<timeout start=”true” time=”100″/><!– timeout=100 –>

# 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书

<ssh start=”false”/>

</rsync>

# sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。

<failLog path=”/usr/local/sersync/log/rsync_fail_log.sh” timeToExecute=”60″/><!–default every 60mins execute once–>

# 设置rsync+crontab定时传输,默认关闭

<crontab start=”false” schedule=”600″><!–600mins–>

<crontabfilter start=”false”>

<exclude expression=”*.php”></exclude>

<exclude expression=”info/*”></exclude>

</crontabfilter>

</crontab>

# 设置sersync传输后调用name指定的插件脚本,默认关闭

<plugin start=”false” name=”command”/>

</sersync>

# 插件脚本范例

<plugin name=”command”>

<param prefix=”/bin/sh” suffix=”” ignoreError=”true”/>  <!–prefix /opt/tongbu/mmm.sh suffix–>

<filter start=”false”>

<include expression=”(.*)\.php”/>

<include expression=”(.*)\.sh”/>

</filter>

</plugin>

# 插件脚本范例

<plugin name=”socket”>

<localpath watch=”/opt/tongbu”>

<deshost ip=”192.168.138.20″ port=”8009″/>

</localpath>

</plugin>

<plugin name=”refreshCDN”>

<localpath watch=”/data0/htdocs/cms.xoyo.com/site/”>

<cdninfo domainname=”ccms.chinacache.com” port=”80″ username=”xxxx” passwd=”xxxx”/>

<sendurl base=”http://pic.xoyo.com/cms”/>

<regexurl regex=”false” match=”cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images”/>

</localpath>

</plugin>

</head>

4.创建推送端sersync同步目录
# mkdir /data
5.设置环境变量:

# echo “export PATH=$PATH:/usr/local/sersync/bin/” >> /etc/profile

# source /etc/profile

6.启动sersync

# sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml

注:重启操作如下:

# killall sersync2 && sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml

7.设置开机启动

# echo “sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml” >> /etc/rc.local

Gmail 失联之后的解决方案

上周四,Gmail 的 IMAP、SMTP、POP3 服务器均已被 Block,这些负责用户收发邮件的关键环节被盯上了,大陆地区用户的 Gmail 账户使用情况进一步恶化,原来只是屏蔽 Gmail(Google) 访问权限,现在可好,翻墙后在桌面、移动各类客户端上也收发不了邮件了,只能访问网页端操作。我们抛开敏感问题不谈,这样的后果会对国内民众的日常工作,学习造成很大影响,平时注册的各类账户推送邮件收不到,发过去的简历也不能及时获取,真是叫人感到懊恼。

遇到这种情况可不要着急换邮箱啊,那成本可高了去,小编在本文推荐几种解决方案,供大伙参考,有简单的,也有略复杂的,根据自身情况选择一个即可,我们的目标就是能正常使用 Gmail :

尝试安装 Mailbox,CloudMagic 等第三方邮件客户端

像 OS X 上的 Unibox,iOS 上的 CloudMagic ,以及通用客户端 Mailbox 都有自己的 Fetching Mail 服务器,会把用户邮件自动采集到自己的服务器再做收发,这种模式就不受某 WALL 的干扰了,你可以无障的使用,对于网络知识匮乏的普通用户来说,这种方案是最容易的成本也是最低的。
CfakepathMailbox
Mailbox Mac 客户端 下载
Mailbox iOS 客户端 下载
CloudMagic 下载

直接在邮件客户端里更换收发服务器地址「173.194.67.108」

当然了,不是每个人都想更换客户端的,一款软件用久了也有形成习惯,要去接受新伙伴没那么容易,根据网友分享,你可以在原有客户端设置里将默认的 IMAP、SMTP 服务器地址改为 「173.194.67.108」,瞬间搞定,不过这个美国 IP 的「寿命」我们就不敢保证了,来看下面这个较稳定的方案。

给系统架设 SOCKS 5 代理

因为 OS X 系统自带 Mail.app 是可以自动走 SOCKS 代理的,所以开启 SOCKS 代理就能 Mail.app 恢复正常,这里推荐 Shadowsocks ,提供公共服务器,还有其他一些商业服务也有提供 SOCKS 5 服务器,这里就不介绍了,以免有广告嫌疑,呵呵。

Shadowsocks 本来是为程序员设计的 VPS 自设代理方案,但她的部署对于外行,或者像我这样的爱好者「微博有人这样嘲笑我」有些复杂,好在今年有其他 Coder 开发了界面操作版,支持自动代理和全局代理两种模式,也非常好用。

>> Shadowsocks 扩展阅读 <<

怎样开启 SOCK5?

在 OS X 偏好设置 – 网络 – 高级 – 代理,找到「SOCKS 代理」,填入 IP 地址与端口号即可。
7AD187E1-1EB2-468D-B90E-4105D22EDE44

有些邮件客户端,像 Foxmail「下载」,本身设置里就能提供 SOCKS 服务器的设置,在 Foxmail 账户设置 – 高级 – 网络代理 里你就能发现。

最后再推荐一个软件 Proxifier,可以将没有提供代理设置的软件走 SOCKS 代理,但这个软件和今天的话题有些扯远了,后面我们会单独开一篇 Proxifier 的使用心得文章。

到网页端设置邮件转发

虽然说客户端不能用了,网页版的 Gmail 还依然健在(这不废话么,难道 Google 会让那帮混蛋给黑了?艹!),我们到网页版的 Gmail 设置里添加一个能收发邮件的「转发邮箱」地址即可,比如 iCloud,网易邮箱,Hotmail,Live 等等。

Cfakepathgmailforwardmail

其他一些参考技术资料

VPN和Sock5代理的区别

Shadowsocks 使用方法

用 Shadowsocks 来做 SOCKS5 代理
[转自]玩法儿

[Apache] apache 开启 gzip提高访问速度

为了提高网页浏览速度,我们可以在服务器的apache开启gzip压缩功能,这样压缩使网页更小,自然下载需要的时间就更少了,用户体验更佳。下面来介绍如何开启这个功能。
1、首先得确认apache是否已经加载了mod_deflate模块。

httpd -M

如何此模块不在列表中,可以参考这篇文章:如何安装加载mod_deflate模块。
https://www.centos.bz/2011/09/linux-apache-install-mod-deflate-module/
2、编译配置文件httpd.conf,增加支持gzip的文件类型,如下:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE text/html

3、重启httpd

service httpd restart

4,检验是否已经开启成功。

[LAMP] CentOS 源码编译安装LAMP(Apache MySQL PHP)

源码编译安装LAMP虽然过程繁琐,但可以根据自己PHP程序的需要配置相应的环境,非常的灵活。对于比较急于配置好LAMP的同学,可以使用lamp一键安装。
卸载yum或rpm安装的amp软件
在编译安装lamp之前,首先先卸载已存在的rpm包吧。

rpm -e httpd
rpm -e mysql
rpm -e php
yum -y remove httpd
yum -y remove php
yum -y remove mysql-server mysql
yum -y remove php-mysql

禁用SeLinux
selinux可能会致使编译安装失败,我们先禁用它。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config //永久禁用,需要重启生效
setenforce 0 //临时禁用,不需要重启

yum安装必要工具
1、安装编译工具gcc gcc-c++make automake autoconf kernel-devel
2、安装PHP所需依赖,如libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel等

yum -y install gcc gcc-c++  make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel  pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils   readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel

下载所需源码

apache:http://httpd.apache.org/
mysql:http://mysql.com/downloads/mysql/
php:http://php.net/downloads.php
phpmyadmin:http://www.phpmyadmin.net/home_page/downloads.php

我们这里选择的版本为:apache-2.2.22,mysql-5.1.62,php-5.2.17,phpmyadmin-3.4.10.2

cd /tmp
wget -c http://apache.ziply.com//httpd/httpd-2.2.22.tar.gz
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.64.tar.gz/from/http://mysql.he.net/
wget -c http://us2.php.net/get/php-5.2.17.tar.gz/from/am.php.net/mirror
wget -c http://iweb.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.10.2/phpMyAdmin-3.4.10.2-all-languages.tar.gz
tar xzf httpd-2.2.22.tar.gz
tar xzf mysql-5.1.62.tar.gz
tar xzf php-5.2.17.tar.gz
tar xzf phpMyAdmin-3.4.10.2-all-languages.tar.gz

安装apache2.2.22

cd /tmp/httpd-2.2.22
./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared  --enable-headers=shared --enable-rewrite=shared --enable-static-support
make
make install

编译参数解释:
–prefix=/usr/local/apache:指定安装目录
–with-included-apr:在编译时强制使用当前源代码中绑定的APR版本
–enable-so:允许运行时加载DSO模块
–enable-deflate=shared:将deflate模块编译为DSO
–enable-expires=shared:将expires模块编译为DSO
–enable-headers=shared:将headers模块编译为DSO
–enable-rewrite=shared:将rewrite模块编译为DSO
–enable-static-support:使用静态连接(默认为动态连接)编译所有二进制支持程序
更详细的编译参数解释:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html

cp build/rpm/httpd.init /etc/init.d/httpd //使用init脚本管理httpd
chmod 755 /etc/init.d/httpd //增加执行权限
chkconfig --add httpd  //添加httpd到服务项
chkconfig  httpd on   //设置开机启动
ln -fs /usr/local/apache/ /etc/httpd
ln -fs /usr/local/apache/bin/httpd /usr/sbin/httpd
ln -fs /usr/local/apache/bin/apachectl /usr/sbin/apachectl
ln -fs /usr/local/apache/logs /var/log/httpd //设置软链接以适应init脚本

安装mysql5.1.62

groupadd mysql
useradd -g mysql mysql
cd /tmp/mysql-5.1.62
./configure --prefix=/usr/local/mysql/ --localstatedir=/usr/local/mysql/data --without-debug --with-unix-socket-path=/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --with-pthread
make
make install

编译参数解释:
–prefix=/usr/local/mysql/:指定安装位置
–localstatedir=/usr/local/mysql/data:指定数据库文件位置
–without-debug:禁用调用模式
–with-unix-socket-path=/tmp/mysql.sock:指定sock文件位置
–with-client-ldflags=-all-static:
–with-mysqld-ldflags=-all-static:以纯静态方式编译服务端和客户端
–enable-assembler:使用一些字符函数的汇编版本
–with-extra-charsets=gbk,gb2312,utf8 :gbk,gb2312,utf8字符支持
–with-pthread:强制使用pthread库(posix线程库)
更多编译参数请执行./configure –help命令查看。

cp support-files/my-medium.cnf /etc/my.cnf //复制配置文件夹my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql  //初始化数据库
chown -R root.mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data 
cp /tmp/mysql-5.1.62/support-files/mysql.server /etc/rc.d/init.d/mysqld  //init启动脚本
chown root.root /etc/rc.d/init.d/mysqld 
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig  mysqld on
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
service mysqld start
/usr/local/mysql/bin/mysqladmin -u root password '新密码'   //设置root密码

安装PHP5.2.17
在编译php之前,先要解决两个问题:centos 6上libmcrypt的安装和可能有些系统找不到libiconv导致的错误。
1、centos 6官方源已经没有libmcrypt的rpm包,我们这里选择编译安装,当然你也可以导入第三方源安装(centos 5略过此步)。
下载源码:

cd /tmp
wget http://superb-dca2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget http://superb-dca2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
wget http://superb-sea2.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar xzf libmcrypt-2.5.8.tar.gz
tar xzf mhash-0.9.9.9.tar.gz
tar xzf mcrypt-2.6.8.tar.gz
//安装libmcrypt
cd /tmp/libmcrypt-2.5.8
./configure --prefix=/usr
make && make install
//安装libmcrypt
cd /tmp/mhash-0.9.9.9
./configure --prefix=/usr
make && make install
//安装mcrypt
/sbin/ldconfig //搜索出可共享的动态链接库
cd /tmp/mcrypt-2.6.8
./configure
make && make install
2、解决可能出现的libiconv错误。
cd /tmp
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xzf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
开始安装php-5.2.17:
cd /tmp/php-5.2.17
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --enable-bcmath --with-bz2 --with-curl --enable-ftp --with-gd --enable-gd-native-ttf --with-gettext --with-mhash --enable-mbstring --with-mcrypt --enable-soap --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --without-pear
make
make install
编译参数解释:
--prefix=/usr/local/php:设置安装路径
--with-apxs2=/usr/local/apache/bin/apxs:编译共享的 Apache 2.0 模块
--with-config-file-path=/etc:指定配置文件php.ini地址
--with-config-file-scan-dir=/etc/php.d:指定额外的ini文件目录
--with-openssl:编译OpenSSL支持
--with-zlib:编译zlib支持
--enable-bcmath:启用BC风格精度数学函数
--with-bz2:BZip2支持
--with-curl:CRUL支持
--enable-ftp:FTP支持
--with-gd:GD支持
--enable-gd-native-ttf:启用TrueType字符串函数
--with-gettext:启用GNU gettext支持
--with-mhash:mhash支持
--enable-mbstring:启用支持多字节字符串
--with-mcrypt:编译mcrypt加密支持
--enable-soap:SOAP支持
--enable-zip:启用zip 读/写支持
--with-iconv=/usr/local/libiconv:iconv支持
--with-mysql=/usr/local/mysql:启用mysql支持
--without-pear:不安装PEAR

更多编译参数解释参考http://www.php.net/manual/zh/configure.about.php或者./configure –help查看。

cp php.ini-dist /usr/local/php/etc/php.ini //复制配置文件php.ini
在/etc/httpd/conf/httpd.conf文件中加入php文件类型解析:
Addtype application/x-httpd-php .php

重启httpd:

service httpd restart

转自:https://www.centos.bz

[Apache] 安装eAccelerator

eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。类似的php加速器有:Xcache,APC等。下面是安装方法:

cd /usr/local/
wget http://jaist.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
unzip eaccelerator-0.9.6.1.zip
cd eaccelerator-0.9.6.1
export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize
./configure -enable-eaccelerator=shared -with-php-config=$PHP_PREFIX/bin/php-config
make && make install
cd /usr/local/
mkdir eaccelerator
chmod 0777 eaccelerator

加载eAccelerator,创建/usr/local/php/etc/php.ini文件,加入如下代码加载:

[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/usr/local/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

eaccelerator参数设置参考:http://www.centos.bz/2012/03/eaccelerator-parameter/
重启httpd生效:

service httpd restart