lnmp环境安装sh脚本

闲来无事自己写了个LNMP环境的安装脚本。

该脚本可以单独安装nginx,mysql,php,也可以一步到位直接安装所有软件。其中,nginx安装完,需根据具体环境修改配置文件,再启动服务。mysql,php安装完服务自动启动。

环境:

软件安装路径:/opt/apps/

数据存放目录:/opt/data/

安装包下载目录:/opt/src/

具体软件版本如下:

nginx-1.10.1

mysql-5.6.32

php-7.0.10

脚本如下:

# more lnmp_install.sh
#!/bin/sh
##############################defind functions that install lnmp....######################
#######nginx##########################
Install_nginx ()
{
echo -e "\033[33m Install nginx....\033[0m"
if [ -d /opt/apps/nginx/ ]; then
  echo -e "\033[31m Nginx already exists in your system......\033[0m"
  exit
fi
  echo -e "\033[33m Install base environment of nginx......\033[0m" 
  yum -y install pcre* openssl*
  echo -e "\033[33m Download nginx(1.10.1)......\033[0m"
  if [ ! -f /opt/src/nginx-1.10.1.tar.gz ];
  then
   wget http://nginx.org/download/nginx-1.10.1.tar.gz  -P /opt/src
  fi
  cd /opt/src/
  tar -zxvf nginx-1.10.1.tar.gz
  cd nginx-1.10.1
  echo -e "\033[33m Compose nginx......\033[0m" 
 ./configure --prefix=/opt/apps/nginx  --conf-path=/opt/conf/nginx/nginx.conf  --error-log-path=/opt/logs/nginx/error.log --http-log-path=/opt/logs/nginx/access.log --with-http_stub_status_module --with-http_gzip_static_module --with-ht
tp_flv_module --with-http_ssl_module --with-http_realip_module --http-client-body-temp-path=/opt/apps/nginx/client_body_temp --http-fastcgi-temp-path=/opt/apps/nginx/fastcgi_temp --http-proxy-temp-path=/opt/apps/nginx/proxy_temp --http-
uwsgi-temp-path=/opt/apps/nginx/uwsgi_temp --http-scgi-temp-path=/opt/apps/nginx/scgi_temp
  make && make install
  if [ $? -eq "0" ]; then
    echo -e "\033[32m Nginx is installed successfully......\033[0m"
    exit
  else
    echo -e "\033[31m Something was wrong during installing nginx,please check and try again......\033[0m"
    exit
  fi
}
######mysql############################
Install_mysql ()
{
#Removing default rpm packages of mysql if they have been installed....
if [ -f /usr/bin/mysqld_safe ];then
  echo -e "\033[33m Remove default mysql-server RPM packages......\033[0m" 
  yum -y remove mysql-server
fi
if [ -f /usr/bin/mysqldump ];then
  echo -e "\033[33m Remove default mysql-client RPM packages......\033[0m" 
  yum -y remove mysql 
fi
#Adding mysql‘s user and group..
if [ ! -d /opt/data/mysql];then
    mkdir -p /opt/data/mysql
fi
echo -e "\033[33m Setting Environment variables......\033[0m" 
userdel -r mysql
groupdel -r mysql
groupadd  mysql
useradd -r -g mysql -s /sbin/nologin mysql
#setting the env of mysql......
base_dir=/opt/apps/mysql/
data_dir=/opt/data/mysql/
src_dir=/opt/src/
#Download mysql and install
if [ ! -d /opt/src/mysql-5.6.32/ ];then
  if [ ! -f /opt/src/mysql-5.6.32.tar.gz ];then
    wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.32.tar.gz -P /opt/src/
  fi
  cd /opt/src/
  tar -zxvf /opt/src/mysql-5.6.32.tar.gz
fi 
cd /opt/src/mysql-5.6.32
cmake . -DCMAKE_INSTALL_PREFIX=${base_dir} -DMYSQL_DATADIR=${data_dir} -DMYSQL_UNIX_ADDR=${data_dir}mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_g
eneral_ci -DWITH_DEBUG=0
if [ "$?" -ne "0" ];then
    echo -e ‘Configure mysql failure,Please check compile Environment...‘
    exit 2
fi
make -j 3 
if [ "$?" -ne "0" ];then
    echo ‘Error,please look config.log for more information...‘
    exit 2
fi
make install
if [ "$?" -eq "0" ];then
    echo -e ‘Mysql install complete done...‘
else
    echo -e ‘Something wrong between Installation...‘
fi
#Initialization mysql..
echo -e ‘Initialization mysql...‘
cd ${src_dir}mysql-5.6.32
cp support-files/my-default.cnf ${data_dir}/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
sed -i -e ‘46s/basedir=/basedir=${base_dir}/‘ -e ‘47s/datadir=/datadir=${data_dir}/‘  /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld
sed -i -e "s#@[email protected]#hostname#"  ./scripts/mysql_install_db.sh
sh ./scripts/mysql_install_db.sh --user=mysql --basedir=${base_dir} --datadir=${data_dir}   > /dev/null 2>&1
chown -R mysql.mysql /opt/apps/mysql/
chown -R mysql.mysql /opt/data/mysql/
#Start mysql...
ulimit -s unlimited
service mysqld start
}
#######php###########################################################
Install_php ()
{
if [ ! -f /opt/src/php-7.0.10.tar.gz ];then
  echo -e "\033[33m Download php-7.0.10.tar.gz......\033[0m" 
  wget http://cn2.php.net/get/php-7.0.10.tar.gz/from/this/mirror -P /opt/src
  cd /opt/src &&  mv mirror php-7.0.10.tar.gz
fi
echo -e "\033[33m Complising and installing php-7.0.10 ......\033[0m" 
tar -zxvf php-7.0.10.tar.gz
cd php-7.0.10
yum install -y php-mcrypt libmcrypt libmcrypt-devel libjpeg-turbo-devel.x86_64   
./configure --prefix=/opt/apps/php --with-config-file-path=/opt/apps/php/etc --with-mcrypt=/usr/include --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath 
--enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --w
ithout-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache
if [ $? -eq "0"];then
  echo -e "\033[31m Php install faild....Please check and try again....\033[0m"
  exit
fi
make && make install
cp php.ini-production /opt/apps/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm   
cp /opt/apps/php/etc/php-fpm.conf.default /opt/apps/php/etc/php-fpm.conf     
cp /opt/apps/php/etc/php-fpm.d/www.conf.default /opt/apps/php/etc/php-fpm.d/www.conf
echo "zend_extension=/opt/apps/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so" >> /opt/apps/php/etc/php.ini
chmod 775 /etc/init.d/php7-fpm
echo -e "\033[33m Starting php7-frm service......\033[0m" 
/etc/init.d/php7-fpm start
if [ $? -eq "0" ];then
  echo -e "\032[33m PHP installed and started successfully......\033[0m" 
else:
  echo -e "\033[31m PHP installed successfully,but start failed,please check the configuration of php......\033[0m" 
fi
}

