#!/bin/bash
path="/server/packages"
file_path="/server/packages/LAMP-php7"
php_file_path="/usr/local/php"
apache_file_path="/usr/local/apache2"
mysql_user=mysql
mysql_package=mysql-5.5.48
mysql_path=/usr/local/mysql
init(){
if [ ! -d $path ];then
mkdir -p $path
fi
yum -y install lsof net-tools gcc* openssl zlib-devel libpng-devel gcc gcc-c++ make unzip libxml2-devel python-devel libtool* openssl-devel ncurses-devel cmake bison &>/dev/null
if [ $? -ne 0 ];then
echo "Install depend failed."
exit
fi
if [ ! -e $path/LAMP-php7.zip ];then
wget -P ${path}/ http://172.16.0.7/packages/LAMP-php7.zip &>/dev/null
if [ $? -ne 0 ];then
echo "download error."
exit 1
else
echo "download success."
fi
fi
unzip $path/LAMP-php7.zip -d /server/packages/ &>/dev/null
if [ $? -eq 0 ];then
cd $path/LAMP-php7
/bin/ls *.tar.gz > ls.list
for TAR in `cat ls.list`
do
/bin/tar -xf $TAR
done
[ $? -eq 0 ]&&{
echo "uzip success."
}
else
echo "unzip error."
exit 1
fi
}
install_apache(){
echo "install libxml2..."
cd $file_path/libxml2-2.9.1
./configure --prefix=/usr/local/libxml2/ &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "libxml2 install failed."
exit 2
}
else
echo "libxml2 configure failed."
exit 2
fi
echo "install libmcrypt..."
cd $file_path/libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "libmcrypt install failed."
exit 2
}
else
echo "libmcrypt configure failed."
exit 2
fi
echo "install libltdl..."
cd $file_path/libmcrypt-2.5.8/libltdl
./configure --enable-ltdl-install &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "libltdl install failed."
exit 2
}
else
echo "libltdl configure failed."
exit 2
fi
echo "install mhash..."
cd $file_path/mhash-0.9.9.9
./configure &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "mhash install failed."
exit 2
}
else
echo "mhash configure failed."
exit 2
fi
echo "install mcrypt..."
cd $file_path/mcrypt-2.6.8
export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "mcrypt install failed."
exit 2
}
else
echo "mcrypt configure failed."
exit 2
fi
echo "install zlib..."
cd $file_path/zlib-1.2.3
./configure &>/dev/null
sed -i "s#\-O3 -DUSE_MMAP#\-O3 -DUSE_MMAP -fPIC#g" Makefile
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "zlib install failed."
exit 2
}
else
echo "zlib configure failed."
exit 2
fi
echo "install libpng..."
cd $file_path/libpng-1.2.31
./configure --prefix=/usr/local/libpng &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "libpng install failed."
exit 2
}
else
echo "libpng configure failed."
exit 2
fi
echo "install jpeg6..."
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6/man/man1
cd $file_path/jpeg-6b
\cp -a /usr/share/libtool/config/config.sub ./
\cp -a /usr/share/libtool/config/config.guess ./
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "jpeg6 install failed."
exit 2
}
else
echo "jpeg6 configure failed."
exit 2
fi
echo "install freetype..."
cd $file_path/freetype-2.3.5
./configure --prefix=/usr/local/freetype &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "freetype install failed."
exit 2
}
else
echo "freetype configure failed."
exit 2
fi
echo "install apache..."
\cp -a $file_path/apr-1.4.6 $file_path/httpd-2.4.7/srclib/apr
\cp -a $file_path/apr-util-1.4.1 $file_path/httpd-2.4.7/srclib/apr-util
cd $file_path/pcre-8.34
./configure &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "pcre install failed."
exit 2
}
else
echo "pcre configure failed."
exit 2
fi
cd $file_path/httpd-2.4.7
./configure --prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc --with-included-apr \
--enable-so --enable-deflate=shared --enable-expires=shared \
--enable-rewrite=shared --enable-ssl &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "apache install failed."
exit 2
}
else
echo "apache configure failed."
exit 2
fi
wget -O ${apache_file_path}/etc/httpd.conf http://172.16.0.7/profile/httpd.conf &>/dev/null
if [ $? -eq 0 ];then
/usr/local/apache2/bin/apachectl start
id=`/usr/sbin/lsof -i :80|wc -l`
if [ $id -gt 0 ];then
echo -e "\033[32mhttp start success\033[0m"
else
echo "start failed,please check it."
fi
else
echo "download config file fafield."
exit 1
fi
echo "install ncurses..."
cd $file_path/ncurses-5.9
./configure --with-shared --without-debug --without-ada --enable-overwrite &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "ncurses install failed."
exit 2
}
else
echo "ncurses configure failed."
exit 2
fi
}
#mysql_user=mysql
#mysql_path=/usr/local/mysql
init_mysql(){
id ${mysql_user} &>/dev/null
[ $? -ne 0 ]&&{
useradd -r -s /sbin/nologin ${mysql_user} &>/dev/null
if [ $? -eq 0 ];then
echo "${mysql_user} create success."
else
echo "${mysql_user} create failed,please check it!"
exit 1
fi
}
}
install_mysql(){
echo "Installing..."
cd ${file_path}/${mysql_package}/
cmake -DCMAKE_INSTALL_PREFIX=${mysql_path} \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -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_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=${mysql_user} \
-DMYSQL_TCP_PORT=3306 &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -ne 0 ]&&{
echo -e "\033[31minstall failed,please check.\033[0m"
exit 1
}||{
echo "install success."
ln -s ${mysql_path}/bin/* /usr/local/bin/ &>/dev/null
}
fi
cd ${mysql_path}/
chown -R root .
chown -R mysql data/
echo "configure mysql..."
\cp ${file_path}/${mysql_package}/support-files/my-medium.cnf /etc/my.cnf &>/dev/null
cd ${mysql_path}
./scripts/mysql_install_db --user=mysql &>/dev/null
if [ $? -eq 0 ];then
\cp ${mysql_path}/support-files/mysql.server /etc/init.d/mysqld &>/dev/null
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld &>/dev/null
chkconfig mysqld on &>/dev/null
service mysqld start
mysqladmin -uroot password 123456
[ $? -eq 0 ]&&{
echo "mysql configure success."
}||{
echo -e "\033[31mconfigure falied,please check it.\033[0m"
}
fi
}
install_php(){
echo "install php..."
cd ${file_path}/php-7.0.7
./configure --prefix=/usr/local/php/ \
--with-config-file-path=/usr/local/php/etc/ \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-libxml-dir=/usr/local/libxml2/ \
--with-jpeg-dir=/usr/local/jpeg6/ \
--with-png-dir=/usr/local/libpng/ \
--with-freetype-dir=/usr/local/freetype/ \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring=all --enable-sockets \
--with-pdo-mysql=/usr/local/mysql --with-gd \
--without-pear &>/dev/null
if [ $? -eq 0 ];then
make &>/dev/null
make install &>/dev/null
[ $? -eq 0 ]||{
echo "php install failed."
exit 2
}
else
echo "php configure failed."
exit 2
fi
echo "php config..."
mkdir /usr/local/php/etc
\cp $file_path/php-7.0.7/php.ini-production /usr/local/php/etc/php.ini
/usr/local/apache2/bin/apachectl -t
if [ $? -eq 0 ];then
/usr/local/apache2/bin/apachectl restart
echo "php install & config success."
else
echo "php config fialed,please check it."
exit 2
fi
}
mon(){
wget -O /usr/local/apache2/mon-httpd.sh http://172.16.0.7/scripts/mon-httpd.sh &>/dev/null
echo "*/5 * * * * /bin/sh /usr/local/apache2/mon-httpd.sh" >>/var/spool/cron/root
echo "/bin/sh /usr/local/apache2/mon-httpd.sh" >>/etc/rc.local
}
main(){
init
install_apache
init_mysql
install_mysql
install_php
mon
}
main