LAMP自动安装脚本(上)

简介:

    LAMP环境是linux下web的常用组合,为了节省时间,不用每次都手动编译安装,一种方法是将安装好的包制作为RPM或则DEB包,另外一种方式就是采用脚本的形式自动编译安装。

脚本目录结构:

脚本分为LAMP的安装脚本,配置文件,全局变量,源码包

脚本功能演示:

安装httpd

安装mysql

安装php

安装memcached

脚本代码:

全局变量global_variables.sh


  
  
  1. #! /bin/bash 
  2.  
  3. #### global directory variables######### 
  4. SOURCE_DIR="./sources" 
  5. UNPACK_DIR="./unpack_sources" 
  6. INSTALL_ROOT="/opt" 
  7. CONF_SAMPLE="./conf_samples" 

安装httpd脚本


  
  
  1. #! /bin/bash 
  2.  
  3.  
  4.  
  5. ###### variables ################### 
  6. GLOABLE_VARIABLE_FILE="./global_variables.sh" 
  7. HTTPD_SOURCE_FILENAME="httpd-2.2.19.tar.gz" 
  8. UNPACK_DIR_NAME="httpd-2.2.19" 
  9.  
  10.  
  11.  
  12.  
  13.  
  14. #### source the global variable ##### 
  15. source ${GLOABLE_VARIABLE_FILE} 
  16.   
  17.  
  18. #########OK and failed ######## 
  19. GREEN_OK="\e[0;32m\033[1mOK\e[m"  
  20. RED_FAILED="\e[0;31m\033[1mFAILED\e[m" 
  21.  
  22.  
  23.  
  24. #######lots of  functions ########## 
  25.  
  26.  
  27. error() 
  28.     local FORMAT="$1" 
  29.     shift 
  30.     printf "${RED_FAILED} - ${FORMAT}" "$@" >&1 
  31.  
  32. info() 
  33.     local FORMAT="$1" 
  34.     shift 
  35.     printf "INFO - ${FORMAT}" "$@" >&1 
  36.  
  37. warning() 
  38.     local FORMAT="$1" 
  39.     shift 
  40.     print "WARNING - ${FORMAT}" "$@" >&1 
  41.  
  42.  
  43. check_source() 
  44.     info "Checking source file %s.\n" "${HTTPD_SOURCE_FILENAME}" 
  45.     if [ -f ${SOURCE_DIR}/${HTTPD_SOURCE_FILENAME} ] 
  46.     then 
  47.         info "Httpd file %s is ${GREEN_OK}.\n" "${HTTPD_SOURCE_FILENAME}" 
  48.     else 
  49.         error "%s file not found.\n" "${HTTPD_SOURCE_FILENAME}" 
  50.         exit $? 
  51.     fi 
  52.  
  53. unpack_file() 
  54.     info "Unpack the source file %s .\n" "${HTTPD_SOURCE_FILENAME}" 
  55.     tar -zxf ${SOURCE_DIR}/${HTTPD_SOURCE_FILENAME}  -C  ${UNPACK_DIR} 
  56.     if [[ $? != 0 ]] 
  57.     then 
  58.         error "Can not unpack file %s.\n"  "${HTTPD_SOURCE_FILENAME}" 
  59.         exit $? 
  60.     else  
  61.         info "Unpack %s done.${GREEN_OK}\n" "${HTTPD_SOURCE_FILENAME}" 
  62.     fi 
  63.  
  64. install_file() 
  65.     cd ${UNPACK_DIR}/${UNPACK_DIR_NAME} 
  66.     local CONFIG_VARIABLE="--prefix=${INSTALL_ROOT}/httpd --enable-so --enable-cgi --enable-proxy --enable-vhost-alias --enable-cache --enable-disk-cache --enable-mem-cache --enable-rewrite --enable-mods-shared=all --enable-usertrack --enable-ssl" 
  67.     local USER="www" 
  68.     info "Add the www user ...\n" 
  69.     groupadd -g 501 ${USER} 
  70.     useradd -g ${USER} -u 501 -s /sbin/nologin ${USER} 
  71.     info "Add user www done.\n" 
  72.     info "Now configure the httpd,this will take serveral minutes...\n" 
  73.     ./configure ${CONFIG_VARIABLE}  1>/dev/null 
  74.     if [[ $? == 0 ]] 
  75.     then 
  76.         info "Httpd configure ${GREEN_OK}. Now  make and make install.this will take serveral minutes... \n" 
  77.         make  1>/dev/null && make install  1>/dev/null 
  78.         if [[  $? == 0 ]] 
  79.         then 
  80.             info "HTTPD installed ${GREEN_OK}.\n" 
  81.         else 
  82.             error "Httpd not installed.\n " 
  83.             exit $? 
  84.         fi 
  85.     else 
  86.         error "Configure is not complete.\n"   
  87.         exit $? 
  88.     fi 
  89.     cd - 
  90.  
  91.  
  92. ################## main ########################## 
  93.  
  94. #Check the httpd file 
  95. info "Check the httpd file.\n" 
  96. check_source 
  97.  
  98. #Unpack the httpd file 
  99. unpack_file 
  100.  
  101.  
  102. #install the file 
  103. info "Begin to install the httpd service.\n" 
  104. install_file 
  105.  
  106.  
  107. mkdir -p /opt/www/html 









