一个自动安装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 $LANG |grep -q zh
if [ $? -eq 0 ];then
return 0
else
return 1
fi
}
#yum仓库的错误输出函数
error_yum(){
#根据系统默认语言输出错误提示
language
if [ $? -eq 0 ];then
clear
echo
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "错误:本机YUM不可用,请正确配置YUM后重试."
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo
exit
else
clear
echo
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "ERROR:Yum is disable,please modify yum repo file then try again."
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo
exit
fi
}
#yum仓库检查函数
yumcheck(){
#清空yum缓存
yum clean all &>/dev/null
#得到yum仓库中可用rpm包个数
repolist=$(yum repolist 2>/dev/null |awk ‘/repolist:/{print $2}‘|sed ‘s/,//‘)
if [ $repolist -le 0 ];then
#如果可用软件包数是0则调用报错函数error_yum提示yum错误
error_yum
fi
}
#解决nginx依赖关系
solve_depend(){
language
if [ $? -eq 0 ];then
echo -en "\033[1;34m正在安装依赖包,请稍后...\033[0m"
else
echo -e "\033[1;34mInstalling dependent software,please wait a moment...\033[0m"
fi
rpmlist="gcc pcre-devel openssl-devel zlib-devel make"
#循环安装nginx所有依赖包
for i in $rpmlist
do
#查看该包是否安装如果每有安装则安装否则跳过
rpm -q $i &>/dev/null || yum -y install $i
done
}
#当前目录找不到源码包提示错误函数
error_nofile(){
language
if [ $? -eq 0 ];then
clear
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34m错误:未找到[ ${1} ]软件包,请下载软件包至当前目录.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit
else
clear
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34mERROR:Not found [ ${1} ] package in current directory, please download it.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit
fi
}
#安装nginx函数
install_nginx(){
#调用yum仓库检查
yumcheck
#安装nginx依赖包
solve_depend
grep -q nginx /etc/passwd
#如果系统中不存在nginx这个用户则添加一个nginx用户
[ $? -ne 0 ] && useradd -s /sbin/nologin nginx
if [ -f ${nginx_version}.${format1} ];then
tar -xf ${nginx_version}.${format1}
cd $nginx_version
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
cd ..
else
#如果找不到nginx安装文件则报错
error_nofile Nginx
fi
}
#yum安装错误提示函数
error_yum(){
language
if [ $? -eq 0 ];then
clear
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34m错误: ${1}安装失败.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit
else
clear
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34merror: ${1}install error.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit

fi
}

#安装PHP Mariadb 相关组件函数
yum_install(){
yum_list="php php-mysql mariadb mariadb-server mariadb-devel"
for i in $yum_list
do
#查看该包是否安装如果每有安装则安装否则跳过
rpm -q $i &>/dev/null || yum -y install $i
[ $? -nq 0 ] && error_yum $i
done
}
#安装php后台程序函数
install_php_fpm(){
if [ -f ${php_fpm_package_name} ]
then
rpm -q $php_fpm_package_name &>/dev/null || rpm -hiv $php_fpm_package_name
else
error_yum ${php_fpm_package_name}
fi
}
#启动提示
start_message(){
language
if [ $? -eq 0 ];then
if [ $2 -eq 0 ];then
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34m启动: ${1}启动成功.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
else
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34m启动: ${1}启动失败.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
fi
else
if [ $2 -eq 0 ];then
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34mstart: ${1}start is successful.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
else
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo -e "\033[1;34mstart: ${1}start is error.\033[0m"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
fi

fi
}

#启动lnmp环境函数
start_lnmp(){
systemctl start php-fpm.service &>/dev/null
netstat -tupan |grep php-fpm
[ $? -eq 0 ] && start_message php-fpm 0 || start_message php-fpm 1
/usr/local/nginx/sbin/nginx &>/dev/null
netstat -tupan |grep nginx &>/dev/null
[ $? -eq 0 ] && echo start_message nginx 0 || start_message nginx 1
systemctl start mariadb &>/dev/null
[ $? -eq 0 ] && start_message mariadb 0 || start_message mariadb 1
#启动环境结束后暂停5秒;退出程序
sleep 5
exit
}
#脚本菜单函数
menu(){
clear
language
if [ $? -eq 0 ];then
echo " ##############----Menu----##############"
echo "# 1. 安装lump环境"
echo "# 2. 启动lump环境"
echo "# 9. 退出程序"
echo " ########################################"
else
echo " ##############----Menu----##############"
echo "# 1. Install lnmp"
echo "# 2. Start lnmp"
echo "# 9. Exit Program"
echo " ########################################"
fi
}
#功能选择函数
choice(){
language
if [ $? -eq 0 ];then
read -p "请选择一个菜单[1 2 9]:" select
else
read -p "Please choice a menu[1 2 9]:" select
fi
}
#主程序开始
while :
do
menu
choice
case $select in
1)
install_nginx
yum_install
install_php_fpm;;
2)
start_lnmp;;
9)
exit;;
*)
echo "choice error"
esac
done
本脚本基于CentOS7.x平台编写;如有错误请留言;谢谢!

