专栏首页编程乐园LAMP环境自动化安装脚本

LAMP环境自动化安装脚本

一、脚本的环境介绍

此脚本运行在RHEL(Centos) 6.4版本及以上

运行此脚本需注意:

1、主机需要能够上网

2、需了解软件之间的相互依赖性。

二、脚本的介绍

脚本是由函数组成,每一个函数实现一个功能,采用select菜单显示+case

三、脚本的功能介绍

1、支持某台机器单独安装某一个软件,如Apache、MYSQL、PHP

2、支持某台机器一键安装LAMP环境

3、如果想一个一个的安装LAMP架构,请注意安装顺序:Apache–>MYSQL–>PHP

4、会自行的把服务开启,并加入到开机自动启动的服务列表中

LAMP自动化安装脚本代码

#脚本内容如下

#!/bin/bash

#Date:2018-5-20 14:08:55

#Author Blog:

# https://www.yangxingzhen.com

#Author WeChat:

# 微信公众号:小柒博客

#Author mirrors site:

# https://mirrors.yangxingzhen.com

#About the Autho

# BY:YangXingZhen

# Mail:xingzhen.yang@yangxingzhen.com

#Auto Install LAMP Environment

source /etc/rc.d/init.d/functions

#Define APR path variables

APR_URL=https://mirrors.yangxingzhen.com/ap

APR_FILES=apr-1.6.3.tar.gz

APR_FILES_DIR=apr-1.6.3

APR_PREFIX=/usr/local/ap

#Define APR-util path variables

APR_UTIL_URL=https://mirrors.yangxingzhen.com/apr-util

APR_UTIL_FILES=apr-util-1.6.1.tar.gz

APR_UTIL_FILES_DIR=apr-util-1.6.1

APR_UTIL_PREFIX=/usr/local/apr-util

#Define PCRE path variables

PCRE_URL=https://mirrors.yangxingzhen.com/pcre

PCRE_FILES=pcre-8.41.tar.gz

PCRE_FILES_DIR=pcre-8.41

PCRE_PREFIX=/usr/local/pcre

#Define Apache path variables

APACHE_URL=https://mirrors.yangxingzhen.com/apache

APACHE_FILES=httpd-2.4.28.tar.gz

APACHE_FILES_DIR=httpd-2.4.28

APACHE_PREFIX=/usr/local/apache

APACHE_INIT_FILE=/etc/init.d/httpd

#Define Boost path variables

Boost_URL=https://mirrors.yangxingzhen.com/mysql

Boost_File=boost_1_59_0.tar.gz

#Define Mysql path variables

MYSQL_URL=http://mirrors.163.com/mysql/Downloads/MySQL-5.7

MYSQL_FILES=mysql-5.7.29.tar.gz

MYSQL_FILES_DIR=mysql-5.7.29

MYSQL_PREFIX=/usr/local/mysql

MYSQL_DIR=/data/mysql

MYSQL_USER=mysql

#Define PHP path variables

PHP_URL=http://mirrors.sohu.com/php

PHP_FILE=php-7.3.7.tar.gz

PHP_FILE_DIR=php-7.3.7

PHP_PREFIX=/usr/local/php

USER=apache

#Define ZIP path variables

ZIP_URL=https://nih.at/libzip

ZIP_FILE=libzip-1.2.0.tar.gz

ZIP_FILE_DIR=libzip-1.2.0

source /etc/rc.d/init.d/functions

