#!/bin/bash
# 说明:CentOS6.5_lnmp.sh 放在/data目录下执行
PCRE_MIRROR="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/";
PCRE_VERSION="pcre-8.39";
ZLIB_MIRROR="http://zlib.net/";
ZLIB_VERSION="zlib-1.2.10";
NGINX_MIRROR="http://nginx.org/download/";
NGINX_VERSION="nginx-1.9.15";
LIBMCRYPT_MIRROR="http://120.52.73.49/nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/";
LIBMCRYPT_VERSION="libmcrypt-2.5.8";
PHP_MIRROR="http://cn2.php.net/distributions/";
PHP_VERSION="php-5.6.29";
MYSQL_MIRROR="http://mirrors.sohu.com/mysql/MySQL-5.6/";
MYSQL_VERSION="mysql-5.6.35";
#安装目录配置
NGINX_DIR="/usr/local/nginx";
LIBMCRYPT_DIR="/usr/local/libmcrypt";
PHP_DIR="/usr/local/php";
MYSQL_DIR="/data/mysql";
if [ ! -d "/data/install" ]; then
mkdir -p /data/install;
fi
cd /data/install;
#安装编译环境
yum install -y gcc gcc-c++ gcc-devel g++ g++-devel;
yum install -y wget
yum install -y tar
if [ ! -d ${NGINX_DIR} ]; then
#1.编译nginx
#1.1 编译pcre
if [ ! -f ${PCRE_VERSION}.tar.gz ]; then
wget -c ${PCRE_MIRROR}${PCRE_VERSION}.tar.gz
fi
tar -xf ${PCRE_VERSION}.tar.gz
#1.2 编译zlib
if [ ! -f ${ZLIB_VERSION}.tar.gz ];then
wget -c ${ZLIB_MIRROR}${ZLIB_VERSION}.tar.gz
fi
tar -xf ${ZLIB_VERSION}.tar.gz
#1.3 编译nginx
if [ ! -f ${NGINX_VERSION}.tar.gz ]; then
wget -c ${NGINX_MIRROR}${NGINX_VERSION}.tar.gz
fi
tar -xf ${NGINX_VERSION}.tar.gz
cd ${NGINX_VERSION}
yum install -y openssl openssl-devel
./configure --sbin-path=${NGINX_DIR} --conf-path=${NGINX_DIR}/nginx.conf --pid-path=${NGINX_DIR}/nginx.pid --with-http_ssl_module --with-pcre=/data/install/${PCRE_VERSION} --with-zlib=/data/install/${ZLIB_VERSION}
make -j 4 && make install
cd ../
rm -rf /data/install/${PCRE_VERSION}
rm -rf /data/install/${ZLIB_VERSION}
rm -rf /data/install/${NGINX_VERSION}
fi
if [ ! -d "$PHP_DIR" ]; then
#2.编译php
#2.1安装依赖
yum install -y libxml2-devel
yum install -y bzip2-devel
yum install -y libcurl-devel
yum install -y libjpeg-devel libpng-devel freetype-devel
#2.2安装libmcrypt依赖
if [ ! -f ${LIBMCRYPT_VERSION}.tar.gz ]; then
wget -c ${LIBMCRYPT_MIRROR}${LIBMCRYPT_VERSION}.tar.gz
fi
if [ ! -d ${LIBMCRYPT_DIR} ]; then
tar -xf ${LIBMCRYPT_VERSION}.tar.gz
cd ${LIBMCRYPT_VERSION}
./configure --prefix=${LIBMCRYPT_DIR}
make -j 4 && make install
cd ../
fi
if [ ! -f ${PHP_VERSION}.tar.gz ];then
wget -c ${PHP_MIRROR}${PHP_VERSION}.tar.gz
fi
tar -xf ${PHP_VERSION}.tar.gz
cd ${PHP_VERSION}
./configure --prefix=${PHP_DIR} --with-config-file-path=${PHP_DIR}/etc --enable-fpm --with-mcrypt=/usr/local/libmcrypt --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysqli --with-mysql-sock --with-gd --enable-gd-native-ttf --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-png-dir=/usr/lib64 --enable-pdo --with-pdo-mysql --with-gettext --with-curl --enable-sockets --enable-bcmath --enable-xml --with-bz2 --enable-zip --enable-pcntl --enable-sysvmsg --enable-mysqlnd=mysqlnd --enable-calendar --enable-mbstring --enable-maintainer-zts
make -j 4 && make install
cd ../
rm -rf /data/install/${LIBMCRYPT_VERSION}
rm -rf /data/install/${PHP_VERSION}
fi
groupadd -f mysql
useradd -g mysql mysql
if [ ! -d "$MYSQL_DIR" ]; then
#3.编译mysql
#3.1安装依赖
yum install -y ncurses ncurses-devel
yum install -y cmake
if [ ! -f ${MYSQL_VERSION}.tar.gz ];then
wget -c ${MYSQL_MIRROR}${MYSQL_VERSION}.tar.gz
fi
tar -xf ${MYSQL_VERSION}.tar.gz
cd ${MYSQL_VERSION}
mkdir -p ${MYSQL_DIR}/data
chown -R mysql:mysql ${MYSQL_DIR}
cmake -DCMAKE_INSTALL_PREFIX=${MYSQL_DIR} -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=${MYSQL_DIR}/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=${MYSQL_DIR} -DEXTRA_CHARSETS=all -DDOWNLOAD_BOOST=1 -DWITH_BOOST=${MYSQL_DIR}/boost
make -j 4 && make install
rm -rf /data/install/${MYSQL_VERSION}
#配置数据库
cd ${MYSQL_DIR}
./scripts/mysql_install_db --basedir="${MYSQL_DIR}" --datadir="${MYSQL_DIR}/data"
chown -R mysql:mysql ${MYSQL_DIR}/data/
cp ${MYSQL_DIR}/support-files/mysql.server /etc/init.d/mysql
#将mysql服务加入chkconfig管理列表 ,然后就可以用service进行操作,如果要开机自启再执行 chkconfig mysql on
chkconfig /etc/init.d/mysql
service mysql start
#软链接(快捷方式)
ln -s ${MYSQL_DIR}/bin/mysql /bin/mysql
ln -s ${MYSQL_DIR}/bin/mysqldump /bin/mysqldump
fi