59519751 发表于 2015-11-16 11:57:39

LNMP一键自动安装脚本


​此脚本以在任何一台有网络的服务器上自动配置LNMP



使用方法:将inst_lnmp代码保存一个文件,例如inst_lnmp.sh 上传到服务器上执行。

此脚本在CentOS 6.0X864环境下通过。

参考文章 http://os.iyunv.com/art/201110/295713.htm






[*]#!/bin/bash
[*]#set -x
[*]#date: 2013-01-06
[*]#Description: 一键安装LNMP环境
[*]#Version: 0.1
[*]#Author: Wolf
[*]#定义命令搜索路径
[*]PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
[*]export PATH
[*]
[*]src_dir=/usr/src
[*]nginx_dir=/usr/local/nginx
[*]mysql_dir=/usr/local/mysql
[*]php_dir=/usr/local/php
[*]libmcrypt_dir=/usr/local/libmcypt
[*]#关闭SELiunx
[*]echo "Disabled SELinux"
[*]if [ -s /etc/selinux/config ]
[*]then
[*]sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[*]fi
[*]/usr/sbin/setenforce 0
[*]# Check if useris root
[*]if [ "$UID" -ne 0 ]
[*]then
[*]    printf "Error: You must be root to run this script!\n"
[*]    exit 1
[*]fi
[*]
[*]    useradd -s /sbin/nologin mysql
[*]
[*]#检查需要的软件包是否存在,如果没有就下载。
[*]download_src(){
[*]cd $src_dir
[*]if [ -s libiconv-1.13.1.tar.gz ]
[*]then
[*]    echo "libiconv-1.13.1.tar.gz found"
[*]else
[*]    echo "libiconv-1.13.1.tar.gz not found. download new...."
[*]    wget http://mozbuildtools.googlecode.com/files/libiconv-1.13.1.tar.gz
[*]fi
[*]if [ -s mhash-0.9.9.9.tar.gz ]
[*]then
[*]    echo "mhash-0.9.9.9.tar.gz found"
[*]else
[*]    echo "mhash-0.9.9.9.tar.gz not found. download new....."
[*]    wget http://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz
[*]fi
[*]if [ -s mysql-5.5.25a.tar.gz ]
[*]then
[*]    echo "mysql-5.5.25a.tar.gz found"
[*]else
[*]    echo "mysql-5.5.25a.tar.gz not found. download new....."
[*]    wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz   
[*]fi
[*]if [ -s php-5.3.13.tar.gz ]
[*]then
[*]    echo "php-5.3.13.tar.gz found"
[*]else
[*]    echo "php-5.3.13.tar.gz not found. download new....."
[*]    wget http://cn2.php.net/distributions/php-5.3.13.tar.gz   
[*]fi
[*]if [ -s google-perftools-1.6.tar.gz ]
[*]then
[*]    echo "google-perftools-1.6.tar.gz found"
[*]else
[*]    echo "google-perftools-1.6.tar.gz not found. download new....."
[*]    wget http://gperftools.googlecode.com/files/google-perftools-1.6.tar.gz
[*]fi
[*]if [ -s cmake-2.8.4.tar.gz ]
[*]then
[*]    echo "cmake-2.8.4.tar.gz found......"
[*]else
[*]    echo "cmake-2.8.4.tar.gz not found. download new....."
[*]    wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
[*]fi
[*]if [ -s nginx-1.3.10.tar.gz ]
[*]then
[*]    echo "nginx-1.3.10.tar.gz found."
[*]else
[*]    echo "nginx-1.3.10.tar.gz not found. download new...."
[*]    wget http://www.nginx.org/download/nginx-1.3.10.tar.gz
[*]fi
[*]if [ -s libmcrypt-2.5.7.tar.gz ]
[*]then
[*]    echo "libmcrypt-2.5.7.tar.gz found"
[*]else
[*]    echo "libmcrypt-2.5.7.tar.gz not found. download new..."
[*]    wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/Production/libmcrypt-2.5.7.tar.gz
[*]fi
[*]if [ -s memcache-2.2.5.tgz ]
[*]then
[*]    echo "memcache-2.2.5.tgz found"
[*]else
[*]    echo "memcache-2.2.5.tgz not found. download new......"
[*]    wget http://vps.googlecode.com/files/memcache-2.2.5.tgz
[*]fi
[*]if [ -s eaccelerator-0.9.5.3.tar.bz2 ]
[*]then
[*]    echo "eaccelerator-0.9.5.3.tar.bz2 found"
[*]else
[*]    echo "eaccelerator-0.9.5.3.tar.bz2 not found. download new.."
[*]    wget http://autosetup1.googlecode.com/files/eaccelerator-0.9.5.3.tar.bz2
[*]fi
[*]if [ -s ImageMagick.tar.gz ]
[*]then
[*]    echo "ImageMagick.tar.gz found"
[*]else
[*]    echo "ImageMagick.tar.gz not found. download nrw."
[*]    wget http://www.imagemagick.org/download/ImageMagick.tar.gz
[*]fi
[*]if [ -s imagick-2.3.0.tgz ]
[*]then
[*]    echo "imagick-2.3.0.tgz found"
[*]else
[*]    echo"imagick-2.3.0.tgz not found. download new"
[*]    wget http://lnmpp.googlecode.com/files/imagick-2.3.0.tgz
[*]fi
[*]}
[*]#初始化服务器
[*]init_server(){
[*]for src in dialog ntp vim-enhanced vixie-cron gcc gcc-c++ gcc-g77 flex bison autoconf automake glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libtool* zlib-devel libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel net-snmp net-snmp-devel nss_ldap openldap-clients openldap-servers libtidy libtidy-devel wget libc-client libc-client-devel pcre pcre-devel
[*]do
[*]    yum -y install $src
[*]done
[*]ln -s /usr/lib64/libc-client.so* /usr/lib/
[*]ln -s /usr/lib64/libldap* /usr/lib
[*]}
[*]
[*]
[*]#先检测mysql是否已经安装,如果已经安装了就不再安装,如果没安装就安装mysql
[*]inst_mysql(){
[*]
[*]    tar zxvf cmake-2.8.4.tar.gz
[*]    cd $src_dir/cmake-2.8.4
[*]    ./configure && make && make install   
[*]if ( -d $mysql_dir )
[*]then
[*]    echo "MySQL is installed"
[*]else
[*]    echo "MySQL not install. install run..."
[*]    cd $src_dir
[*]    tar zxvf mysql-5.5.25a.tar.gz
[*]    cd mysql-5.5.25a
[*]    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=yes-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=on
[*]    gmake && make install
[*]fi
[*]if ( -f /ect/my.cnf )
[*]then
[*]    echo "MySQL config file my.cnf found. backup my.cnf to my.cnf.bak"
[*]    mv /etc/my.cnf /etc/my.cnf.bak
[*]    /bin/cp support-files/my-small.cnf /etc/my.cnf
[*]    /bin/cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[*]    chmod 755 /etc/rc.d/init.d/mysqld
[*]fi
[*]/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=root --defaults-file=/etc/my.cnf
[*]}
[*]
[*]inst_libmcypt(){
[*]if ( -d $libmcrypt_dir )
[*]then
[*]      echo "libmcrypt is installed."
[*]else
[*]      cd $src_dir
[*]      tar zxvf libmcrypt-2.5.7.tar.gz
[*]      cd libmcrypt-2.5.7
[*]      ./configure --prefix=/usr/local/libmcypt && make && make install
[*]    /sbin/ldconfig
[*]    cd libltdl/
[*]    ./configure --enable-ltdl-install
[*]    make
[*]    make install
[*]fi
[*]cd $src_dir
[*]tar zxf mhash-0.9.9.9.tar.gz
[*]cd mhash-0.9.9.9/
[*]./configure
[*]make
[*]make install
[*]ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
[*]ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
[*]ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
[*]ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
[*]ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
[*]}
[*]#先检测PHP是否已经编译安装,如果安装了就不再进行安装,如果没安装就安装PHP
[*]inst_php(){
[*]cd $src_dir
[*]tar zxf libiconv-1.13.1.tar.gz
[*]cd libiconv-1.13.1/
[*]./configure --prefix=/usr/local
[*]make
[*]make install
[*]cd $src_dir
[*]if ( -d $php_dir)
[*]then
[*]    echo "PHP is installed"
[*]else
[*]    echo "PHP not install. install run...."
[*]    cd $src_dir
[*]    tar zxvf php-5.3.13.tar.gz
[*]    cd php-5.3.13
[*]    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql/bin/mysql_config --with-enable-sysvsem --enable-fpm --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir=/usr --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --enable-gd-jis-conv --without-iconv --with-ldap --with-mcrypt=/usr/local/libmcypt --with-zlib-dir --with-snmp --enable-zip --with-curlwrappers --with-imap --with-kerberos --with-imap-ssl --with-freetype-dir --with-mysql=/usr/local/mysql
[*]    make && make install
[*]    cp php.ini-development /usr/local/php/lib/php.ini
[*]    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[*]fi
[*]}
[*]#安装PHP扩展
[*]inst_php_ex(){
[*]cd $src_dir
[*]tar zxf memcache-2.2.5.tgz
[*]cd memcache-2.2.5/
[*]${php_dir}/bin/phpize
[*]./configure --with-php-config=${php_dir}/bin/php-config
[*]make
[*]make install
[*]cd ../
[*]
[*]tar jxf eaccelerator-0.9.5.3.tar.bz2
[*]cd eaccelerator-0.9.5.3
[*]${php_dir}/bin/phpize
[*]./configure --enable-eaccelerator=shared --with-eaccelerator-shared-memory --with-php-config=${php_dir}/bin/php-config
[*]make
[*]make install
[*]cd $src_dir
[*]
[*]tar zxf ImageMagick.tar.gz
[*]cd ImageMagick-6.8.1-9/
[*]./configure
[*]make
[*]make install
[*]cd ../
[*]tar zxf imagick-2.3.0.tgz
[*]cd imagick-2.3.0/
[*]${php_dir}/bin/phpize
[*]./configure --with-php-config=${php_dir}/bin/php-config
[*]make
[*]make install
[*]cd ..
[*]echo "php extension installed successfully!"
[*]}
[*]#安装nginx
[*]inst_nginx(){
[*]cd $src_dir
[*]tar zxf google-perftools-1.6.tar.gz
[*]cd google-perftools*
[*]./configure
[*]make
[*]make install
[*]cd $src_dir
[*]
[*]if ( -d $nginx_dir )
[*]then
[*]    echo "Nginx is installed"
[*]else
[*]    cd $src_dir
[*]    tar zxvf nginx-1.3.10.tar.gz
[*]    cd nginx-1.3.10
[*]    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_stub_status_module
[*]    make && make install      
[*]fi
[*]}
[*]#生成一个PHP启动脚本,可以用service phpd start | restart | stop | show 进行启动、重启、关闭、查看运行状态
[*]phpd(){
[*]cat <<EOF >>phpd
[*]#!/bin/bash   
[*]#Author: wolf
[*]#Date: 2013-01-03
[*]#   
[*]#chkconfig: - 85 15   
[*]#processname: php
[*]php=/usr/local/php/sbin/php-fpm   
[*]conf=/usr/local/php/etc/php-fpm.conf   
[*]case $1 in
[*]       start)   
[*]            echo -n &quot;Starting php&quot;
[*]            $php   
[*]            echo &quot; done&quot;
[*]       ;;   
[*]      stop)   
[*]            echo -n &quot;Stopping php&quot;
[*]            killall -9 php-fpm   
[*]            echo &quot; done&quot;
[*]       ;;   
[*]      restart)   
[*]                $0 stop   
[*]                $0 start   
[*]       ;;   
[*]       show)   
[*]            ps -aux|grep php   
[*]       ;;   
[*]       *)   
[*]            echo -n &quot;Usage: $0 {start|restart|reload|stop|test|show}&quot;
[*]       ;;   
[*]esac
[*]EOF
[*]if [ -f phpd ]
[*]then
[*]    /bin/cp phpd /etc/rc.d/init.d/phpd
[*]    chmod &#43;x /etc/rc.d/init.d/phpd
[*]fi
[*]}
[*]#生成nginx启动脚本,可以用service nginxd start | restart | stop | reload | test | show 进行重启、关闭、启动>、测试配置文件、查看状态和重新加载。
[*]nginxd(){
[*]cat <<EOF >>nginxd
[*]#!/bin/bash   
[*]#Author: wolf
[*]#Date: 2013-01-03
[*]#   
[*]#chkconfig: - 85 15   
[*]#description: Nginx is a World Wide Web server.   
[*]#processname: nginx   
[*]nginx=/usr/local/nginx/sbin/nginx   
[*]conf=/usr/local/nginx/conf/nginx.conf   
[*]case $1 in
[*]       start)   
[*]            echo -n &quot;Starting Nginx&quot;
[*]            $nginx -c $conf   
[*]            echo &quot; done&quot;
[*]       ;;   
[*]      stop)   
[*]            echo -n &quot;Stopping Nginx&quot;
[*]            killall -9 nginx   
[*]            echo &quot; done&quot;
[*]       ;;   
[*]       test)   
[*]            $nginx -t -c $conf   
[*]       ;;   
[*]      reload)   
[*]            echo -n &quot;Reloading Nginx&quot;
[*]            ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP   
[*]            echo &quot; done&quot;
[*]       ;;   
[*]      restart)   
[*]                $0 stop   
[*]                $0 start   
[*]       ;;   
[*]       show)   
[*]            ps -aux|grep nginx   
[*]       ;;   
[*]       *)   
[*]            echo -n &quot;Usage: $0 {start|restart|reload|stop|test|show}&quot;
[*]       ;;   
[*]esac
[*]EOF
[*]if [ -s nginxd ]
[*]then
[*]    /bin/cp nginxd /etc/rc.d/init.d/nginxd
[*]    chmod &#43;x /etc/rc.d/init.d/nginxd
[*]fi
[*]}
[*]cat <<EOF
[*]############################################
[*]1 install Nginx
[*]2 install PHP
[*]3 install MySQL
[*]4 install LNMP
[*]############################################
[*]############################################
[*]请选择你要安装的服务(1 | 2 | 3 | 4)
[*]EOF
[*]
[*]echo &quot;请输入一个数字: &quot;
[*]read num
[*]case $num in
[*]   1)
[*]    echo &quot;Nginx installing........... have a rest&quot;
[*]    init_server
[*]    download_src
[*]    inst_nginx
[*]    ;;
[*]   2)
[*]    echo &quot;PHP installing....... have a rest&quot;
[*]    download_src
[*]    init_server
[*]    inst_mysql
[*]    inst_libmcypt
[*]    inst_php
[*]    inst_php_ex
[*]    ;;
[*]    3)
[*]    echo &quot;MySQL installing...... have a rest&quot;
[*]    init_server   
[*]    download_src
[*]    inst_mysql
[*]   ;;
[*]    4)
[*]    echo &quot;LNMP installing......have a rest&quot;
[*]    download_src
[*]   init_server
[*]   inst_mysql
[*]   inst_libmcypt
[*]   inst_php
[*]inst_php_ex
[*]   inst_nginx   
[*]    ;;
[*]*)
[*]echo &quot;输入错误\n&quot;         echo &quot;选择你要安装的服务(1 | 2 | 3 | 4)&quot;
[*];;
[*]esac
[*]
[*]#检查安装是否成功
[*]case $num in
[*]   4)
[*]    if [ -s /usr/local/nginx ] && [ -s /usr/local/php ] && [ -s /usr/local/mysql ]
[*]then
[*]          echo &quot;LNMP is installcompleted&quot;
[*]          echo &quot;Nginx basedir: /usr/local/nginx&quot;
[*]          echo &quot;PHP basedir: /usr/local/php&quot;
[*]          echo &quot;MySQL basedir: /usr/local/mysql&quot;
[*]          echo &quot;MySQL datadir: /usr/local/mysql/data&quot;
[*]else
[*]         echo &quot;LNMP is install fail&quot;
[*]    fi
[*]   ;;
[*]   3)
[*]    if [ -s /usr/local/mysql ]
[*]then
[*]      echo &quot;Nginx is install completed&quot;
[*]      echo &quot;MySQL basedir: /usr/local/mysql&quot;
[*]      echo &quot;MySQL datadir: /usr/local/mysql/data&quot;
[*]    phpd
[*]    nginxd
[*]else
[*]      echo &quot;Nginx is install fail&quot;
[*]    fi
[*]    ;;
[*]   2)
[*]    if[ -s /usr/local/php ]
[*]then
[*]      echo &quot;PHP is install completed&quot;
[*]      echo &quot;PHP basedir: /usr/local/php&quot;
[*]    phpd
[*]else
[*]      echo &quot;PHP is install fail&quot;
[*]    fi
[*]    ;;
[*]    1)
[*]    if [ -s /usr/local/nginx ]
[*]then
[*]      echo &quot;Nginx is install completed&quot;
[*]      echo &quot;Nginx basedir: /usr/local/nginx &quot;
[*]    nginxd
[*]else
[*]      echo &quot;Nginx is install fail&quot;
[*]    fi
[*]    ;;
[*]esac






转 : http://wolfchen.blog.iyunv.com/2211749/1109870
页: [1]
查看完整版本: LNMP一键自动安装脚本