###############################Main program######################################
mkdir -p /opt/{apps,conf,src,data}
read -p "Which part of lnmp you want to install?(nginx|mysql|php|all):" softwar
case ${softwar} in 
nginx)
 Install_nginx
;;
mysql)
 Install_mysql
;;
php)
Install_php
;;
all)
if [ -d /opt/apps/nginx ];then
 echo -e "\033[33m Nginx was already installed in your system...\033[0m"
else
  Install_nginx
fi
if [ -d /opt/apps/mysql ];then
 echo -e "\033[33m Mysql was already installed in your system...\033[0m"
else
  Install_mysql
fi
if [ -d /opt/apps/php ];then
 echo -e "\033[33m PHP was already installed in your system...\033[0m"
else
 Install_php
fi
;;
*)
echo -e "\033[33m Sorry,please input a right choice\033[0m"
esac
时间: 2024-10-07 12:31:51

lnmp环境安装sh脚本的相关文章

zabbix监控之基于LNMP环境安装

本文描述zabbix在lnmp环境中的搭建过程,为减少配置难度,mysql,php采用yum安装. 本安装过程以直接高效的方式叙述. 1.Yum安装mysql mysql使用yum安装方式 yum install mysql-servermysql-devel mysql /etc/init.d/mysqld start 2.Yum安装php yum安装后的php配置文件是/etc/php.ini. yum install -y php php-mysqlphp-gd libjpeg* php-