function Install_Apache (){

#Install APR

if [ ! -d ${APR_PREFIX} ];then

yum -y install gcc gcc-c++ wget

cd ${HOME} && wget -c ${APR_URL}/${APR_FILES}

tar zxf ${APR_FILES}

cd ${APR_FILES_DIR}

./configure --prefix=${APR_PREFIX}

if [ $? -eq 0 ];then

make && make install

action "The APR Install Sussess..." /bin/true

else

aciton "The APR Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[32mThe APR Already Install...\033[0m"

fi

#Install APR-util

if [ ! -d ${APR_UTIL_PREFIX} ];then

yum -y install expat expat-devel

cd ${HOME} && wget -c ${APR_UTIL_URL}/${APR_UTIL_FILES}

tar zxf ${APR_UTIL_FILES}

cd ${APR_UTIL_FILES_DIR}

./configure --prefix=${APR_UTIL_PREFIX} --with-apr=${APR_PREFIX}

if [ $? -eq 0 ];then

make && make install

action "The APR-util Install Sussess..." /bin/true

else

aciton "The APR-util Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[32mThe APR-util Already Install...\033[0m"

fi

#Install PCRE

if [ ! -d ${PCRE_PREFIX} ];then

cd ${HOME} && wget -c ${PCRE_URL}/${PCRE_FILES}

tar zxf ${PCRE_FILES}

cd ${PCRE_FILES_DIR}

./configure --prefix=${PCRE_PREFIX}

if [ $? -eq 0 ];then

make && make install

action "The PCRE Install Sussess..." /bin/true

else

aciton "The PCRE Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[32mThe PCRE Already Install...\033[0m"

fi

#Install Apache

if [ ! -d ${APACHE_PREFIX} ];then

yum -y install openssl openssl-devel

cd ${HOME} && wget -c ${APACHE_URL}/${APACHE_FILES}

tar zxf ${APACHE_FILES}

cd ${APACHE_FILES_DIR}

./configure --prefix=${APACHE_PREFIX} \

--with-apr=${APR_PREFIX} \

--with-apr-util=${APR_UTIL_PREFIX} \

--enable-so \

--enable-rewrite \

--enable-ssl \

--with-pcre=${PCRE_PREFIX} \

--with-mpm=worker

if [ $? -eq 0 ];then

make && make install

action "The Apache Install Sussess..." /bin/true

else

aciton "The Apache Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[32mThe Apache Already Install...\033[0m"

exit 0

fi

}

function Install_Mysql (){

if [ ! -d ${MYSQL_PREFIX} ];then

#Install Package

yum -y install ncurses-devel perl perl-devel cmake wget gcc gcc-c++ bison* autoconf openssl-devel openssl

#Install Boost

cd ${HOME} && wget -c ${Boost_URL}/${Boost_File}

tar zxf ${Boost_File} -C /usr/local/

#Install MYSQL

wget -c ${MYSQL_URL}/${MYSQL_FILES}

tar zxf ${MYSQL_FILES}

cd ${MYSQL_FILES_DIR}

cmake . -DCMAKE_INSTALL_PREFIX=${MYSQL_PREFIX} \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DMYSQL_DATADIR=${MYSQL_DIR} \

-DSYSCONFDIR=/etc \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost_1_59_0 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_TCP_PORT=3306 \

-DWITH_READLINE=1 \

-DMYSQL_USER=${MYSQL_USER} \

-DWITH_SSL=yes

if [ $? -eq 0 ];then

make && make install

action "The Mysql Install Sussess..." /bin/true

else

action "The Mysql Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[31mThe Mysql Already Install...\033[0m"

exit 1

fi

}

function Install_PHP() {

#Install Libzip

yum –y install wget gcc gcc-c++

cd ${HOME} && wget -c ${ZIP_URL}/${ZIP_FILE}

tar zxf ${ZIP_FILE}

cd ${ZIP_FILE_DIR}

./configure

if [ $? -eq 0 ];then

make && make install

action "The Libzip Install Sussess..." /bin/true

else

action "The Libzip Install Failed..." /bin/false

exit 1

fi

cat >/etc/ld.so.conf <<EOF

/usr/local/lib64

/usr/local/lib

/usr/lib

/usr/lib64

EOF

ldconfig -v

#Install PHP

if [ ! -d ${PHP_PREFIX} ];then

#Install Package

yum -y install epel-release

yum -y install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devellibxml2 libxml2-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel cmake

cd ${HOME} && wget -c ${PHP_URL}/${PHP_FILE}

tar zxf ${PHP_FILE}

cd ${PHP_FILE_DIR}

./configure --prefix=${PHP_PREFIX} \

--with-config-file-path=/etc \

--with-apxs2=/usr/local/apache/bin/apxs \

--enable-fpm \

--with-fpm-user=${USER} \

--with-fpm-group=${USER} \

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \

--enable-soap \

--with-libxml-dir \

--with-xmlrpc \

--with-openssl \

--with-mhash \

--with-pcre-regex \

--with-sqlite3 \

--with-zlib \

--enable-bcmath \

--with-iconv \

--with-bz2 \

--enable-calendar \

--with-curl \

--with-cdb \

--enable-dom \

--enable-exif \

--enable-fileinfo \

--enable-filter \

--with-pcre-dir \

--enable-ftp \

--with-gd \

--with-openssl-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib-dir \

--with-freetype-dir \

--enable-gd-jis-conv \

--with-gettext \

--with-gmp \

--with-mhash \

--enable-json \

--enable-mbstring \

--enable-mbregex \

--enable-mbregex-backtrack \

--with-onig \

--enable-pdo \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-zlib-dir \

--with-pdo-sqlite \

--with-readline \

--enable-session \

--enable-shmop \

--enable-simplexml \

--enable-sockets \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

--enable-wddx \

--with-libxml-dir \

--with-xsl \

--enable-zip \

--enable-mysqlnd-compression-support \

--with-pear \

--enable-opcache

if [ $? -eq 0 ];then

\cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

make && make install

action "The PHP Install Sussess..." /bin/true

else

action "The PHP Install Failed..." /bin/false

exit 1

fi

else

echo -e "\033[31mThe PHP already Install...\033[0m"

exit 1

fi

}

