一键部署 LNMP

文章目录


#!/bin/bash

menu(){
    
    
clear
echo "  ##############‐‐‐‐Menu‐‐‐‐##############"
echo "# 1. Install Nginx"
echo "# 2. Install MySQL"
echo "# 3. Install PHP"
echo "# 4. Exit Program"
echo "  ########################################"
}
choice(){
    
    
read ‐p "Please choice a menu[1‐9]:" select
}
install_nginx(){
    
    
id nginx &>/dev/null
if [ $? ‐ne 0 ];then
     useradd ‐s /sbin/nologin nginx
fi
if [ ‐f nginx‐1.8.0.tar.gz ];then
   tar ‐xf nginx‐1.8.0.tar.gz
   cd nginx‐1.8.0
   yum ‐y install  gcc pcre‐devel openssl‐devel zlib‐devel make
   ./configure ‐‐prefix=/usr/local/nginx ‐‐with‐http_ssl_module
   make
   make install
   ln ‐s /usr/local/nginx/sbin/nginx /usr/sbin/
   cd ..
else
   echo "没有 Nginx 源码包"
fi
}
install_mysql(){
    
    
yum ‐y install gcc gcc‐c++ cmake ncurses‐devel perl
id mysql &>/dev/null
if [ $? ‐ne 0 ];then
   useradd ‐s /sbin/nologin mysql
fi
if [ ‐f mysql‐5.6.25.tar.gz ];then
   tar ‐xf mysql‐5.6.25.tar.gz
   cd mysql‐5.6.25
   cmake .
   make
   make install
   /usr/local/mysql/scripts/mysql_install_db ‐‐user=mysql ‐‐datadir=/usr/local/mysql/data/
‐‐basedir=/usr/local/mysql/
   chown ‐R root.mysql /usr/local/mysql
   chown ‐R mysql /usr/local/mysql/data
   /bin/cp ‐f /usr/local/mysql/support‐files/mysql.server /etc/init.d/mysqld
   chmod +x /etc/init.d/mysqld
   /bin/cp ‐f /usr/local/mysql/support‐files/my‐default.cnf /etc/my.cnf
   echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
   ldconfig
   echo 'PATH=\$PATH:/usr/local/mysql/bin/' >> /etc/profile
   export PATH
        else
                echo  "没有 mysql 源码包"
   exit
fi
}
install_php(){
    
    
#安装 php 时没有指定启动哪些模块功能,如果的用户可以根据实际情况自行添加额外功能如‐‐with‐gd 等
    yum  ‐y  install  gcc  libxml2‐devel
if [ ‐f mhash‐0.9.9.9.tar.gz ];then
   tar ‐xf mhash‐0.9.9.9.tar.gz
   cd mhash‐0.9.9.9
   ./configure
   make
   make install
   cd ..
   if [ ! ‐f /usr/lib/libmhash.so ];then
     ln ‐s /usr/local/lib/libmhash.so /usr/lib/
   fi
   ldconfig
else
   echo "没有 mhash 源码包文件"
   exit
fi
  
if [ ‐f libmcrypt‐2.5.8.tar.gz ];then
   tar ‐xf libmcrypt‐2.5.8.tar.gz
   cd libmcrypt‐2.5.8
   ./configure
    make
   make install
   cd ..
   if [ ! ‐f /usr/lib/libmcrypt.so ];then  
     ln ‐s /usr/local/lib/libmcrypt.so /usr/lib/
   fi
   ldconfig
else
   echo "没有 libmcrypt 源码包文件"
   exit
fi
  
if [ ‐f php‐5.4.24.tar.gz ];then
   tar ‐xf php‐5.4.24.tar.gz
   cd php‐5.4.24
   ./configure  ‐‐prefix=/usr/local/php5  ‐‐with‐mysql=/usr/local/mysql  ‐‐enable‐fpm    ‐‐
enable‐mbstring  ‐‐with‐mcrypt  ‐‐with‐mhash  ‐‐with‐config‐file‐path=/usr/local/php5/etc  ‐‐with‐
mysqli=/usr/local/mysql/bin/mysql_config
   make && make install
   /bin/cp ‐f php.ini‐production /usr/local/php5/etc/php.ini
   /bin/cp ‐f /usr/local/php5/etc/php‐fpm.conf.default /usr/local/php5/etc/php‐fpm.conf
   cd ..
else
   echo "没有 php 源码包文件"
   exit
fi
}
while :
do
menu
choice
case $select in
1)
install_nginx
;;
2)
install_mysql
;;
3)
install_php
;;
4)
exit
;;
*)
echo Sorry!
esac
done

参考
LNMP架构的源码编译以及yum安装


猜你喜欢

转载自blog.csdn.net/shenyuanhaojie/article/details/121218061