lnmp+FastCGI平台搭建脚本

本脚本主要介绍lnmp+FastCGI平台的搭建脚本,需要准备的安装包如下:

cmake-2.8.10.2.tar.gz

libevent-2.0.21-stable.tar.gz

libmcrypt-2.5.8.tar.gz

mhash-0.9.9.9.tar.gz

nginx-1.2.0.tar.gz

php-5.4.9.tar.gz
libiconv-1.13.tar.gz

mysql-5.5.13.tar.gz

由于脚本需要,将上述安装包统一打包为lnmp+memcached.zip,使用时将该脚本放在该安装包相同的目录。

先安装依赖包,需要将yum源配好,在这里不再赘述,接下来是脚本内容:

#!/bin/bash
echo "++++++++++++++++++++++++++++++++++++++++++"
echo "+                  检查yum仓库配置                     +"
echo "++++++++++++++++++++++++++++++++++++++++++"
yum clean all > /dev/null
yum list > /dev/null
if [ $? -eq 0 ];then
    echo  "yum仓库配置正常"
    sleep 1
else
    echo "yum仓库配置异常,请检查yum配置"
fi
echo "++++++++++++++++++++++++++++++++++++++++++"
echo "+           安装依赖软件包                +"
echo "++++++++++++++++++++++++++++++++++++++++++"
yum -y install gcc gcc-c++ autoconf automake bison flex freetype freetype-devel fontconfig-devel gettext-devel libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel libtool libtool-ltdl libtool-ltdl-devel libtiff-devel libXpm-devel libicu libicu-devel libidn libidn-devel libxslt libxslt-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 openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel pam-devel vim-enhanced mysql-devel

unzip lnmp+memcached.zip

