#!/usr/bin/env bash
# php ( fuer Apache 2 )
#
VERSION=5.2.17
APACHE_VERSION=2.2.29
APACHE_BASEDIR=/usr/local/httpd-${APACHE_VERSION}_php-${VERSION}
APXS=${APACHE_BASEDIR}/bin/apxs
PREFIX_PHP="/usr/local/php-$VERSION-httpd-${APACHE_VERSION}"
_srcdir=/usr/local/src/apache2
_logdir=${_srcdir}/log_php-${VERSION}_http-${APACHE_VERSION}_build
_pwd=`pwd`
_builddir=${_srcdir}/php-${VERSION}_http-${APACHE_VERSION}
mkdir -p $_logdir > /dev/null 2>&1
## --------------------------------------------------
## - get sources..
## -
cd $_srcdir
if [ ! -f ${_srcdir}/php-$VERSION.tar.bz2 ]; then
wget http://museum.php.net/php5/php-$VERSION.tar.bz2
fi
bunzip2 < ${_srcdir}/php-$VERSION.tar.bz2 | tar -xf - || exit 1
chown -R root.root php-$VERSION || exit 1
mv php-$VERSION $_builddir
cd $_builddir || exit 1
echo -e "\n\tgoing to configure.."
echo -e "\t(see ${_logdir}/php-configure.log for more details)"
# : ${_arch:=i686}
# : ${_arch:=athlon}
: ${_arch:=k8} ## --> x86-64 instructionset
##_cflags="-O2 -march=$_arch "
## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable.
## F77="/usr/bin/g77-3.4" \
## CXXCPP="/usr/bin/g++-3.4 -E" \
## CC="/usr/bin/gcc-3.4" \
## CXX="/usr/bin/g++-3.4" \
## CPP="/usr/bin/cpp-3.4" \
## CFLAGS="$_cflags" LDFLAGS="-s" \
CFLAGS="-fPIC" \
LDFLAGS="-s" \
./configure \
--prefix=$PREFIX_PHP \
--with-apxs2=$APXS \
--with-gd \
--with-config-file-path=${APACHE_BASEDIR}/conf \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-mysql-sock \
--with-pgsql \
--with-regex=system \
--enable-wddx \
--enable-exif \
--with-zlib \
--with-gdbm \
--with-openssl=/usr/local/openssl-0.9.8y \
--with-jpeg-dir \
--with-png-dir \
--with-curl \
--enable-dba \
--with-mcrypt \
--with-xpm-dir \
--with-t1lib \
--with-freetype-dir \
--enable-ftp \
--with-readline \
--enable-sockets \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-soap \
--enable-mbstring \
--enable-zip \
--enable-calendar \
--enable-bcmath \
--with-bz2 \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
> ${_logdir}/php-configure.log 2>&1 || exit 1
## --with-mm \ # does not work with apache v2.4
## --with-pgsql=/usr/local/pgsql \
## --with-mysql \
## --with-mysql \
## --with-mysqli \
## --with-pdo-mysql \
## --with-openssl=/usr/local/openssl-0.9.8y \
## --enable-force-cgi-redirect \
## --enable-track-vars \
## --with-tiff-dir \
## --with-ttf \
## --with-memcache \
## --with-xml \
echo -e "\n\tgoing to compile.."
echo -e "\t(see ${_logdir}/php-make.log for more details)"
make > ${_logdir}/php-make.log 2>&1 || exit 1
echo -e "\n\tgoing to install.."
echo -e "\t(see ${_logdir}/php-make_install.log for more details)"
make install > ${_logdir}/php-make_install.log 2>&1 || exit 1
#cp php.ini-dist ${APACHE_BASEDIR}/conf/php.ini || exit 1
[ -f ${APACHE_BASEDIR}/conf/php.ini ] && cp -a ${APACHE_BASEDIR}/conf/php.ini ${APACHE_BASEDIR}/conf/php.ini-`date +"%Y-%m-%d-%H%M"`
cp php.ini-dist ${APACHE_BASEDIR}/conf/php.ini || exit 1
_set_php_entries=""
echo ""
echo -n "do you want to set \"LoadModule\" entries in httpd.conf ? [y/n]: "
read _set_php_entries
if [ "y" = "$_set_php_entries" -o "Y" = "$_set_php_entries" -o "Yes" = "$_set_php_entries" -o "yes" = "$_set_php_entries" ];then
sed -i -r \
-e "s&(^\s*LoadModule php5_module.*$)&\1\n#\n AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml\n AddType application/x-httpd-php-source .phps\n#&" ${APACHE_BASEDIR}/conf/httpd.conf
#-e "s&(^\s*LoadModule php5_module.*$)&\1\n\n AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml\n AddType application/x-httpd-php-source .phps\n&" ${APACHE_BASEDIR}/conf/httpd.conf
fi
_set_link=""
echo
echo -n "do you want to set symlink /usr/local/php -> `basename $PREFIX_PHP` ? [y/n]: "
read _set_link
if [ "y" = "$_set_link" -o "Y" = "$_set_link" -o "Yes" = "$_set_link" -o "yes" = "$_set_link" ];then
if [ -L /usr/local/php ];then
rm -f /usr/local/php
fi
ln -s `basename $PREFIX_PHP` /usr/local/php
fi
## - special for debian. set manpath entries
## -
if [ -f /etc/manpath.config ];then
if ! grep /usr/local/php/man /etc/manpath.config > /dev/null 2<&1 ; then
echo >> /etc/manpath.config
echo "MANDATORY_MANPATH /usr/local/php/man /var/cache/man" >> /etc/manpath.config
echo "MANPATH_MAP /usr/local/php/bin /usr/local/php/man" >> /etc/manpath.config
echo "MANDB_MAP /usr/local/php/man /var/cache/man" >> /etc/manpath.config
fi
elif [ -f /etc/man.conf];then
if ! grep /opt/php/man /etc/man.conf > /dev/null 2<&1 ; then
echo >> /etc/man.conf
echo "MANPATH /opt/php/man /var/cache/man" >> /etc/man.conf
echo "MANPATH_MAP /opt/php/bin /opt/php/man" >> /etc/man.conf
fi
fi
cd $pwd
cat<
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
EOF
exit 0