还有不足的地方,请谅解   2天时间刚做到安装mysql这里。。。。

#  [root@localhost ~]# cat /etc/centos-release
#  CentOS release 6.7 (Final)
#  [root@localhost ~]# uname -a
#  Linux localhost 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linu

############  以下是 一键安装脚本  ###############

#!/bin/bash
clear

mount /dev/sr0 /mnt/usb1
#yum -y install gcc*
yum -y install httpd gcc* pcre-devel zlib-devel openssl openssl-devel perl-Digest-SHA1.x86_64 ncurses-devel
useradd -M -s /sbin/nologin nginx
for i in ./*.gz
do
  tar -zxvf $i
done
for p in ./*.bz2
do
  tar -jxvf $p
done
cd nginx-1.0.8
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
b=80
k=`netstat -anpt|grep $b |awk -F ":" '{print $2}'|awk -F " " '{print $1}'`
  #echo "$k"

if [[ $k -ne $b ]];then
  service Nginx start
else
  chmod 755 /etc/init.d/Nginx
  chkconfig --add Nginx
fi
cd ..

############  安装mysql  ############3
#yum install ncurses-devel
cd mysql-5.1.55

./configure --prefix=/usr/local/mysql --with-collation=utf8_general_ci --with-charset=utf8 --with-extra-charsets=gbk,gb2312
y
make && make install
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
rpm -ivh ~/*.rpm  #mysql自动输入账号和密码的rpm包
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld

############  做软连接  #############
ln -s /usr/local/mysql/bin/* /usr/local/bin
ln -s /usr/local/mysql/lib/mysql/* /usr/lib
ln -s /usr/local/mysql/include/mysql/* /usr/include

#添加mysql用户并初始化mysql
useradd -M -s /sbin/nologin mysql
cd /usr/local/mysql/bin
./mysql_install_db --user=mysql
service mysqld start

########  下面是php的  #########
yum -y install libxml2-devel libpng-devel libjpeg*
cd ~/php-5.3.6
#echo "ok"
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm
cp -rp /usr/lib64/libpng* /usr/lib/ && cp -frp /usr/lib64/libjpeg* /usr/lib/
mkdir -p /usr/local/man/man1
make && make install
cp php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin
ln -s /usr/local/php5/sbin/* /usr/local/sbin
cd ../ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x
cp ZendGuardLoader.so /usr/local/php5/lib/php/
echo "zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so" >> /usr/local/php5/php.ini
echo "zend_loader.enable=1" >> /usr/local/php5/php.ini
cd /usr/local/php5/etc
cp php-fpm.conf.default php-fpm.conf
sed -i 's/^;pid/pid/' /usr/local/php5/etc/php-fpm.conf

sed -i 's/^user = nobody/user = nginx/' /usr/local/php5/etc/php-fpm.conf
sed -i 's/^group = nobody/group = nginx/' /usr/local/php5/etc/php-fpm.conf
sed -i 's/^;pm.start_servers = 20/pm.start_servers = 20/' /usr/local/php5/etc/php-fpm.conf
sed -i 's/^;pm.min_spare_servers = 5/pm.min_spare_servers = 10/' /usr/local/php5/etc/php-fpm.conf
sed -i 's/^;pm.max_spare_servers = 35/pm.max_spare_servers = 35/' /usr/local/php5/etc/php-fpm.conf

############# 判断php-fpm是否启动 #################
/usr/local/php5/sbin/php-fpm #php-fpm启动方式
E=9000
D=`netstat -anpt |grep :9000|awk -F ":" '{print $2}'|awk -F " " '{print $1}'`
if [ $D -eq $E ];then
echo "########## server php-fpm status ok ##########"
else
/usr/local/php5/sbin/php-fpm
fi

############# 将php-fpm添加到Nginx脚本中,随nginx一起启动 #################

sed -i '/nginx.conf/a\c="/usr/local/php5/sbin/php-fpm"' /etc/init.d/Nginx
sed -i '/php-fpm/a\d="/usr/local/php5/var/run/php-fpm"' /etc/init.d/Nginx
sed -i '/$a/a\\t$c' /etc/init.d/Nginx
sed -i '/killall/a\\tkillall -9 $d' /etc/init.d/Nginx
/usr/local/php5/sbin/php-fpm

################### 判断nginx是否为启动状态,php-fpm的启动已经放到了nginx的启动脚本里,会随nginx一起启动  #######################

service Nginx start
Q=`netstat -anpt |grep :80|awk -F ":" '{print $2}'|awk -F " " '{print $1}'
`
if [[ $Q -eq 80 ]];then
  echo "nginx running...."
else
  echo "nginx not running...."
fi

Nginx启动脚本:(脚本在/etc/init.d下名字为Nginx,这里的Nginx名字需要注意)

#!/bin/bash
#chkconfig:2345 99 20
a="/usr/local/nginx/sbin/nginx"      #源地址
conf=/usr/local/nginx/conf/nginx.conf

case $1 in
start)
    $a -c $conf
    echo"Nginx start"
;;
stop)
    killall -9 nginx
    echo "Nginx stop"
;;
restart)
    $0 stop &>/dev/null
    $0 start &>/dev/null
    echo "Nginx restart"
;;
*)
    echo "pppp error"
    esac

mysql免输账号和密码脚本:

#!/usr/bin/expect
date +%Y-%m-%d-%H:%M:%S
set timeout 5
set password "123456"   #设置密码是123456
spawn mysql -u root -p  #登陆
expect "123456"     #
send "123456\n"      #发送密码123456
interact

说明:
第一行#!/usr/bin/expect表示使用expect的shell交互模式
set是对变量password赋值
set timeout 5:设置超时时间为5秒,如果要执行的shell命令很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒
spawn在expect下执行shell脚本
expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段
send:如果expect监测到了包含的字符串,将输入send中的内容,\n相当于回车
interact:留在开的子进程内,可以继续输入,否则将退出子进程回到shell中(比如ssh登录到某台服务器上,只有加了interact才可以留在登录后的机器上进行操作)

############  测试脚本:sh -n test.sh  或者  sh -vx test.sh  ################

待续未完。。。

问题总结:

编写后台进程的管理脚本,使用service deamon-name stop的时候,出现如下提示:
/sbin/service: line 66: 23299 Terminated env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
原因:
把管理脚本的名称设为和后台进程名称一样,即:
后台进程名称:deamon-name,
脚本名称:/etc/init.d/deamon-name

脚本中有一句:
killall deamon-name
执行service deamon-name stop,本意是调用deamon-name脚本,结束后台进程deamon-name,结果连“service deamon-name stop”这条进程也被结束了。
解决方法:
把后台进程与脚本设置不同名称即可。

一键搭建LNMP脚本的更多相关文章

  1. WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

    版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...

  2. 一键安装lnmp脚本

    前段时间一直在找一个快速部署lnmp环境的方法,也没找着,就自己写了一个,结合网上的大神们的.我的方法是脚本结合源码包,很多依赖裤都是yum安装的,这都在脚本里面,需要的源码包我都下载好了,打包成压缩 ...

  3. 一键部署lnmp脚本

    先下载好nginx安装包,解包之后可以执行下面的脚本,一键部署 cd nginx-1.12.2 useradd -s /sbin/nologin nginx./configuremakemake in ...

  4. Centos7一键安装lnmp脚本

    mkdir /root/softwarewget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.18.tar.gzwget https ...

  5. 一键安装LNMP(适合centos7)

    1.准备工作,下载源码包 wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar ...

  6. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  7. Shell脚本一键安装LNMP环境

    https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则 ...

  8. lnmp环境一键搭建及卸载

    系统需求: CentOS/Debian/Ubuntu Linux系统 需要2GB以上硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) VPS或服务器必须已经 ...

  9. 【shell脚本】一键部署LNMP===deploy.sh

    一键部署mysql,php,nginx,通过源码安装部署 #!/bin/bash # 一键部署 LNMP(源码安装版本) menu() { clear echo " ############ ...

随机推荐

  1. C# 填充Excel

    1.添加引用 Microsoft.Office.Interop.Excel; 2.使用命名空间 using Microsoft.Office.Interop.Excel; 3.填充EXCEL单元格方法 ...

  2. Django + Mysql 中关于时间异常返回500错误的解决

    问题描述: 最近在阿里云部署 Django(1.11.x) 时,在后台发布文章后,页面返回 500 异常. 刚开始的时候,遇到这个问题一脸懵逼,不知道该如何入手.后来把 settings.py 中 D ...

  3. CSS3背景色透明(兼容IE8)

    标准浏览器通过rgba()实现背景色透明;IE8以下浏览器通过特有滤镜实现背景色透明. 代码如下: 1 /* IE8 */ 2 filter:progid:DXImageTransform.Micro ...

  4. Python 练习: 打印0到99小于50或大于70的数字

    for i in range(100): if i < 50 or i > 70: print(i) 注意: range(100) 表示 0 到 99 个数字

  5. POJ 1113 Wall(思维 计算几何 数学)

    题意 题目链接 给出平面上n个点的坐标.你需要建一个围墙,把所有的点围在里面,且围墙距所有点的距离不小于l.求围墙的最小长度. \(n \leqslant 10^5\) Sol 首先考虑如果没有l的限 ...

  6. 2017-10-29 用中文命名API的意义和途径

    "中文编程"知乎专栏原链 在前文对在代码中使用中文命名的质疑与回应中阐述了在代码中使用中文命名的益处. 此文将从软件使用者的角度阐述对API中文化的意义并探讨实现途径. 当然, 文 ...

  7. Jmeter进阶篇之保存测试结果

    Jmeter现在真的是一款越来越流行的接口测试工具. 但是通过和老大哥LR相比较,可能有部分同学觉得,LR的图表功能,报告功能不要太强大. 但是小弟jmeter在这方面其实并不差... 今天我们就来学 ...

  8. loadrunner 运行脚本-Run-time Settings-ContentCheck简单设置

    运行脚本-Run-time Settings-ContentCheck简单设置 by:授客 QQ:1033553122 ContentCheck的设置可用来让VuGen检测存在错误的站点页面.如果被测 ...

  9. SEIG Modbus 3.4 CVE-2013-0662 漏洞分析与利用

    前言 Schneider Electric Modbus Serial Driver 会监听 27700 端口,程序在处理客户端发送的数据时会导致栈溢出. 测试环境: windows xp sp3 相 ...

  10. 【公众号系列】SAP S/4 HANA的移动平均价

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]SAP S/4 HANA的移动平均 ...