installnginx() {
read -p "即将开始安装nginx,是否开始安装?(Y/N)" command_nginx_install
if [ $command_nginx_install == N ] || [ $command_nginx_install == n ];then
    echo "安装已取消!"
    exit
elif [ $command_nginx_install == Y ] || [ $command_nginx_install == Y ];then
    echo "安装正在开始……"
    sleep 2
fi
cd lnmp+memcached
useradd -s /sbin/nologin -M nginx
tar -zxf nginx-1.2.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.2.0/
 ./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/nginx.pid --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/client --http-proxy-temp-path=/usr/local/nginx/proxy --http-fastcgi-temp-path=/usr/local/nginx/fcgi --http-uwsgi-temp-path=/usr/local/nginx/uwsgi --http-scgi-temp-path=/usr/local/nginx/scgi --with-pcre
if [ $? -eq 0 ];then
    echo "配置完成,准备编译安装"
else
    echo "配置失败,请检查"
    exit
fi
make && make install
if [ $? -eq 0 ];then
    echo "nginx安装完成"
else
    echo "nginx安装失败,请检查"
    exit
fi
}
installmysql() {
echo "##############################"
echo "#    开始安装mysql数据库……   #"
echo "##############################"
read -p "即将开始安装mysql数据库,是否继续?(Y/N)" command_mysql_install
if [ $command_mysql_install == N ] || [ $command_mysql_install == n ];then
    echo "安装已取消!"
    exit
elif [ $command_mysql_install == Y ] || [ $command_mysql_install == Y ];then
    echo "安装正在开始……"
    sleep 2
fi
cd /root/lnmp+memcached
useradd -s /sbin/nologin -M mysql
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "~           安装cmake工具            ~"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
tar -zxf cmake-2.8.10.2.tar.gz -C /usr/src/
cd /usr/src/cmake-2.8.10.2/
./bootstrap --prefix=/usr/local/cmake
make && make install
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "~           安装mysql数据库          ~"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
cd /root/lnmp+memcached
tar -zxf mysql-5.5.13.tar.gz -C /usr/src/
cd /usr/src/mysql-5.5.13/
/usr/local/cmake/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
if [ $? -eq 0 ];then
    echo "配置完成,即将开始编译安装"
else
    echo "配置失败,请检查!"
    exit
fi
make && make install
if [ $? -eq 0 ];then
    echo "mysql安装完成,准备初始化"
else
    echo "mysql安装失败,请检查!"
    exit
fi
cd /usr/local/mysql/
chown -R mysql.mysql .
./scripts/mysql_install_db --user=mysql
cd /usr/src/mysql-5.5.13/support-files/
cp my-medium.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start > /dev/null
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql
export PATH=/usr/local/mysql/bin/:$PATH
echo "export   PATH=/usr/local/mysql/bin:$PATH" >> /etc/bashrc
echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
ldconfig
if [ $? -eq 0 ];then
    echo "mysql初始化完成"
else
    echo "mysql初始化失败,请检查!"
    exit
fi
}
installphp() {
echo "##############################"
echo "#       开始安装PHP服务        #"
echo "##############################"
read -p "即将安装PHP服务,是否继续?(Y/N)" command_php_install
if [ $command_php_install == n ] || [ $command_php_install == N ];then
    echo "安装取消"
    exit
elif [ $command_php_install == y ] || [ $command_php_install == Y ];then
    cd /root/lnmp+memcached
    echo "开始安装PHP"
fi
echo "##############################"
echo "#        安装PHP的依赖包        #"
echo "##############################"
tar -zxf mhash-0.9.9.9.tar.gz -C /usr/src
cd /usr/src/mhash-0.9.9.9
./configure
make && make install
if [ $? -eq 0 ];then
    echo "mhash安装完成"
else
    echo "mhash安装失败"
    exit
fi
sleep 2
cd /root/lnmp+memcached
tar -zxf libmcrypt-2.5.8.tar.gz -C /usr/src
cd /usr/src/libmcrypt-2.5.8
./configure
make && make install
cd libltdl/
./configure --with-gmetad --enable-gexec –enable-ltdl-install
make && make install
if [ $? -eq 0 ];then
        echo "libmcrypt安装完成"
else
        echo "libmcrypt安装失败"
        exit
fi
sleep 2
cd /root/lnmp+memcached
tar -zxf libiconv-1.13.tar.gz -C /usr/src
cd /usr/src/libiconv-1.13
./configure
make && make install
if [ $? -eq 0 ];then
        echo "libconv安装完成"
else
        echo "libconv安装失败"
        exit
fi
sleep 2
cd /root/
ln -sv /usr/local/lib/libmcrypt* /usr/lib/
ln -sv /usr/local/lib/libmhash.* /usr/lib/
ldconfig -v
echo "##############################################"
echo "#                开始安装PHP主程序                 #"
echo "##############################################"
cd /root/lnmp+memcached
tar -zxf php-5.4.9.tar.gz -C /usr/src/
cd /usr/src/php-5.4.9
./configure --prefix=/usr/local/php5nginx --with-config-file-path=/usr/local/php5nginx/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
if [ $? -eq 0 ];then
    echo "php配置完成"
else
    echo "php配置失败,请检查!"
    exit
fi
make ZEND_EXTRA_LIBS=‘-liconv‘
make install
if [ $? -eq 0 ];then
    echo "php安装完成,准备初始化"
else
    echo "php安装失败,请检查!"
    exit
fi
cp php.ini-production /usr/local/php5nginx/etc/php.ini
cp /usr/local/php5nginx/etc/php-fpm.conf.default /usr/local/php5nginx/etc/php-fpm.conf
cd /usr/src/php-5.4.9/sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
service php-fpm start
if [ $? -eq 0 ];then
    echo "php初始化完成"
else
    echo "php初始化失败,请检查!"
    exit
fi
}

case $1 in
nginx)
    installnginx ;;
mysql)
    installmysql ;;
php)
    installphp ;;
lnmp)
    installnginx
    installmysql
    installphp ;;
*)
    echo "本脚本可安装nginx、mysql、php以及整体搭建lnmp平台,请输入要安装的服务。例如:sh nginx.sh lnmp";;
esac

该脚本使用时可以给脚本添加执行权限:

chmod +x lnmp.sh

此时直接使用./lnmp.sh 安装部分 即可执行安装,注意,此脚本需要指定要安装的部分,比如要安装mysql,则在执行时候输入./lnmp.sh mysql。

若在一台裸机上安装lnmp平台,则可以使用./lnmp.sh lnmp来全部搭建lnmp平台。

由于我们在安装时可能多次执行脚本,所以我们可以将脚本中使用yum安装部分单独保存为一个脚本,或者封装为一个函数,在脚本后添加一个case来调用。

时间: 2024-08-28 12:30:49

lnmp+FastCGI平台搭建脚本的相关文章

源码包编译搭建LNMP+FastCGI平台

