文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用shell脚本安装lnmp

2023-06-09 13:34

关注

这篇文章给大家介绍如何使用shell脚本安装lnmp,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1、简介

使用shell脚本安装lnmp,纯粹是偷懒,平时安装一些东西都写成脚本了,方便以后在其他机器安装的时候不用再去查找文档。

2、环境说明

阿里云ECS(1G1核)CentOS 7.4 64位

3、shell脚本

1   cnl_function.sh

#!/bin/bash#chennailuan's function#check last command id Ok or not.check_ok(){  if [ $? != 0 ]  then     echo Error,Check the error log.    exit 1  fi}#if the packge installed ,then omitmyum(){  if ! rpm -qa|grep -q "^$1"  then     yum install -y $1    check_ok  else    echo $1 already installed.  fi}#check service is running or not ,example nginx ,httpd ,php-fpmcheck_service(){  if [ $1 == "phpfpm" ]  then    s="php-fpm"  else    s=$1   fi    n=`ps aux | grep $s | wc -l`  if [ $n -gt 1 ]  then    echo "$1 service is already started."  else     if [ -f /etc/init.d/$1 ]    then      /etc/init.d/$1 start      check_ok    else      install_$1     fi  fi}

2   cnl_install_lnmp_init.sh  

#!/bin/bashsource ./cnl_function.shecho "It will install lamp=========================================================================================begin"#sleep 2#get the archive of the system ,i686 or x86_64ar=`arch`#close selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configselinux_s=`getenforce`if [ $selinux_s == "enforcing" ]then   setenforce 0fi#install some packgesfor p in gcc wget perl perl-devel libaio libaio-devel pcre-devel zlib-devel autoconf openssl openssl-devel do   myum $pdone#install epel.if rpm -qa epel-release > /dev/nullthen   rpm -e epel-releasefiif ls /etc/yum.repos.d/epel-7.repo* > /dev/null 2>&1then   rm -f /etc/yum.repos.d/epel-7.repo*fiwget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

3   cnl_install_lnmp.sh

