LAMP一键安装包(Python版)

去年有出一个python整的LAMP自动安装,不过比较傻,直接调用的yum 去安装了XXX...不过这次一样有用shell..我也想如何不调用shell 来弄一个LAMP自动安装部署啥啥的..不过尼玛智商有限,没搞定,暂且分享一下

先说说目前的缺陷

    这个脚本总体来说是调用一个字典,组成这个字典是最花费时间的,实际代码到是没几行,本来想把Nginx 的部署也加进去,什么memcached phpmyadmin apc 这样的常用组件作为功能加进去,尼玛,时间不够,只能打打酱油,包括最后我也只能用一行行if来让脚本能run起来,好吧,我想时间充足了一定要改进下,如果你看到此代码,如果仔细看看啊,对...日志记录这块,因为我没有判断异常,函数执行失败,脚本不会写日志,有时间改一下,不过近期不太会改。

注:
     废话也不多说,这个脚本没有多少实用性,仅作分享学习之意吧,注(这类脚本还是用shell简单粗暴),有时间我也会改进它,也欢迎各位大牛来一起XXX

软件版本:

###怎么是这么奇葩的组合###
##等Nginx 加入的时候再改好了,只所以这么用是公司内部有套系统PHP版本要求高..所以直接用这个测试了..跑的也还行###
[[email protected] ~]# ls source/*.bz2 | sort
source/apr-1.5.1.tar.bz2
source/apr-util-1.5.3.tar.bz2
source/curl-7.36.0.tar.bz2
source/freetype-2.5.2.tar.bz2
source/httpd-2.4.9.tar.bz2
source/jpegsrc.v9a.tar.bz2
source/libmcrypt-2.5.8.tar.bz2
source/libpng-1.6.8.tar.bz2
source/libxml2-2.8.0.tar.bz2
source/mysql-5.1.58.tar.bz2
source/ncurses-5.9.tar.bz2
source/pcre-8.35.tar.bz2
source/php-5.5.12.tar.bz2
source/xcache-3.1.0.tar.bz2
source/zlib-1.2.8.tar.bz2

部分代码如下(具体看附件吧):

#!/usr/bin/python
##coding:utf-8##
#-------------------------------------------------------------------------------
# Name:        LAMP-Auto-Install.py
#
# Author:      LiuSha
#
# Created:     9/07/2014
# Copyright:   (c) http://www.ipython.me/ 2014
#-------------------------------------------------------------------------------
import os
import sys
import time
import getopt
import logging
import commands
from Dict import Global
from platform import machine

#Define Log Output#
logging.basicConfig(filename = os.path.join(os.getcwd(), ‘log.txt‘),
                    filemode = ‘w‘,
                    level = logging.DEBUG,
                    format = ‘%(asctime)s %(filename)s %(levelname)s %(message)s‘,
                    datefmt = ‘%a,%d %b %Y %H:%M‘,)

