Mysql、Apache、Php一键安装Shell Scripts

回复 收藏
本帖最后由 一起营销 于 2015-1-9 17:43 编辑
  1. 懒人专用 ~测试过好几次了,应该没有什么问题 默认安装的版本分别是:mysql-5.1.40 apache-2.2.16 php-5.3.2
[hide=d30]#!/bin/bash
####        测试过好几次了,应该没有什么问题,不过这说不准,关键还是看人品(脚本写得不行,肯定要推卸责任阿)
####        默认安装的版本分别是:mysql-5.1.40 apache-2.2.16 php-5.3.28 安装其它版本需要更换相应的源码包,不过肯定是会出问题的。
####        有没有办法一次搞定,安装什么版本都可以,喔~~ 你刚才说了什么?好吧,这个问题就交给你了。
####        
#-----------------------------------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------------------------------

##### mysql apache php download address

mysql='http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz'
apache='http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz'
php='http://cn2.php.net/distributions/php-5.3.28.tar.gz'

##### local address mysql apache php

mysql_local='mysql-5.1.40-linux-i686-icc-glibc23.tar.gz'
apache_local='httpd-2.2.16.tar.gz'
php_local='php-5.3.28.tar.gz'

##### Check the local directory exists Mysql Apache Php

checkfile()
{
if [ -e $mysql_local ]; then
echo -e "\033[32m Mysql Installation package already exists, do not download directly installed!\033[0m"
else
echo -e "\033[31m Mysql Installation package does not exist, you need to re-download, please wait ......\033[0m"
wget $mysql||yum -y install wget&& wget $mysql
fi

if [ -e $apache_local ]; then
echo -e "\033[32m Apache Installation package already exists, do not download directly installed!\033[0m"
else
echo -e "\033[31m Apache Installation package does not exist, you need to re-download, please wait ......\033[0m"
wget $apache
fi


if [ -e $php_local ]; then
echo -e "\033[32m Php Installation package already exists, do not download directly installed!\033[0m"
else
echo -e "\033[31m Php Installation package does not exist, you need to re-download, please wait ......\033[0m"
wget $php

fi
}

#-----------------------------------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------------------------------

#########         Install Mysql Apache PHp Functions

##### Install Mysql Functions

install_mysql()

