#!/bin/sh
#Author:王康
#Date:2012-01-12 02:00:00
#Description:版本针对64位系统,操作系统为CentOS6.2
#复制yum更新文件#####################################################################
#安装依赖库和开发工具#################################################################
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
#安装Nginx库#########################################################################
yum -y install pcre-devel zlib-devel
#安装PHP库###########################################################################
yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel
#安装MySQL库#########################################################################
yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel*
#安装cmake###########################################################################
cd /home/soft
tar -zxvf cmake-2.8.7.tar.gz
cd cmake-2.8.7
./configure
gmake
gmake install
#添加MYSQL用户#######################################################################
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
#创建安装目录########################################################################
mkdir -p /usr/local/webserver/mysql/data
#设置binlog#########################################################################
mkdir /usr/local/webserver/mysql/mysql-bin
chown -R mysql:mysql /usr/local/webserver/mysql/mysql-bin
#目录授权############################################################################
chown -R mysql:mysql /usr/local/webserver/mysql/data
# 添加MYSQL用户######################################################################
cd /home/soft
MAKE_RUN=$(($(more /proc/cpuinfo | grep processor | wc -l) + 1))
tar -zxvf mysql-5.5.20.tar.gz
cd mysql-5.5.20
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/\
-DMYSQL_DATADIR=/usr/local/webserver/mysql/data/\
-DEXTRA_CHARSETS=all\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DSYSCONFDIR=/etc/\
-DWITH_DEBUG=0
make -j ${MAKE_RUN}
make install
#初始化权限表#######################################################################
rm -f /etc/my.cnf
cd /home/soft
cp my.cnf /etc/my.cnf
cd /usr/local/webserver/mysql
./scripts/mysql_install_db --user=mysql
#开启mysql##########################################################################
#/usr/local/webserver/mysql/bin/mysqld_safe &
#设置数据库配置######################################################################
rm -f /etc/rc.d/init.d/mysql
cp /usr/local/webserver/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 700 /etc/rc.d/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
chkconfig --list mysql
#设置环境变量#######################################################################
echo "export PATH=$PATH:/usr/local/webserver/mysql/bin">>/etc/profile
source /etc/profile
#更改密码###########################################################################
#/etc/init.d/mysql restart
#/usr/local/webserver/mysql/bin/mysqladmin -uroot password root
#mysql -uroot -proot
#Grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
#flush privileges;
#exit;
###################################################################################
###################################################################################
#安装libiconv扩展###################################################################
cd /home/soft
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/
make
make install
#安装libmcrypt扩展###################################################################
cd /home/soft
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
/sbin/ldconfig
cd libltdl
./configure --enable-ltdl-install
make
make install
#安装mhash扩展######################################################################
cd /home/soft
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
#加载软连接#########################################################################
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
#安装mcrypt扩展######################################################################
cd /home/soft
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
/sbin/ldconfig
./configure
make
make install
#增加软连接 ,防止出现make: *** [ext/phar/phar.php] 错误 127############################
ln -s /usr/local/bin/libiconv.so /usr/bin/libiconv.so
ln -s /usr/local/bin/libiconv.so.2 /usr/bin/libiconv.so.2
ln -s /usr/local/webserver/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so
ln -s /usr/local/webserver/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
#添加www组和www用户##################################################################
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /var/log/nginx
chmod +w /var/log/nginx
chown -R www:www /var/log/nginx
mkdir -p /hotdoc/demo.com/www
mkdir -p /hotdoc/1.uuzu.com/cdn
mkdir -p /hotdoc/1.uuzu.com/s1
chmod +w /hotdoc
chown -R www:www /hotdoc
cd /home/soft
cp index.php /hotdoc/demo.com/www
cp index.php /hotdoc/1.uuzu.com/cdn
cp index.php /hotdoc/1.uuzu.com/s1
#安装PHP#############################################################################
cd /home/soft
tar -zxvf php-5.3.10.tar.gz
cd php-5.3.10
cp -frp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/usr/local/webserver/php/\
--with-config-file-path=/usr/local/webserver/php/etc/\
--with-iconv-dir=/usr/local/\
--with-freetype-dir\
--with-mysql=/usr/local/webserver/mysql/\
--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config\
--with-jpeg-dir\
--with-png-dir\
--with-zlib\
--with-mhash\
--enable-sockets\
--enable-ftp\
--with-libxml-dir\
--enable-xml\
--disable-rpath\
--enable-safe-mode\
--enable-bcmath\
--enable-shmop\
--enable-sysvsem\
--enable-inline-optimization\
--with-curl\
--with-curlwrappers\
--enable-mbregex\
--enable-mbstring\
--with-mcrypt\
--with-gd\
--enable-gd-native-ttf\
--with-openssl\
--with-mhash\
--enable-pcntl\
--enable-sockets\
--with-ldap\
--with-ldap-sasl\
--enable-fpm\
--with-xmlrpc\
--enable-zip\
--enable-soap\
--enable-sysvmsg\
--without-pear
make ZEND_EXTRA_LIBS='-liconv'
make install
cd /home/soft
cp php.ini /usr/local/webserver/php/etc/php.ini
echo "export PATH=$PATH:/usr/local/webserver/php/bin">>/etc/profile
source /etc/profile
cd /home/soft
rm -f /usr/local/webserver/php/etc/php-fpm.conf
cp php-fpm.conf /usr/local/webserver/php/etc/php-fpm.conf
#检查语法是否正确
#/usr/local/webserver/php/sbin/php-fpm -t
#出现NOTICE: configuration file /usr/local/webserver/php/etc/php-fpm.conf test is successful 测试成功
#/usr/local/webserver/php/sbin/php-fpm &
#安装PHP常用扩展#####################################################################
cd /home/soft/php-5.3.10
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 700 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --level 345 php-fpm on
chkconfig --list php-fpm
#安装libevent-2.0.16-stable.tar.gz###################################################
cd /home/soft
tar -zxvf libevent-2.0.16-stable.tar.gz
cd libevent-2.0.16-stable
./configure --prefix=/usr/
make
make install
#安装Memcached#######################################################################
cd /home/soft
tar -zxvf memcached-1.4.10.tar.gz
cd memcached-1.4.10
./configure --with-libevent=/usr
make
make install
ln -s /usr/lib/libevent* /usr/lib64/
/usr/local/bin/memcached -d -l 127.0.0.1 -p 11211 -u nobody -m 200 -c 1024 -P /tmp/memcached.pid
#设置自动启动#########################################################################
rm -f /etc/init.d/memcached
cd /home/soft
cp memcached /etc/init.d/memcached
chmod 711 /etc/init.d/memcached
chkconfig --add memcached
chkconfig --level 345 memcached on
chkconfig --list memcached
#安装MemcahePHP的扩展#################################################################
cd /home/soft
tar -zxvf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-zlib-dir --enable-memcache
make
make install
# 安装ZEND扩展
cd /home/soft
tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64
mkdir -p /usr/local/webserver/php/lib/php/extensions/Zend
cp -R php-5.3.x /usr/local/webserver/php/lib/php/extensions/Zend/
cd /home/soft
tar -zxvf xcache-1.3.2.tar.gz
cd xcache-1.3.2
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --enable-xcache --enable-xcache-assembler
make
make install
# 安装Redis服务端
cd /home/soft
tar -zxvf redis-2.4.5.tar.gz
cd redis-2.4.5
make
make PREFIX=/usr/local/webserver/redis install
# 设置Redis服务端
cd /home/soft
rm -f /etc/redis/redis.conf
rm -rf /etc/redis/
mkdir /etc/redis
mkdir -p /var/lib/redis
cp redis.conf /etc/redis/redis.conf
# 防止Redis脚本在重启或停止报错
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
# 设置自动启动
cd /home/soft
rm -f /etc/init.d/redis
cp redis /etc/init.d/redis
# 启动Redis
chmod 755 /etc/init.d/redis
chkconfig --add redis
chkconfig --level 345 redis on
chkconfig --list redis
# 安装PHPRedis扩展
cd /home/soft
tar -zxvf phpredis-2.1.3.tar.gz
cd phpredis
#根据PHP实际安装路径进行设置
/usr/local/webserver/php/bin/phpize
./configure -with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
mkdir -p /var/local/webserver/nginx/logs
chmod +w /var/local/webserver/nginx/logs
chown -R www:www /var/local/webserver/nginx/logs
# 安装pcre-8.21
cd /home/soft
tar zxf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install
# 安装Nginx
cd /home/soft
tar zxf nginx-1.1.12.tar.gz
cd nginx-1.1.12
./configure \
--user=www\
--group=www\
--prefix=/usr/local/webserver/nginx\
--sbin-path=/usr/local/webserver/nginx/sbin/nginx\
--conf-path=/usr/local/webserver/nginx/conf/nginx.conf\
--with-http_stub_status_module\
--with-http_ssl_module\
--with-pcre\
--lock-path=/var/run/nginx.lock\
--pid-path=/var/run/nginx.pid
make
make install
cd /home/soft
mv /usr/local/webserver/nginx/conf/nginx.conf /usr/local/webserver/nginx/conf/nginx.conf.old
cp nginx.conf /usr/local/webserver/nginx/conf/
cp -R vhosts /usr/local/webserver/nginx/conf/
rm -f /usr/local/webserver/nginx/conf/fastcgi_params
cp fastcgi_params /usr/local/webserver/nginx/conf/fastcgi_params
#自动启动
cd /home/soft
rm -f /etc/init.d/nginx
cp nginx /etc/init.d/
chmod 711 /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 345 nginx on
#开启防火墙
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 433 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 9090 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 843 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 57522 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
#聊天库
ln -s /usr/lib64/libcurl.so /usr/lib64/libcurl.so.3
#重启所有服务器
/etc/init.d/nginx restart
/etc/init.d/php-fpm restart
/etc/init.d/mysql restart
/etc/init.d/memcached restart
/etc/init.d/redis restart