function LAMP_Config() {

#Apache config and Integrating PHP

useradd -s /sbin/nologin ${USER} >/dev/null 2>&1

\cp ${APACHE_PREFIX}/bin/apachectl ${APACHE_INIT_FILE}

chmod o+x ${APACHE_INIT_FILE}

sed -i 's/User daemon/User apache/' ${APACHE_PREFIX}/conf/httpd.conf

sed -i 's/Group daemon/Group apache/' ${APACHE_PREFIX}/conf/httpd.conf

sed -i '/AddType *.* .tgz/a\\tAddType application/x-httpd-php .php' ${APACHE_PREFIX}/conf/httpd.conf

sed -i 's/index.html/index.php index.html/' ${APACHE_PREFIX}/conf/httpd.conf

sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' ${APACHE_PREFIX}/conf/httpd.conf

#Config PHP

\cp php.ini-production /etc/php.ini

\cp ${PHP_PREFIX}/etc/php-fpm.conf.default ${PHP_PREFIX}/etc/php-fpm.conf

\cp ${PHP_PREFIX}/etc/php-fpm.d/www.conf.default ${PHP_PREFIX}/etc/php-fpm.d/www.conf

\cp sapi/fpm/php-fpm.service /usr/lib/systemd/system

cat >/usr/local/php/etc/php-fpm.d/www.conf <<EOF

[www]

listen = 0.0.0.0:9000

listen.mode = 0666

user = ${USER}

group = ${USER}

pm = dynamic

pm.max_children = 128

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 10000

rlimit_files = 1024

slowlog = log/\$pool.log.slow

EOF

#Mysql Config

useradd -s /sbin/nlogin mysql >/dev/null 2>&1

mkdir -p ${MYSQL_DIR}

chown -R ${MYSQL_USER}.${MYSQL_USER} ${MYSQL_DIR}

cat >/etc/my.cnf <<EOF

[mysqld]

#数据存储目录

datadir = ${MYSQL_DIR}

#socket通信文件

socket = /tmp/mysql.sock

#使用mysql用户启动

user = ${MYSQL_USER}

#MYSQL服务运行的端口号

port = 3306

#开启bin-log日志

log-bin = mysql-bin

#MYSQL服务ID号

server-id = 1

#定义error错误文件

log-error = ${MYSQL_DIR}/mysqld.log

#PID文件路径

pid-file = mysqld.pid

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#设置字符集为utf8

character-set-server = utf8

[client]

default-character-set = utf8

port = 3306

socket = /tmp/mysql.sock

[mysql]

default-character-set = utf8

EOF

#Initialization Mysql

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql/ --basedir=/usr/local/mysql

ln -sf ${MYSQL_PREFIX}/bin/* /usr/bin

\cp ${MYSQL_PREFIX}/support-files/mysql.server /etc/init.d/mysqld

chmod o+x /etc/init.d/mysqld

#Start Mysql、php-fpm、Apache and Add MySQL、php-fpm、Apache boot self start

${APACHE_INIT_FILE} start

systemctl start php-fpm

/etc/init.d/mysqld start

sed -i '/#!\/bin\/sh/a#description: apache web server' ${APACHE_INIT_FILE}

sed -i '/#!\/bin\/sh/a#chkconfig: - 20 90' ${APACHE_INIT_FILE}

chkconfig --add httpd

chkconfig httpd on

chkconfig --add mysqld

chkconfig mysqld on

systemctl enable php-fpm

}

PS3="Please enter you select install Menu:"

select i in Install_LAMP Install_Apache Install_Mysql Install_PHP LAMP_Config quit

do

case $i in

Install_LAMP)

Install_Apache

Install_Mysql

Install_PHP

LAMP_Config

;;

Install_Apache)

Install_Apache

;;

Install_Mysql)

Install_Mysql

;;

Install_PHP)

Install_PHP

;;

LAMP_Config)

LAMP_Config

;;

quit)

echo -e "\033[32mExit selection Menu.\033[0m"

exit 1

esac

done

原文链接:https://www.i7ti.cn/65.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LAMP环境自动化安装脚本

    3、如果想一个一个的安装LAMP架构,请注意安装顺序:Apache–>MYSQL–>PHP

    用户8449980
  • LAMP环境搭建WordPress自动化安装脚本

    此脚本是LAMP环境安装WordPress脚本,有需要朋友可以参考,脚本内容如下:

    子润先生
  • LNMP环境自动化安装脚本

    3、如果想一个一个的安装LNMP架构,请注意安装顺序:Nginx–>Mysql–>PHP

    子润先生
  • LAMP环境搭建Zabbix监控平台自动化安装脚本-2

    此脚本是LAMP环境搭建Zabbix监控平台自动化安装脚本,有需要朋友可以参考,脚本内容如下:

    子润先生
  • 编写shell脚本自动安装JDK环境

    链接:https://pan.baidu.com/s/1_T9Fod8H-P5xvJwgIUDr1g 提取码:3rfq

    朱季谦
  • 编写shell脚本自动安装node.js环境

    链接:https://pan.baidu.com/s/1PWmjKnbcBs9H8h-89-xNDA 提取码:bw6b

    朱季谦
  • LNMP环境搭建Zabbix监控平台自动化安装脚本

    此脚本是LNMP环境搭建Zabbix监控平台自动化安装脚本,有需要朋友可以参考,脚本内容如下:

    子润先生
  • Zabbix_Agentd自动化安装脚本

    [root@localhost ~]# vim auto_install_zabbix_agentd.sh

    子润先生
  • Redis自动化安装脚本

    [root@localhost ~]# vim auto_install_redis.sh

    子润先生
  • Apache自动化安装脚本

    [root@localhost ~]# vim auto_install_apache.sh

    子润先生
  • PHP自动化安装脚本

    [root@localhost ~]# vim auto_install_php.sh

    子润先生
  • Mysql自动化安装脚本

    [root@localhost ~]# vim auto_install_mysql.sh

    子润先生
  • 脚本自动化安装 erlang

    EltonZheng
  • Appium自动化环境安装

    转载至我同事https://www.cnblogs.com/gqv2009/p/12620773.html#autoid-0-0-0

    小小咸鱼YwY
  • 最小化安装Centos6.0之rpm安装LAMP环境

    安装apache httpd-2.2.15-5.el6.centos.i686.rpm   F 提示: error: Failed dependencie...

    苦咖啡
  • 一分钟安装fastDFS(脚本自动自动化安装)

    用脚本安装是不是非常简单,如果安装时候遇到任何错误欢迎大家留言提问,一般不会出现错误的。

    云上天
  • 手把手教你,嘴对嘴传达 ----源码编译安装部署LAMP平台(LAMP平台与编译安装详解,Apache,MySQL与PHP源码编译安装,LAMP平台搭建论坛)

    Linux操作系统之所以能够在十余年的时间里发展壮大以至于风靡全球,其开放源代码的特性是很重要的原因之一,及Linux操作系统中包括内核在内的所有软件都可以获得...

    不吃小白菜
  • robot自动化测试环境安装

    简单说下安装思路,先装语言(python3),再安装包管理工具(pip),然后才是自动化框架(robot)和lib插件(requests等)。对于一些基本的概念...

    py3study
  • 从零开始折腾博客(3):一键安装脚本LAMP.sh搭建Wordpress站点

    LAMP:Linux+Nginx+MySQL+PHP,为动态网站的搭建提供了一系列的平台支持。

    idealclover

扫码关注云+社区

领取腾讯云代金券