#!/bin/sh
#####################################
# PHP Installer #
# Written For Centos 5.x #
#####################################
# Author: Sandeep Sangamreddi #
# URL: gleez.com #
# GitHub: github.com/sandeepone #
#####################################
echo php5-install.sh
echo - This script compiles and installs PHP 5.3 and all prerequisites
echo
read -p "(Press any key to continue)" temp;
echo
date
# Abort on any errors
set -e
# Where do you want all this stuff built? I'd recommend picking a local
# filesystem.
# ***Don't pick a directory that already exists!*** We clean up after
# ourselves at the end!
SRCDIR =/opt/php/source
# And where should it be installed?
INSTALLDIR =/opt/php/php-5.3.24
# Set DISTDIR to somewhere persistent, if you plan to muck around with this
# script and run it several times!
DISTDIR =/opt/php/dist
# Update version information here.
PHP5 = "php-5.3.24"
# Push the install dir's bin directory into the path
export PATH = ${ INSTALLDIR }/bin: $PATH
# set up directories
#mkdir -p ${SRCDIR}
mkdir -p ${ INSTALLDIR }
mkdir -p ${ DISTDIR }
cd ${ SRCDIR }
wget -O ${ PHP5 }.tar.gz -c http://us.php.net/distributions/ ${ PHP5 }.tar.gz
# Pre-prep cleanup
rm -rf ${ INSTALLDIR }
rm -rf ${ SRCDIR }/ ${ PHP5 }
echo ---------- Unpacking downloaded archives. This process may take several minutes! ----------
cd ${ SRCDIR }
echo Extracting ${ PHP5 }...
tar xzf ${ SRCDIR }/ ${ PHP5 }.tar.gz
echo Done.
# What PHP features do you want enabled?
PHPFEATURES = "--prefix=${INSTALLDIR} \
--with-config-file-path=${INSTALLDIR}/etc \
--with-config-file-scan-dir=${INSTALLDIR}/etc/php.d \
--with-libdir=lib64 \
--with-xmlrpc \
--with-tidy \
--with-libxml-dir=/usr \
--with-freetype-dir=/usr \
--with-openssl \
--with-mhash=/usr \
--with-mcrypt=/usr \
--with-bz2 \
--with-zlib-dir=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-gd \
--enable-soap \
--enable-bcmath \
--enable-gd-native-ttf \
--enable-ftp \
--enable-exif \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-pcntl \
--enable-mbregex \
--enable-mbstring \
--enable-wddx \
--enable-cli \
--enable-ftp \
--enable-zip \
--enable-simplexml \
--enable-session \
--enable-shmop \
--enable-dom \
--enable-ctype \
--enable-sqlite-utf8 \
--enable-calendar \
--with-iconv \
--with-curl=/usr \
--with-mysql=/usr \
--with-mysqli \
--with-pdo-mysql \
--enable-inline-optimization \
--enable-zend-multibyte \
--with-t1lib \
--with-pcre-regex \
--with-imap \
--with-gettext \
--with-imap=/usr \
--with-kerberos \
--with-mcrypt \
--with-imap-ssl=/usr \
--enable-fpm"
################################
# User-editable settings (end) #
################################
echo ------------------------------------------------------
echo -- Compiling and installing PHP 5 and prerequisites --
echo ------------------------------------------------------
# Build packages in the required order to satisfy dependencies.
#
# PHP 5
#
echo
echo --- Building PHP 5 ---
echo
cd ${ SRCDIR }/ ${ PHP5 }
echo " Configuring..."
./configure ${ PHPFEATURES } \
## > /dev/null 2>&1
echo " Making..."
nice -n 19 make #> /dev/null 2>&1
echo " Installing..."
make install > /dev/null 2>&1
echo " Copying configuration file (PHP.INI)"
mkdir -p ${ INSTALLDIR }/etc
cp ${ SRCDIR }/ ${ PHP5 }/php.ini-development ${ INSTALLDIR }/etc/php.ini
cp ${ INSTALLDIR }/etc/php-fpm.conf.default ${ INSTALLDIR }/etc/php-fpm.conf
#mkdir -p -m 0755 ${EXTENSIONSDIR}
mkdir -p -m 0755 ${ INSTALLDIR }/var/run
mkdir -p -m 0755 ${ INSTALLDIR }/etc/php.d
mkdir -p -m 0755 ${ INSTALLDIR }/etc/pool.d
#chown -R www-data:www-data /var/log/php-fpm
echo
echo --- Cleaning up
echo
#rm -rf $SRCDIR $DISTDIR
cp /opt/php/php-5.3.24-fpm ${ INSTALLDIR }/etc/php-5.3.24-fpm
chmod 755 ${ INSTALLDIR }/etc/php-5.3.24-fpm
echo
echo "Change port and pid"
echo Run this command to start fpm process:
echo ${ INSTALLDIR }/etc/php-5.3.24-fpm start
echo
echo check port: netstat -lnp | grep ':9001 '
echo
echo ---------------------------------------
echo ---------- INSTALL COMPLETE! ----------
echo ---------------------------------------
echo
echo ---------- INSTALL APC! ----------
echo ---------------------------------------
echo cd ${ INSTALLDIR }/etc
echo pecl -C ./pear.conf update-channels
echo pecl -C ./pear.conf install apc
echo
echo vi ${ INSTALLDIR }/etc/php.ini
echo