Apache可移植运行时( Apache Portable Runtime,简称APR)是Apache HTTP服务器的支持库,提供了一组映射到下层操作系统的API。如果操作系统不支持某个特定的功能,APR将提供一个模拟的实现。这样程序员使用APR编写真正可在不同平台上移植的程序。
最初,APR是作为Apache HTTP服务器的一部分而存在的,但是Apache软件基金会将其延伸成一个单独的项目。其他的应用程序可以使用APR来实现平台无关性。
#!/bin/bash
#LAMP_auto-install.sh
#2014-03-07
#System info:centos6.4-small install
#Note:
#1.Use the local ftp yum(centos.repo)
#2.Softs version:apache2.4 php5.4 mysql5.5.30,this softs is copy from a nfs server
#3.Mount -t nfs 10.10.54.150:/home/softs /mnt/softs
#4.The 10.10.54.150 is a nfs server
#### 5.This script is a test version, will continue to improve
#variables
yum_repo="[ftp]
name=ftp
baseurl=ftp://10.10.54.150/
gpgcheck=0
enable=1"
SOFT1="vim man openssh-server wget nfs*"
LAMP_ENV="gcc gcc-c++ make cmake automake autoconf cpp ncurses ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel pcre-devel libtool libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel"
#LAMP_SOFTS="http://mirrors.axint.net/apache/apr/apr-util-1.4.1.tar.gz
#http ://mirrors.axint.net/apache/apr/apr-1.4.8.tar.gz
#http://mirrors.axint.net/apache/apr/apr-iconv-1.2.1.tar.gz
#ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
#http://downloads.mysql.com/archives/get/file/mysql-5.5.30.tar.gz
#http://apache.fayea.com/apache-mirror//httpd/httpd-2.4.7.tar.gz"
#This function is used to determine whether each step in the right
function TRUE_FALSE {
if [ "$2" == 1 ]; then
echo "$1 is OK!"
else
echo "$1 is error,please check"
exit
fi
}
#Modify yum source supports local source
if [ ! -f /etc/yum.repos.d/centos.repo ]; then
gzip /etc/yum.repos.d/* >&/dev/null
echo "${yum_repo}" > /etc/yum.repos.d/centos.repo
fi
yum list &>/dev/null && yum=1 || yum=0
TRUE_FALSE yum ${yum}
#yum install
yum -y install ${SOFT1} &>/dev/null && soft1=1 || soft1=0
TRUE_FALSE soft1 ${soft1}
#lamp environment
yum -y install ${LAMP_ENV} &>/dev/null && lamp_env=1 || lamp_env=0
TRUE_FALSE lamp_env ${lamp_env}
#lamp softs
[ -d /home/softs ] || mkdir /home/softs
#echo ${LAMP_SOFTS} >> lamp.txt
#wget -i lamp.txt &>/dev/null && lamp_softs=1 || lamp_softs=0
#TRUE_FALSE lamp_softs ${lamp_softs}
#extracting the packages
[ -d /mnt/softs ] || mkdir /mnt/softs
mount -t nfs 10.10.54.150:/home/softs /mnt/softs && mounts=1 || mounts=0
TRUE_FALSE mounts_softs ${mounts}
cp -f /mnt/softs/* /home/softs
cd /home/softs
for i in `ls *.tar.gz`
do
tar xvf ${i}
done
#libmcrypt install
[ -d /home/softs/libmcrypt-2.5.7 ] && cd /home/softs/libmcrypt-2.5.7
./configure
TRUE_FALSE libmcrypt_conf $(($?+1))
make && make install
TRUE_FALSE libmcrypt_make $(($?+1))
#apr install
[ -d /home/softs/apr-1.4.8 ] && cd /home/softs/apr-1.4.8
sed -i "/.*\$RM\ \"\$cfgfile\"/d" configure
./configure '--prefix=/usr/local/apr'
TRUE_FALSE apr_conf $(($?+1))
make && make install
TRUE_FALSE apr_make $(($?+1))
#apr-util install
[ -d "/home/softs/apr-util-1.4.1" ] && cd /home/softs/apr-util-1.4.1
./configure "--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config"
TRUE_FALSE apr_util $(($?+1))
make && make install
TRUE_FALSE apr_util_make $(($?+1))
#apr-iconv install
[ -d "/home/softs/apr-iconv-1.2.1" ] && cd "/home/softs/apr-iconv-1.2.1"
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr/bin/apr-1-config
TRUE_FALSE apr_iconv $(($?+1))
make && make install
TRUE_FALSE apr_iconv $(($?+1))
#mysql install
groupadd mysql && useradd -g mysql mysql -s /sbin/nologin
[ -d /data/mysql ] || mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql
[ -d "/home/softs/mysql-5.5.30" ] && cd /home/softs/mysql-5.5.30
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/dbdata -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes
TRUE_FALSE mysql $(($?+1))
make && make install
TRUE_FALSE mysql_install $(($?+1))
#mysql config
cp -f /home/softs/mysql-5.5.30/support-files/my-large.cnf /etc/my.cnf
cp -f /home/softs/mysql-5.5.30/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
sed -i "/\[mysqld\]/a datadir=/data/mysql" /etc/my.cnf
sed -i "/^socket/d" /etc/my.cnf
sed -i "/\[mysqld\]/a socket=/usr/local/mysql/tmp/mysql.sock" /etc/my.cnf
sed -i "/\[client\]/a socket=/usr/local/mysql/tmp/mysql.sock" /etc/my.cnf
chown mysql.mysql /usr/local/mysql -R
/usr/local/mysql/scripts/mysql_install_db --user=root --datadir=/data/mysql --basedir=/usr/local/mysql
TRUE_FALSE install_db $(($?+1))
chown mysql.mysql /data/mysql -R
/etc/init.d/mysqld restart
echo "export PATH=${PATH}:/usr/local/mysql/bin" >> /etc/profile
#apache2 install
[ -d "/home/softs/httpd-2.4.7" ] && cd /home/softs/httpd-2.4.7
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-apr-iconv=/usr/local/apr-iconv --with-ssl --enable-ssl --enable-so --enable-deflate=shared --enable-expires=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support
TRUE_FALSE apache_config $(($?+1))
make && make install
TRUE_FALSE make_apache $(($?+1))
cp -f /usr/local/apache2/bin/apachectl /etc/init.d/httpd
sed -i "200,300s/.*DirectoryIndex.*/& index.html/g"
sed -i "/^#ServerName/a ServerName www.localhost.com:80" /usr/local/apache2/conf/httpd.conf
echo "export PATH=${PATH}:/usr/local/apache2/bin" >> /etc/profile
#php install
[ -d "/home/softs/php-5.4.26" ] && cd /home/softs/php-5.4.26
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock --with-gd --with-iconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt
TRUE_FALSE php_conf $(($?+1))
make && make install
TRUE_FALSE make_php $(($?+1))
#apache support php
sed -i "/^LoadModule\ php5_module/a AddType application/x-httpd-php .php .phtml" /usr/local/apache2/conf/httpd.conf
chown daemon.daemon -R /usr/local/apache2/htdocs
echo "hello" > /usr/local/apache2/htdocs/index.html