{
tar -zxf $mysql_local && mv /usr/local/mysql /usr/local/mysql_old 2>/dev/null || mkdir -p /usr/local/mysql
mv mysql-5.1.40-linux-i686-icc-glibc23/* /usr/local/mysql/
useradd -s /sbin/nologin mysql 2>/dev/null || userdel -r mysql && useradd -s /sbin/nologin mysql 2>/dev/null
mv /data/mysql /data/mysql_back 2>/dev/null;mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql 2>/dev/null || /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
\cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
\cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
sed -i ':a $!N;$!ba;{s/\(datadir=[^\n]*\)\n/\1\/data\/mysql\n/}' /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start && echo -e "\033[32m Mysql has been successfully installed \033[0m"
}

##### Install Apache Functions

install_apache()

{
tar -zxf $apache_local
cd httpd-2.2.16
yum -y install gcc.$(uname -m) gcc-c++.$(uname -m)
yum -y install pcre.$(uname -m) pcre-devel.$(uname -m) apr.$(uname -m) apr-devel.$(uname -m)
yum -y install apr-devel.$(uname -m)
yum -y install zlib-devel.$(uname -m)
./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most
make && make install && echo -e "\033[32m Apache has been successfully installed \033[0m"
cd -
}

##### Install Php Functions

install_php()

{
tar zxf php-5.3.28.tar.gz
cd php-5.3.28
yum -y install libxml2-devel.$(uname -m)
yum -y install openssl openssl-devel.$(uname -m)
yum -y install bzip2 bzip2-devel.$(uname -m)
yum -y install libjpeg-turbo.$(uname -m) libjpeg-turbo-static.$(uname -m) libjpeg-turbo-devel.$(uname -m) freetype-demos.$(uname -m) freetype-devel.$(uname -m) freetype.$(uname -m)
yum -y install libpng.$(uname -m) libpng-devel.$(uname -m)
rpm -ivh "http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm"||rpm -ivh "http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm"
yum -y install libmcrypt-devel.$(uname -m)
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6
make || ln -s usr/lib/libltdl.so.7.2.1 usr/lib/libltdl.so
make
make install && echo -e "\033[32m Php has been successfully installed \033[0m"
}

#####        Apache Combine Php

acp()

{
sed -i '/AddType application\/x\-gzip \.gz \.tgz/a\ AddType application/x\-httpd\-php \.php' /usr/local/apache2/conf/httpd.conf
sed -i 's/DirectoryIndex index\.html/DirectoryIndex index\.html index\.htm index\.php/g' /usr/local/apache2/conf/httpd.conf
sed -i 's/\#ServerName www\.example\.com\:80/ServerName localhost\:80/g' /usr/local/apache2/conf/httpd.conf
echo -e "<?php\n echo 'php script successfully tested';\n?>" >/usr/local/apache2/htdocs/test.php
/usr/local/apache2/bin/apachectl -t >/dev/null && echo -e "\033[32m Apache Syntax OK \033[0m"
/usr/local/apache2/bin/apachectl start >/dev/null && echo -e "\033[32m Apache Successful start \033[0m"
result=$(curl -s localhost/test.php)
echo -e "\033[31m $result \033[0m"

}


#-----------------------------------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------------------------------

##########        Remove Mysql Apache Php

#####        Remove Mysql

remove_mysql()

{
service mysqld stop && echo -e "\033[31m service mysqld stop OK \033[0m"
chkconfig --del mysqld && echo -e "\033[31m service mysqld delete OK \033[0m"
killall -9 mysqld && echo -e "\033[31m Process mysqld kill OK\033[0m"
rm -rf /etc/init.d/mysqld && echo -e "\033[31m /etc/init.d/mysqld Deleted OK\033[0m"
rm -rf /etc/my.cnf && echo -e "\033[31m /etc/my.cnf Deleted OK\033[0m"
rm -rf /data/mysql && echo -e "\033[31m /data/mysql Deleted OK\033[0m"
rm -rf /usr/local/mysql && echo -e "\033[31m /usr/local/mysql Deleted OK\033[0m"
rm -rf /var/lock/subsys/mysql && echo -e "\033[31m /var/lock/subsys/mysql Deleted OK\033[0m"
userdel -r mysql && echo -e "\033[31m Mysqluser Deleted OK\033[0m"

}

#####        Remove Apache

remove_apache()

{        
killall -9 httpd && echo -e "\033[31m Process httpd kill OK\033[0m"
rm -rf /usr/local/apache2 && echo -e "\033[31m /usr/local/apache2 Deleted OK\033[0m"
}


#####        Remove Php

remove_php()

{
rm -rf /usr/local/php && echo -e "\033[31m /usr/local/php Deleted OK\033[0m"

}

#-----------------------------------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------------------------------

#####        Select Menu

selection=""
while [ "$selection" != "0" ]; do
echo "
Scripts Name:auto_install_LAMP.sh
Version:0.1        
By:iansiu
My Blog:http://laowang.me
support & Feedback:youweixiao@163.com
"
echo "

PROGRAM MENU


1 - Install Mysql、Apache、Php
2 - Remove Mysql、Apache、Php

0 - exit program "
echo ""
read -n1 -p " Enter selection: " selection
echo ""
case $selection in
1 ) clear; checkfile&&install_mysql&&install_apache&&install_php&&acp;exit ;;
2 ) clear; if [ -e /etc/init.d/mysqld ]; then remove_mysql&&remove_apache&&remove_php; else echo -e "\033[31m No installation can not be uninstalled \033[0m"; fi ;;
0 ) exit ;;
* ) clear; echo "Please enter 1, 2, or 0"
esac
done{{{密码回复可见}}}
2015-01-09 17:40 举报
已邀请:
0

wuhen

赞同来自:

看看。。。。。。。。
0

暗夜独行客

赞同来自:

看看哈
0

阿铭 管理员

赞同来自:

写的不错。
0

yuankaituo

赞同来自:

zzzzzzzzzzzzzzzz
0

Wagskun

赞同来自:

看看哈。。。。。
0

2422606568

赞同来自:

好好看看
0

看风景

赞同来自:

瞄一眼
0

大自然

赞同来自:

看看,网上有个工具叫做XAMPP也可以实现一键安装
0

MR_K

赞同来自:

看看
0

寻@轨迹

赞同来自:

谢谢分享
0

qidi2015

赞同来自:

看看这个批处理。
0

潘有成

赞同来自:

看看

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: