以下是我在rhle as5 中编写和验证通过的源码包lamp架构部署脚本的源代码,想学习Shell编程和lamp架
构部署的朋友可参考一下,脚本的解释将陆续的增加。
使用方法:
把软件包httpd-2.2.13.tar.bz2、mysql-5.1.37.tar.gz 、php-5.2.9.tar.gz,和本脚本放在同一目
把软件包httpd-2.2.13.tar.bz2、mysql-5.1.37.tar.gz 、php-5.2.9.tar.gz,和本脚本放在同一目
录下,(建议新建一目录放置以上3个包和脚本)。
软件包版本不同的,只需修改按如下格式修改3个变量
HTTP="httpd-2.2.13"
MYSQL="mysql-5.1.37"
PHP="php-5.2.9"
使用过程中如有任何问题和需改进之处,望告知。
软件包版本不同的,只需修改按如下格式修改3个变量
HTTP="httpd-2.2.13"
MYSQL="mysql-5.1.37"
PHP="php-5.2.9"
使用过程中如有任何问题和需改进之处,望告知。
以下是脚本源代码:
!/bin/bash
# author:maoguoqing
# mail:mmyy0906@qq.com
# QQ:346466186
# tel:13718234323
# welcome to use
HTTP="httpd-2.2.13"
MYSQL="mysql-5.1.37"
PHP="php-5.2.9"
!/bin/bash
# author:maoguoqing
# mail:mmyy0906@qq.com
# QQ:346466186
# tel:13718234323
# welcome to use
HTTP="httpd-2.2.13"
MYSQL="mysql-5.1.37"
PHP="php-5.2.9"
##########------------install apache--------------#############
function HTTPINSTALL() {
rm -rf ${HTTP}
tar -xvf ${HTTP}.tar.* || exit 1
cd ${HTTP}
rm -rf ${HTTP}
tar -xvf ${HTTP}.tar.* || exit 1
cd ${HTTP}
./configure \
--prefix=/usr/local/apache2 \
--enable-mime-magic \
--enable-ssl \
--enable-rewrite \
--enable-so \
--with-mpm=worker \ || exit 2
make clean
make || exit 3
make install || exit4
--prefix=/usr/local/apache2 \
--enable-mime-magic \
--enable-ssl \
--enable-rewrite \
--enable-so \
--with-mpm=worker \ || exit 2
make clean
make || exit 3
make install || exit4
export PATH=${PATH}:/usr/local/apache2/bin
apachectl start
curl -I http://localhost && echo -e "install done \n httpd is running"
apachectl start
curl -I http://localhost && echo -e "install done \n httpd is running"
}
function REMOVE()
{
rpm -q httpd
if [ "$?" == "0" ]; then
service httpd stop
rpm -e httpd || yum -y remove httpd
HTTPINSTALL
else
/usr/local/apache2/bin/apachectl stop
rm -rf /usr/local/apache2
HTTPINSTALL
fi
}
{
rpm -q httpd
if [ "$?" == "0" ]; then
service httpd stop
rpm -e httpd || yum -y remove httpd
HTTPINSTALL
else
/usr/local/apache2/bin/apachectl stop
rm -rf /usr/local/apache2
HTTPINSTALL
fi
}
ps -ef | grep http | grep -v grep
if [ $? = 0 ]; then
echo -e "ATTENTION: \n httpd is already running.\n remove input "y" please.\n or else
if [ $? = 0 ]; then
echo -e "ATTENTION: \n httpd is already running.\n remove input "y" please.\n or else
program will exit."
read MAO
if [ $MAO = y ]; then
REMOVE
elif [ $MAO = Y ];then
REMOVE
else
echo "you input is "${MAO}", so I am exit."
exit 99
fi
else
HTTPINSTALL
fi
read MAO
if [ $MAO = y ]; then
REMOVE
elif [ $MAO = Y ];then
REMOVE
else
echo "you input is "${MAO}", so I am exit."
exit 99
fi
else
HTTPINSTALL
fi
##########------------install mysql--------------#############
adduser mysql
mkdir -p /usr/local/mysql/data
rm -rf ${MYSQL}
tar xvf ${MYSQL}.tar.* || exit 11
cd ${MYSQL}
mkdir -p /usr/local/mysql/data
rm -rf ${MYSQL}
tar xvf ${MYSQL}.tar.* || exit 11
cd ${MYSQL}
./configure \
--prefix=/usr/local/mysql \
--with-named-curses-libs=/usr/lib/libncursesw.so.5 \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--localstatedir=/usr/local/mysql/data \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-mysqld-user=mysql || exit 12
make clean
make || exit 13
make install || exit 14
--prefix=/usr/local/mysql \
--with-named-curses-libs=/usr/lib/libncursesw.so.5 \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--localstatedir=/usr/local/mysql/data \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-mysqld-user=mysql || exit 12
make clean
make || exit 13
make install || exit 14
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
lsof -i:3306
if [ S? = 0 ];then
echo -e "haha mysql install success. \n mysql is runing"
else
echo "sorry, start fail."
fi
lsof -i:3306
if [ S? = 0 ];then
echo -e "haha mysql install success. \n mysql is runing"
else
echo "sorry, start fail."
fi
##########------------install php--------------#############
rm -rf ${PHP}
tar xvf ${PHP}.tar.* || exit 31
cd ${PHP}
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-xml \
--enable-dom \
--with-iconv \
--with-gd \
--with-openssl \
--enable-ftp || exit 32
make clean
make || exit 33
make install || exit 34
echo "php install success."
exit 0
tar xvf ${PHP}.tar.* || exit 31
cd ${PHP}
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-xml \
--enable-dom \
--with-iconv \
--with-gd \
--with-openssl \
--enable-ftp || exit 32
make clean
make || exit 33
make install || exit 34
echo "php install success."
exit 0
转载于:https://blog.51cto.com/maoguoqing/204033