本文转自 waydee 51CTO博客,原文链接:http://blog.51cto.com/waydee/847099,如需转载请自行联系原作者
目录
相关文章
|
11月前
|
算法 安全 数据安全/隐私保护
基于AES的遥感图像加密算法matlab仿真
本程序基于MATLAB 2022a实现,采用AES算法对遥感图像进行加密与解密。主要步骤包括:将彩色图像灰度化并重置大小为256×256像素,通过AES的字节替换、行移位、列混合及轮密钥加等操作完成加密,随后进行解密并验证图像质量(如PSNR值)。实验结果展示了原图、加密图和解密图,分析了图像直方图、相关性及熵的变化,确保加密安全性与解密后图像质量。该方法适用于保护遥感图像中的敏感信息,在军事、环境监测等领域具有重要应用价值。
446 35
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
443 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
监控 Java 开发者
监控堆外JVisualVM工具
监控堆外JVisualVM工具
342 2
|
Web App开发 前端开发 JavaScript
JavaScript Web Full Stack 全栈开发者路线及内容推荐
本文详细介绍了一条全面的JavaScript全栈开发者学习路径,涵盖基础知识、前端和后端开发、数据库与API、MERN Stack与React Native、工程化与部署、安全与测试、未来趋势等方面。推荐了HTML5、CSS3、JavaScript(ES6+)、Node.js、React.js、Vue.js、Svelte、Tailwind CSS、Web Components等关键技术,并提供了丰富的书籍、博主和在线资源。此外,还回顾了JavaScript的历史,并推荐了多个活跃的社区和平台,帮助开发者紧跟技术前沿。
|
数据采集 SQL 关系型数据库
在 MySQL 中使用 ASCII
【8月更文挑战第11天】
494 1
在 MySQL 中使用 ASCII
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
678 4
|
存储 Unix Linux
揭秘Linux硬件组成:从内核魔法到设备树桥梁,打造你的超级系统,让你的Linux之旅畅通无阻,震撼体验来袭!
【8月更文挑战第5天】Linux作为顶级开源操作系统,凭借其强大的功能和灵活的架构,在众多领域大放异彩。本文首先概述了Linux的四大核心组件:内核、Shell、文件系统及应用程序,并深入探讨了内核的功能模块,如存储、CPU及进程管理等。接着介绍了设备树(Device Tree),它是连接硬件与内核的桥梁,通过DTS/DTB文件描述硬件信息,实现了跨平台兼容。此外,还简要介绍了Linux如何通过本地总线高效管理硬件资源,并阐述了文件系统与磁盘管理机制。通过这些内容,读者可以全面了解Linux的硬件组成及其核心技术。
283 3
使用Pattern.compile进行正则表达式匹配
使用Pattern.compile进行正则表达式匹配
|
存储 消息中间件 Java
【分布式链路追踪技术】sleuth+zipkin
【分布式链路追踪技术】sleuth+zipkin
291 2

热门文章

最新文章