#!/bin/bashsource ./cnl_function.shsource ./cnl_install_lnmp_init.sh#function of installing mysqldinstall_mysqld(){  cd /usr/local/src  [ -f mysql-5.6.26-linux-glibc2.5-$ar.tar.gz ] || wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26-linux-glibc2.5-$ar.tar.gz   check_ok  tar -zxf mysql-5.6.26-linux-glibc2.5-$ar.tar.gz  check_ok  [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_`date +%s`  mv mysql-5.6.26-linux-glibc2.5-$ar /usr/local/mysql  check_ok  if ! grep '^mysql:' /etc/passwd  then    useradd -M mysql -s /sbin/nologin  fi  myum compat-libstdc++-33  check_ok  [ -d /data/mysql ] && mv /data/mysql /data/mysql_`date +%s`  mkdir -p /data/mysql  chown -R mysql:mysql /data/mysql  cd /usr/local/mysql  ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  check_ok  cp support-files/my-default.cnf /etc/my.cnf  check_ok  sed -i '/^\[mysqld\]$/a\datadir = /data/mysql' /etc/my.cnf  cp support-files/mysql.server /etc/init.d/mysqld  sed -i 's#^datadir=#datadir=/data/mysql#'  /etc/init.d/mysqld  chmod 755 /etc/init.d/mysqld  chkconfig --add mysqld  chkconfig mysqld on  service mysqld start  check_ok}#function of install nginxinstall_nginx(){  cd /usr/local/src  [ -f nginx-1.15.6.tar.gz ] || wget http://nginx.org/download/nginx-1.15.6.tar.gz  tar -zxf nginx-1.15.6.tar.gz  cd nginx-1.15.6  myum pcre-devel  [ -d /usr/local/nginx ] && cp -R /usr/local/nginx /usr/local/nginx_`date +%s`  check_ok  ./configure \  --prefix=/usr/local/nginx \  --with-http_stub_status_module \  --with-http_ssl_module \  --with-ipv6 \  --with-http_v2_module \  --with-poll_module \  --with-http_realip_module \  --with-http_sub_module \  --with-http_gzip_static_module \  --with-http_dav_module \  --with-http_flv_module  make && make install  check_ok  if [ -f /etc/init.d/nginx ]  then    mv /etc/init.d/nginx /etc/init.d/nginx_`date +%s`    fi  curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_init -o /etc/init.d/nginx  check_ok  chmod 755 /etc/init.d/nginx  chkconfig --add nginx  chkconfig nginx on  curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_conf -o /usr/local/nginx/conf/nginx.conf  check_ok  if ! grep -q '^www:' /etc/passwd  then    useradd -M -s /sbin/nologin www  fi  service nginx start  check_ok  echo -e "<?php \n phpinfo(); \n ?>" > /usr/local/nginx/html/index.php  check_ok}#function of install php-fpm version 5.6install_phpfpm(){  cd /usr/local/src/  [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz    tar -zxf php-5.6.6.tar.gz && cd php-5.6.6  for p in openssl-devel bzip2-devel \  libxml2-devel curl-devel libpng-devel libjpeg-devel \  freetype-devel libmcrypt-devel libtool-ltdl-devel perl-devel  do    myum $p  done  if ! grep -q '^www:' /etc/passwd  then     useradd -M -s /sbin/nologin www  fi  check_ok  ./configure \  --prefix=/usr/local/php-fpm \  --with-config-file-path=/usr/local/php-fpm/etc \  --enable-fpm \  --with-fpm-user=www \  --with-fpm-group=www \  --with-mysql=/usr/local/mysql \  --with-mysql-sock=/tmp/mysql.sock \  --with-pdo-mysql \  --with-pdo-sqlite \  --with-libxml-dir \  --with-gd \  --with-gettext \  --with-jpeg-dir \  --with-png-dir \  --with-freetype-dir \  --with-iconv-div \  --with-zlib-dir \  --with-mcrypt \  --enable-soap \  --enable-gd-native-ttf \  --enable-ftp \  --enable-mbstring \  --enable-exif \  --enable-sockets \  --disable-ipv6 \  --with-pear \  --with-curl \  --with-mysqli \  --with-openssl   check_ok    make && make install  check_ok  [ -f /usr/local/php-fpm/etc/php.ini ] || cp php.ini-production /usr/local/php-fpm/etc/php.ini  if /usr/local/php-fpm/bin/php -i || grep -iq 'date.timezone => no value'  then     sed -i '/;date.timezone =$/a\date.timezone = "PRC"' /usr/local/php-fpm/etc/php.ini    check_ok  fi  [ -f /usr/local/php-fpm/etc/php-fpm.conf ] || curl https://cnlpublic.nl166.com/cnlfile/php/.phpfpm_conf -o /usr/local/php-fpm/etc/php-fpm.conf  [ -f /etc/init.d/phpfpm ] || cp sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm  chmod 755 /etc/init.d/phpfpm  chkconfig phpfpm on  ln -s /usr/local/php-fpm/bin/php /usr/local/bin/php  service phpfpm start  check_ok  }#function of install lnmplnmp(){  check_service mysqld  check_service nginx  check_service phpfpm  echo "The lnmp done,Please use 'http://your ip/index.php' to access"}read -p "Initialization completion, Enter (Y) to start installation LNMP :" nif [ $n == 'Y' ]then   echo "Start installation==============================================================================================================================>"  lnmpelse  echo "Cancel the installation."fi

4、开始安装

上面上个文件放在同一目录

如何使用shell脚本安装lnmp  

在shell目录执行 sh cnl_install_lnmp.sh

如何使用shell脚本安装lnmp  

输入 Y 确认执行安装,需要安装的安装包会自己检查,本人在自己的几台服务器都测试过,安装正常。

安装完会自己加到系统服务 ,并启动。

关于如何使用shell脚本安装lnmp就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