源码包编译搭建LNMP+FastCGI平台 搭建环境: CentOS 6.5 软件包版本: nginx-1.2.0.tar.gz mysql-5.5.13.tar.gz php-5.4.9.tar.gz PHP依赖包: mhash-0.9.9.9.tar.gz libiconv-1.13.tar.gz libmcrypt-2.5.8.tar.gz libevent-2.0.21-stable.tar.gz IP地址设置: server:10.21.1.80 client:10.21.1.81 一

LNMP平台搭建脚本

#!/bin/bash #auto make install LNMP #by authors zhang 2016 #Nginx define path variable N_FILES=nginx-1.6.0.tar.gz N_FILES_DIR=nginx-1.6.0 N_PREFIX=/usr/local/nginx/ #mysql define path variable M_FILES=mysql-5.5.22.tar.gz M_FILES_DIR=mysql-5.5.22 M_PR

LNMP网站平台搭建

一.搭建LNMP平台 案例需求:在ip地址 192.168.1.10的服务器上搭建LNMP平台 系统环境准备: 配置固定Ip地址.关闭 iptables     selinux 配置yum源 安装开发库软件包组   和  开发工具软件包组 编译工具   gcc  gcc-c++   make service   httpd stop;chkconfig  --level  35 httpd  off LNMP简介 LNMP  是网站运行平台 L    Linux操作系统   (RHEL5   )

LAMP平台搭建脚本

#!/bin/bash DATE=`date +%F_%T` #源码包编译安装搭建LAMP平台的. #本脚本所需软件包:cmake-2.8.11.2.tar.gz   mysql-5.5.22.tar.gz #httpd-2.2.17.tar.gz     php-5.3.28.tar.gz #libmcrypt-2.5.7.tar.gz  phpMyAdmin-4.2.5-all-languages.tar.gz #mcrypt-2.6.8.tar.gz     ZendGuardLoader

LNMP平台搭建---Nginx安装篇

在上一篇博文<LNMP平台搭建---Linux系统安装篇>中,我们安装了CentOS版本的Linux操作系统,现在,我们来安装一个Web服务器,大标题写着LNMP,其中的N就是Nginx,开始安装前,先大致了解一下Nginx这个后起之秀的Web服务器吧. Nginx第一次正式发布是在2004年10月,它是一款免费开源的高性能HTTP服务器和反向代理服务器,并且可作为邮件服务器,在它的官网:http://www.nginx.org 可以了解更多,当前最新的稳定版本是1.10.2,12年来,在全世

LNMP平台搭建---MySQL安装篇

在前两篇中,安装了一个基本的Web服务器,但是只能提供静态网页查看,要做成动态网站,就必须要数据库或其他编程语言支持了,这里先介绍MySQL数据库的安装. MySQL是一个开源的数据库,在互联网行业应用的很广泛,下面来记录一下从源码安装的步骤,当然,MySQL也有其他安装方式,比如,使用yum下载安装rpm包,或者二进制方式安装,如果机器比较多,可以自己搭建yum源,然后定制rpm包,这样更方便于使用ssh多机自动安装. 源码安装的mysql版本为5.5.32,使用cmake编译安装,下面开始记

大数据平台一键安装OS【搭建脚本篇】

定制化大数据平台一键安装OS 大数据平台一键安装OS系列 大数据平台一键安装OS[定制化OS镜像制作] 搭建脚本篇 脚本命名随便,只要能看懂就行 镜像包说明 os1.1.iso 用于安装服务端和客户端操作系统 hdp.iso 用于安装hdp服务 1.架构图: 服务端 客户端 2.原理分析 安装系统-安装本地yum源-安装http源-安装并配置ntp服务-配置秘钥-安装jdk-安装mysql-编译安装ambari平台 3.服务端脚本分析 (1)create_local_yum.sh #安装本地yu

LNMP平台搭建---Linux系统安装篇

在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更高的并发性,系统资源利用率更高,在市场上的占有率也逐步提升,在Netcraft网站上看到的数据,在1995年到2015年间,每种服务器的使用趋势: 可以看到,Apache依然是最受欢迎的Web服务器,Nginx属于后起之秀,很快占有市场.Nginx的几大特点如下: 1. 对静态资源的高速并发缓存和访

基于rhel7.2的Zabbix平台搭建和部署(一)

基于rhel7.2的zabbix平台搭建和部署(一) 一.实验环境: (1)虚拟机:rhel7.2 x86_64 (2)数据库:mysql5.7.13 (3)nginx1.10.2 (4)PHP5.6.27 (5)zabbix 二.安装编译工具及库文件 [[email protected] ~]# yum-y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel ke