[其它产品/技术] 一键部署 LNMP(源码安装版本)

[复制链接]
669|10
 楼主| AdaMaYun 发表于 2023-12-22 14:52 | 显示全部楼层 |阅读模式
一键部署 LNMP(源码安装版本)

  1. #!/bin/bash

  2. # 一键部署 LNMP(源码安装版本)
  3. menu()
  4. {
  5. clear
  6. echo "  ##############‐‐‐‐Menu‐‐‐‐##############"
  7. echo "# 1. Install Nginx"
  8. echo "# 2. Install MySQL"
  9. echo "# 3. Install PHP"
  10. echo "# 4. Exit Program"
  11. echo "  ########################################"
  12. }

  13. choice()
  14. {
  15.   read -p "Please choice a menu[1‐9]:" select
  16. }

  17. install_nginx()
  18. {
  19.   id nginx &>/dev/null
  20.   if [ $? -ne 0 ];then
  21.     useradd -s /sbin/nologin nginx
  22.   fi
  23.   if [ -f nginx‐1.8.0.tar.gz ];then
  24.     tar -xf nginx‐1.8.0.tar.gz
  25.     cd nginx‐1.8.0
  26.     yum -y install  gcc pcre‐devel openssl‐devel zlib‐devel make
  27.     ./configure ‐‐prefix=/usr/local/nginx ‐‐with‐http_ssl_module
  28.     make
  29.     make install
  30.     ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
  31.     cd ..
  32.   else
  33.     echo "没有 Nginx 源码包"
  34.   fi
  35. }

  36. install_mysql()
  37. {
  38.   yum -y install gcc gcc‐c++ cmake ncurses‐devel perl
  39.   id mysql &>/dev/null
  40.   if [ $? -ne 0 ];then
  41.     useradd -s /sbin/nologin mysql
  42.   fi
  43.   if [ -f mysql‐5.6.25.tar.gz ];then
  44.     tar -xf mysql‐5.6.25.tar.gz
  45.     cd mysql‐5.6.25
  46.     cmake .
  47.     make
  48.     make install
  49.     /usr/local/mysql/scripts/mysql_install_db ‐‐user=mysql ‐‐datadir=/usr/local/mysql/data/
  50. ‐‐basedir=/usr/local/mysql/
  51.     chown -R root.mysql /usr/local/mysql
  52.     chown -R mysql /usr/local/mysql/data
  53.     /bin/cp -f /usr/local/mysql/support‐files/mysql.server /etc/init.d/mysqld
  54.     chmod +x /etc/init.d/mysqld
  55.     /bin/cp -f /usr/local/mysql/support‐files/my‐default.cnf /etc/my.cnf
  56.     echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
  57.     ldconfig
  58.     echo 'PATH=\$PATH:/usr/local/mysql/bin/' >> /etc/profile
  59.     export PATH
  60.   else
  61.     echo  "没有 mysql 源码包"
  62.     exit
  63.   fi
  64. }

  65. install_php()
  66. {
  67. #安装 php 时没有指定启动哪些模块功能,如果的用户可以根据实际情况自行添加额外功能如‐‐with‐gd 等
  68. yum  -y  install  gcc  libxml2‐devel
  69. if [ -f mhash‐0.9.9.9.tar.gz ];then
  70.   tar -xf mhash‐0.9.9.9.tar.gz
  71.   cd mhash‐0.9.9.9
  72.   ./configure
  73.   make
  74.   make install
  75.   cd ..
  76. if [ ! ‐f /usr/lib/libmhash.so ];then
  77.   ln -s /usr/local/lib/libmhash.so /usr/lib/
  78. fi
  79. ldconfig
  80. else
  81.   echo "没有 mhash 源码包文件"
  82.   exit
  83. fi
  84. if [ -f libmcrypt‐2.5.8.tar.gz ];then
  85.   tar -xf libmcrypt‐2.5.8.tar.gz
  86.   cd libmcrypt‐2.5.8
  87.   ./configure
  88.   make
  89.   make install
  90.   cd ..
  91.   if [ ! -f /usr/lib/libmcrypt.so ];then  
  92.     ln -s /usr/local/lib/libmcrypt.so /usr/lib/
  93.   fi
  94.   ldconfig
  95. else
  96.   echo "没有 libmcrypt 源码包文件"
  97.   exit
  98. fi
  99. if [ -f php‐5.4.24.tar.gz ];then
  100.   tar -xf php‐5.4.24.tar.gz
  101.   cd php‐5.4.24
  102.   ./configure  ‐‐prefix=/usr/local/php5  ‐‐with‐mysql=/usr/local/mysql  ‐‐enable‐fpm    ‐‐
  103.   enable‐mbstring  ‐‐with‐mcrypt  ‐‐with‐mhash  ‐‐with‐config‐file‐path=/usr/local/php5/etc  ‐‐with‐
  104.   mysqli=/usr/local/mysql/bin/mysql_config
  105.   make && make install
  106.   /bin/cp -f php.ini‐production /usr/local/php5/etc/php.ini
  107.   /bin/cp -f /usr/local/php5/etc/php‐fpm.conf.default /usr/local/php5/etc/php‐fpm.conf
  108.   cd ..
  109. else
  110.   echo "没有 php 源码包文件"
  111.   exit
  112. fi
  113. }

  114. while :
  115. do
  116.   menu
  117.   choice
  118.   case $select in
  119.   1)
  120.     install_nginx
  121.     ;;
  122.   2)
  123.     install_mysql
  124.     ;;
  125.   3)
  126.     install_php
  127.     ;;
  128.   4)
  129.     exit
  130.     ;;
  131.   *)
  132.     echo Sorry!
  133.   esac
  134. done

ex7s4 发表于 2023-12-29 16:38 | 显示全部楼层
这种部署是在什么环境下?
suw12q 发表于 2023-12-29 17:43 | 显示全部楼层
话说,LNMP是啥?这个有啥作用
tax2r6c 发表于 2023-12-29 18:45 | 显示全部楼层
看你的代码,好像是搞数据库啊
su1yirg 发表于 2023-12-29 19:50 | 显示全部楼层
原来LNMP代表的是(Linux + Nginx + MySQL + PHP)
zhizia4f 发表于 2023-12-29 20:57 | 显示全部楼层
这种一般都是作为环境搭建的啊
b5z1giu 发表于 2023-12-30 07:05 | 显示全部楼层
搭建环境的话还是有必要的,能避掉一些坑的
lix1yr 发表于 2023-12-30 08:15 | 显示全部楼层
这种是脚本语言吧
l1uyn9b 发表于 2023-12-30 10:14 | 显示全部楼层
我看用了echo啊,好像是脚本吧
g0d5xs 发表于 2023-12-30 11:30 | 显示全部楼层
看着还不错,其实直接打包一下bat就好了,是吧
kaif2n9j 发表于 2023-12-30 22:03 | 显示全部楼层
一般来说,这种部署要在linux环境比较好还是win下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

308

主题

2692

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部