一个自动安装lnmp环境的shell脚本

#/bin/bash #定义nginx源码包版本,脚本会根据版本名称和后缀检查文件是否在当前目录如果你需要安装不同版本的nginx可以修改这两个变量 nginx_version=nginx-1.8.0 format1=tar.gz #定义php-fpm安装包的文件名,如果你需要安装其他版本可以更改这个变量 php_fpm_package_name=php-fpm-5.4.16-36.el7_1.x86_64.rpm #判断系统语言是不是中文是返回0不是返回1 language(){ echo $

LNMP一键安装shell脚本(v1.2)

鉴于搭建一个LNMP环境使用一步一步的方法安装比较笨拙,故将安装步骤编写成一个简单shell脚本,并且能实现大部分需求 适合的系统版本:CentOS6.5-6.7 64位 安装的前提准备: mysql-5.6.28.tar.gz cmake-3.4.3.tar.gz nginx-1.8.1.tar.gz libgd-2.1.1.tar.bz2 ibiconv-1.14.tar.gz jpegsrc.v6b.tar.gz php-5.6.20.tar.bz2 将以上的源码包download下来放并

centos6.2 LNMP 环境安装(yum)

安装第三方yum源 wget http://www.atomicorp.com/installers/atomic sh ./atomic yum chech-update #更新yum源 安装环境 安装nginx yum remove httpd* php* #删除系统自带的软件包 yum install nginx chkconfig nginx on #设置nginx开机启动 service nginx start 安装mysql yum install mysql mysql-serve

LNMP一键安装shell脚本

前段时间维护服务器,需要安装LNMP环境,所以就整理了一下,做为脚本,记录下来. #!/bin/sh #Copyright(c) 2010-2015 redapple ([email protected]) #install LNMP  #Version 0.1.1 #Date 20140813 #------------增加yum源------------------------ rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmfo

lnmp环境安装(3)-php源码编译安装

本人安装的lnmp环境的相关文件,可以在本人提供的百度云盘资源进行下载 链接: http://pan.baidu.com/s/1dD6QZ1B 密码: zcs8 一.概述  php全称PHP:Hypertext Preprocessor超文本处理器,开源脚本语言! 其与web server的接口支持三种形式,分别为cgi, module方式, fastcgi方式.而对于nginx而言,只支持cgi和fastcgi两种接口方式与php进行连接! 本节将以源码安装php,启动php-fpm服务(fa

LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置

----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- 环境:LAMP :CentOS 6.8  .Apache 2.4. Mysql 5.6 . PHP 5.6.22 LNMP: CentOS 6.8  .Nginx 1.10. Mysql 5.6 . PHP 5.6.22 软件:Nagios4.1.1 .NRPE2.15.Nagios-plugins

LNMP环境安装搭建论坛

1.安装相关组件yum 安装mysql和phpyum install mysql mysql-server php php-mysql 将nginx和php-fpm的安装包上传的服务器上rpm安装nginx和php-fpmrpm -ivh nginx-1.6.3-1.el6.ngx.x86_64.rpm rpm -ivh php-fpm-5.3.3-1.i_want_root.el6.x86_64.rpm2.nginx和php的结合打开nginx的配置文件:vim /etc/nginx/conf

lnmp环境安装(1)-linux(centos)系统安装

这是自己在51cto的第一篇,主要是作为一名web开发者来讲解自己如何快速搭建linux开发环境的方式! 一.概述 作为一名web开发工程师,本地环境搭建是一项基本技能,相对而言,在window下面进行此类环境的搭建有许多现成的继承开发包,可实现快速的环境搭建,如:wampServer,.xampp.appserv等.但是我们运行的线上版本通常是采用linux操作系统的服务器,因此以linux为本地环境有利于线上代码部署与调试. 接下来,我将以linux为基础,搭建lnmp网站服务器架构!LNM