原文地址:http://blog.51cto.com/13466287/2069558

时间: 2024-11-11 23:20:53

一个自动安装lnmp环境的shell脚本的相关文章

一个自动安装LNMP的简洁Shell脚本

此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP.本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件.大家安装完可以删除该目录. 使用方法:1.把shell脚本的内容保存为nginx_php2.root权限下运行:chmod u+x nginx_php; ./nginx_php init; ./nginx_php ins_mysql-server; ./nginx_php ins_mysql-clien

一个自动生成awr报告的shell脚本

最近在学习shell编程,搞一点点小工具自动完成awr报告的收集工作,方便系统出现问题时问题排查.脚本内容如下,系统收集每天开始时间6点结束时间20点的awr报告并存储在/u01/shell_t/awr/目录下 #! /bin/sh export ORACLE_SID=PROD1export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 m=(`sqlplus -S "/

自动安装zabbix agent的shell脚本

#!/bin/bash #install the zabbix agent #Create by ShiYong id zabbix &> /dev/null || useradd -s /sbin/nologin zabbix mkdir /etc/zabbix /var/log/zabbix chown zabbix.zabbix /var/log/zabbix/ tar zxf zabbix-2.0.12.tar.gz -C /usr/src/ cd /usr/src/zabbix-2

Shell脚本一键安装LNMP环境

https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则,稳定性,静态文件处理,内存消耗等方面表现了很强的优势.因此公司线上和测试环境的WEB服务大多数采用的是LNMP环境,经常要进行LNMP环境的搭建,下面是用SHELL脚本写的一键安装LNMP环境的脚本.1)系统环境介绍Centos 5.8 64位 (已测试)Nginx: nginx-1.4.1.ta

centos下编译安装LNMP环境

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持. PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回. Nginx和PHP-FPM的组合,是一种稳定.高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少. 二.依赖环境 yum -y install gcc gcc-c++ make cmake automake au

Centos 6.8编译安装LNMP环境

Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 一 准备工作 环境介绍: OS:Centos 6.8 最小化安装 Nginx:nginx-1.12.2.tar.gz mysql:mysql-boost-5.7.20.tar.gz php:php-7.2.0.tar.bz2 1.1.关闭SELINUX # 修改配置文件,重启服务后永久生效. sed

CentOS编译安装LNMP环境

这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables   #编辑防火墙配置文件 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙) -A INPUT -m state -

vagrant 下安装lnmp 环境

今天使用 vagrant 安装了 lnmp 包,感觉还是不错的,值得纪录一下 首先呢,我安装了一个 centos65 ,具体的命令是这样的(box 在本地) vagrant box add centos65 /Users/zeopean/Downloads/mac/centos65-x86_64-20140116.box 接下来,我的vagrant 就装好了,需要初始化 vagrant init centos65 vagrant up 需要注意的是,有可能现在呢的 Vagrantfile 文件中

ubuntu12.04 apt-get安装 lnmp环境(转)

1.安装mysql [sql] view plaincopy sudo apt-get install mysql-server mysql-client 安装过程中要输入root用户的密码. 我在安装中出错,是原来的mysql-cilent mysql-workbench 未完全卸载,将mysql组件完全卸载的方法: 删除mysql前 先删除一下 /var/lib/mysql 还有 /etc/mysql [sql] view plaincopy sudo rm /var/lib/mysql/