#!/bin/sh
#####################################
# PHP Installer #
# Written For Centos 5.x #
#####################################
# Author: Sandeep Sangamreddi #
# URL: gleez.com #
# GitHub: github.com/sandeepone #
#####################################
echophp5-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
exportPATH=${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}
echoExtracting ${PHP5}...
tar xzf ${SRCDIR}/${PHP5}.tar.gz
echoDone.
# 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"
echoRun this commandto start fpm process:
echo ${INSTALLDIR}/etc/php-5.3.24-fpm start
echo
echocheck port: netstat -lnp | grep ':9001 '
echo
echo ---------------------------------------
echo ---------- INSTALL COMPLETE! ----------
echo ---------------------------------------
echo
echo ---------- INSTALL APC! ----------
echo ---------------------------------------
echo cd ${INSTALLDIR}/etc
echopecl -C ./pear.conf update-channels
echopecl -C ./pear.conf install apc
echo
echovi ${INSTALLDIR}/etc/php.ini
echo