#Define Main Funtion Class#
class funcTion():
    def main(self):
        """define global main config. get global build param"""
        try:
            longargs = ["prefix=","debug=","webservice=","jobdir=","add-vhost=","add-func=","howto="]
            opts,args = getopt.getopt(sys.argv[1:],"h",longargs)
            Global.Mainargs = dict(opts)

        except getopt.GetoptError,err:
            print str(err)
            sys.exit(2)

    def echo(self,output,color = ‘32‘):
        """define calor Output funtion"""
        return ‘\033[1;{1};40m{0}\033[0m‘.format(output,color)

    def exec_commands(self,cmd,cmdAlias,istName = ‘‘):
        """define commands exec function"""
        status,output = commands.getstatusoutput("{0}".format(cmd))
        if int(status) == 0:
            logging.info(‘{0} execution successful -->\n ####---{1}---####‘.format(cmdAlias,istName))
        else:
            logging.debug(‘{0} execution exception -->\n ####---{1}---####\n\n{2}\n\n‘.format(cmdAlias,istName,output))

    def Unpack(self,istName,jobdir,tarname,tardir):
        """define unpack function"""
        print self.echo("%s Starting Install".ljust(80)%istName)
        if tarname[-3:] == ‘bz2‘:
            os.chdir("%s"%jobdir)
            os.system("tar jxf %s"%tarname)
            os.chdir("%s"%tardir)
        else:
            print self.echo(‘[Error1]:Unpark format Error‘,‘31‘)

    def command_Check(self,command,istCommand):
        """define Command check via Yum"""
        if os.path.exists("/usr/bin/%s"%command) == False:
            self.exec_commands("yum -y install {0} {1}".format(istCommand,Global.workMode[‘OutPut‘]),"yum install {0}".format(command),"command_Check[function]")
        else:
            pass

如何使用:

##解包##
[[email protected] ~]# unzip LAMP-Auto-Install.zip
Archive:  LAMP-Auto-Install.zip
   creating: source/
  inflating: source/apr-1.5.1.tar.bz2
  inflating: source/apr-util-1.5.3.tar.bz2
   creating: source/conf/
  inflating: source/conf/httpd
  inflating: source/conf/httpd.conf
  inflating: source/conf/iptables
  inflating: source/conf/limits.conf
  inflating: source/conf/my.cnf
  inflating: source/conf/mysqld
  inflating: source/conf/php.ini
  inflating: source/conf/sysctl.conf
  inflating: source/curl-7.36.0.tar.bz2
  inflating: source/freetype-2.5.2.tar.bz2
  inflating: source/httpd-2.4.9.tar.bz2
  inflating: source/jpegsrc.v9a.tar.bz2
  inflating: source/libmcrypt-2.5.8.tar.bz2
  inflating: source/libpng-1.6.8.tar.bz2
  inflating: source/libxml2-2.8.0.tar.bz2
  inflating: source/mysql-5.1.58.tar.bz2
  inflating: source/ncurses-5.9.tar.bz2
  inflating: source/pcre-8.35.tar.bz2
  inflating: source/php-5.5.12.tar.bz2
  inflating: source/xcache-3.1.0.tar.bz2
  inflating: source/zlib-1.2.8.tar.bz2
  inflating: Dict.py
  inflating: Main.py

我也象征性的整了个Help:

[[email protected] ~]# python Main.py --howto=enable
Usage:
               --prefix [=PATH]:
                        install path
               --jobdir [=PATH]:
                        source code path
               --debug  [enable|disable]:
                        whether friendly output
               --add-vhost [=Domain(www.ipython.com)]:
                        add virtual host
               --add-func  [=xcache]:
                        add function
               --webservice [apache|nginx]:
                        nginx or apache

               example:
                   python Main.py --prefix=/software --jobdir=`pwd`/source --webservice=apache --add-func=xcache
                   python Main.py --prefix=/software --jobdir=`pwd`/source --webservice=apache --debug=disable

run起来:

有定义logging,会记录日志,为当前目录中的log.txt

  

服务必须可以启动

[[email protected] ~]# service mysqld start
Starting MySQL SUCCESS!
[[email protected] ~]# service httpd start
Starting Apache web server:

» 转载保留版权:IT辰逸 » 《LAMP一键安装(Python版)》

» 本文链接地址:http://www.ipython.me/python/lamp-auto-install.html

» 本文版权采取:BY-NC-SA 协议进行授权,转载注明出处。除特别标注,本站所有文章均为原创。

» 如果喜欢可以:点此订阅本站

LAMP一键安装包(Python版)

时间: 2024-08-05 17:55:02

LAMP一键安装包(Python版)的相关文章

phpStudy for Linux (lnmp+lamp一键安装包)

phpStudy for Linux (lnmp+lamp一键安装包) phpStudy for Linux 支持Apache/Nginx/Tengine/Lighttpd, 支持php5.2/5.3/5.4/5.5切换 已经在centos-6.5,debian-7.4.,ubuntu-13.10测试成功 使用说明: 服务进程管理:phpstudy (start|stop|restart|uninstall)站点主机管理:phpstudy (add|del|list)ftpd用户管理:phpst

phpStudy for Linux (lnmp+lamp一键安装包) 符合國內

phpStudy for Linux (lnmp+lamp一键安装包) phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Tengine/Lighttpd/IIS7/8/6 phpStudy for Linux 支持Apache/Nginx/Tengine/Lighttpd,支持php5.2/5.3/5.4/5.5切换 已经在centos-6.5,debian-7.4.,ubuntu-13.10测试成功. 下载版:http://lamp.phpstudy.net/p

phpStudy:lnmp+lamp一键安装包

基于Linux 云主机,在centos-6.5,debian-7.4.,ubuntu-13.10测试成功. 部署 下载版:http://lamp.phpstudy.net/phpstudy.bin完全版:http://lamp.phpstudy.net/phpstudy-all.bin wget -c http://lamp.phpstudy.net/phpstudy.bin #伏笔VPS挑选下载版仍是完全版 chmod +x phpstudy.bin ./phpstudy.bin 使用说明 服

中国大陆Lamp一键安装包

下载安装(ssh登录服务器,执行如下操作即可,需要用到root用户权限来安装)源码编译安装wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gztar zxvf lanmp_laster.tar.gzsh install.sh(或sh in.sh) (默认会安装wdcp,如果只要web环境,而不想安装wdcp,这里改为 sh lanmp.sh即可) 4个可选安装,如下图 1,2,3 是安装独立的环境,不可自由切换nginx,apache,nginx+

服务器中 配置phpstudy一键安装包

在线phpstudy一键安装包    安装版: (很简单) wget -c http://lamp.phpstudy.net/phpstudy.bin  chmod +x phpstudy.bin    #权限设置 ./phpstudy.bin #运行安装 就是这么简单,看看吧,朋友们,有什么问题的话,可以联系我哦!QQ1742822567

lnmp、lamp、lnmpa一键安装包(Updated: 2016-4-12)

lnmp.lamp.lnmpa一键安装包(Updated: 2016-4-12) 文章目录 脚本特性 安装步骤 如何添加虚拟主机? 如何删除虚拟主机? 如何管理ftp账号? 数据备份 如何管理服务? 如何更新版本? 如何卸载? 如何重装? 更新日志 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux.Nginx/Tengine/OpenResty.MySQL/MariaDB/Percona.PHP),适用于CentOS 5~7(包括redhat).D

lnmp、lamp、lnmpa一键安装包(Updated: 2015-10-25)

lnmp.lamp.lnmpa一键安装包(Updated: 2015-10-25) 2014-12-26 Posted by yeho 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux.Nginx/Tengine.MySQL/MariaDB/Percona.PHP),适用于CentOS 5~7(包括redhat).Debian 6-8.Ubuntu 12.04-15.04的32位和64位. 脚本特性  持续不断更新 源码编译安装,大多数源码是最新s

lanmp v2.5一键安装包发布(包括lamp,lnmp,lnamp安装)

lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境的快速简易安装包,执行一个脚本,整个环境就安装完成就可使用,快速,方便易用,安全稳定1 支持lamp(linux+apache+php+mysql),lnmp(linux+nginx+php+mysql)环境快速安装部署上线2 支持lnamp,即支持nginx+apache组合环境的应用,也即是ng

锐速 ServerSpeeder 无限带宽破解版一键安装包

前言 锐速serverspeeder是一款TCP网络加速软件,能在Linux系统和Windows系统的服务器中安装,安装后能启到提高网络连接稳定性.带宽利用率.低访问失败率等作用,从而提高服务器网络访问速度.锐速并非实际增大服务器带宽,只是提高网络的稳定性和利用率而已.蜗牛在为服务器安装锐速后,测试服务器全球下载.本地上传下载速度变化不大:但使用超级ping发现,丢包现象明显减少.另外一个明显变化就是在同一VPS安装科学上网工具观看YouTube,没安装锐速前观看YouTube 720P视频非常