设为首页 收藏本站
查看: 1105|回复: 0

LNMP一键自动安装脚本

[复制链接]

尚未签到

发表于 2015-11-16 11:57:39 | 显示全部楼层 |阅读模式

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



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


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


参考文章 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 install  completed&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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139891-1-1.html 上篇帖子: Centos6 yum搭建Linux+Nginx+PHP+MYSQL(LNMP) 下篇帖子: CentOS 5.6(X64)下编译安装LNMP平台(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表