Error with Custom Install Script.. PHPIZE


#1

midessa@forum.midessa.net (ya, that;s editied…) :~/source/eaccelerator-0.9.5$ phpize
Configuring for:
PHP Api Version: 20020918
Zend Module Api No: 20020429
Zend Extension Api No: 20050606
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

Script:
#!/bin/bash

Abort on any errors

set -e

The domain in which to install the PHP CGI script.

export DOMAIN=“forum.midessa.net

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=${HOME}/source

And where should it be installed?

INSTALLDIR=${HOME}/php5

Set DISTDIR to somewhere persistent, if you plan to muck around with this

script and run it several times!

DISTDIR=${HOME}/dist

Update version information here.

AUTOCONF="autoconf-2.60"
AUTOMAKE="automake-1.9.6"
CCLIENT="imap-2004g"
CCLIENT_DIR=“imap-2004g” # Another pest!
CURL="curl-7.15.5"
LIBEVENT="libevent-1.1b"
LIBICONV="libiconv-1.11"
LIBIDN="libidn-0.6.7"
LIBMCRYPT="libmcrypt-2.5.7"
LIBTOOL="libtool-1.5.22"
LIBXML2="libxml2-2.6.26"
LIBXSLT="libxslt-1.1.17"
M4="m4-1.4.7"
MHASH="mhash-0.9.7.1"
PHP5="php-5.1.6"
ZLIB=“zlib-1.2.3”

What PHP features do you want enabled?

PHPFEATURES="–prefix=${INSTALLDIR}
–with-config-file-path=${INSTALLDIR}/etc/php5/${DOMAIN}
–enable-force-cgi-redirect
–with-xml
–with-libxml-dir=${INSTALLDIR}
–enable-soap
–with-openssl=/usr
–with-mhash=${INSTALLDIR}
–with-mcrypt=${INSTALLDIR}
–with-zlib-dir=${INSTALLDIR}
–with-jpeg-dir=/usr
–with-png-dir=/usr
–with-gd
–enable-gd-native-ttf
–enable-ftp
–with-exif
–enable-sockets
–enable-wddx
–with-iconv=${INSTALLDIR}
–enable-sqlite-utf8
–enable-calendar
–with-curl=${INSTALLDIR}
–enable-mbstring
–enable-mbregex
–with-mysql=/usr
–with-mysqli
–without-pear
–with-gettext
–with-imap=${INSTALLDIR}
–with-imap-ssl=/usr"

---- end of user-editable bits. Hopefully! ----

Push the install dir’s bin directory into the path

export PATH=${INSTALLDIR}/bin:$PATH

#setup directories
mkdir -p ${SRCDIR}
mkdir -p ${INSTALLDIR}
mkdir -p ${DISTDIR}
cd ${DISTDIR}

Get all the required packages

wget -c http://us3.php.net/distributions/${PHP5}.tar.gz
wget -c http://mirrors.usc.edu/pub/gnu/libiconv/${LIBICONV}.tar.gz
wget -c http://easynews.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.7.tar.gz
wget -c http://ftp.acc.umu.se/pub/GNOME/sources/libxml2/2.6/${LIBXML2}.tar.gz
wget -c http://ftp.acc.umu.se/pub/GNOME/sources/libxslt/1.1/${LIBXSLT}.tar.gz
wget -c http://superb-west.dl.sourceforge.net/sourceforge/mhash/${MHASH}.tar.gz
wget -c http://www.zlib.net/${ZLIB}.tar.gz
wget -c http://curl.haxx.se/download/${CURL}.tar.gz
wget -c ftp://alpha.gnu.org/pub/gnu/libidn/${LIBIDN}.tar.gz
wget -c ftp://ftp.cac.washington.edu/imap/old/${CCLIENT}.tar.Z

wget -c http://ftp.gnu.org/gnu/m4/${M4}.tar.gz
wget -c http://ftp.gnu.org/gnu/libtool/${LIBTOOL}.tar.gz
wget -c http://ftp.gnu.org/gnu/autoconf/${AUTOCONF}.tar.gz
wget -c http://ftp.gnu.org/gnu/automake/${AUTOMAKE}.tar.gz
wget -c http://www.monkey.org/~provos/${LIBEVENT}.tar.gz

echo ---------- Unpacking downloaded archives. This process may take several minutes! ----------

cd ${SRCDIR}

Unpack them all

tar xzf ${DISTDIR}/${PHP5}.tar.gz
tar xzf ${DISTDIR}/${LIBICONV}.tar.gz
tar xzf ${DISTDIR}/${LIBMCRYPT}.tar.gz
tar xzf ${DISTDIR}/${LIBXML2}.tar.gz
tar xzf ${DISTDIR}/${LIBXSLT}.tar.gz
tar xzf ${DISTDIR}/${MHASH}.tar.gz
tar xzf ${DISTDIR}/${ZLIB}.tar.gz
tar xzf ${DISTDIR}/${CURL}.tar.gz
tar xzf ${DISTDIR}/${LIBIDN}.tar.gz
tar xzf ${DISTDIR}/${M4}.tar.gz
tar xzf ${DISTDIR}/${LIBTOOL}.tar.gz
tar xzf ${DISTDIR}/${AUTOCONF}.tar.gz
tar xzf ${DISTDIR}/${AUTOMAKE}.tar.gz
tar xzf ${DISTDIR}/${LIBEVENT}.tar.gz
uncompress -cd ${DISTDIR}/${CCLIENT}.tar.Z |tar x

Build them in the required order to satisfy dependencies.

begin custom installation

#m4 - MUST BE FIRST
cd ${SRCDIR}/${M4}
./configure --prefix=${INSTALLDIR}
make
make install

#libtool - MUST BE SECOND
cd ${SRCDIR}/${LIBTOOL}
./configure --prefix=${INSTALLDIR}
make
make install

#autoconf - MUST BE THIRD
cd ${SRCDIR}/${AUTOCONF}
./configure --prefix=${INSTALLDIR}
make
make install

#automake - MUST BE FOURTH
cd ${SRCDIR}/${AUTOMAKE}
./configure --prefix=${INSTALLDIR}
make
make install

#libiconv
cd ${SRCDIR}/${LIBICONV}
./configure --enable-extra-encodings --prefix=${INSTALLDIR}

make clean

make
make install

#libxml2
cd ${SRCDIR}/${LIBXML2}
./configure --with-iconv=${INSTALLDIR} --prefix=${INSTALLDIR}

make clean

make
make install

#libxslt
cd ${SRCDIR}/${LIBXSLT}
./configure --prefix=${INSTALLDIR}
–with-libxml-prefix=${INSTALLDIR}
–with-libxml-include-prefix=${INSTALLDIR}/include/
–with-libxml-libs-prefix=${INSTALLDIR}/lib/

make clean

make
make install

#zlib
cd ${SRCDIR}/${ZLIB}
./configure --shared --prefix=${INSTALLDIR}

make clean

make
make install

#libmcrypt
cd ${SRCDIR}/${LIBMCRYPT}
./configure --disable-posix-threads --prefix=${INSTALLDIR}

make clean

make
make install

#libmcrypt lltdl issue!!
cd ${SRCDIR}/${LIBMCRYPT}/libltdl
./configure --prefix=${INSTALLDIR} --enable-ltdl-install
make
make install

#mhash
cd ${SRCDIR}/${MHASH}
./configure --prefix=${INSTALLDIR}

make clean

make
make install

#libidn
cd ${SRCDIR}/${LIBIDN}
./configure --with-iconv-prefix=${INSTALLDIR} --prefix=${INSTALLDIR}

make clean

make
make install

#cURL
cd ${SRCDIR}/${CURL}
./configure --with-ssl=${INSTALLDIR} --with-zlib=${INSTALLDIR}
–with-libidn=${INSTALLDIR} --enable-ipv6 --enable-cookies
–enable-crypto-auth --prefix=${INSTALLDIR}

make clean

make
make install

c-client

cd ${SRCDIR}/${CCLIENT_DIR}
make ldb

Install targets are for wusses!

cp c-client/c-client.a ${INSTALLDIR}/lib/libc-client.a
cp c-client/*.h ${INSTALLDIR}/include

#libevent
cd ${SRCDIR}/${LIBEVENT}
./configure --prefix=${INSTALLDIR}
#make clean
make
make install

#PHP 5
cd ${SRCDIR}/${PHP5}
./configure ${PHPFEATURES}

make clean

make
make install

#copy config file
mkdir -p ${INSTALLDIR}/etc/php5/${DOMAIN};
cp ${SRCDIR}/${PHP5}/php.ini-dist ${INSTALLDIR}/etc/php5/${DOMAIN}/php.ini

#copy PHP CGI
mkdir -p ${HOME}/${DOMAIN}/cgi-bin
chmod 0755 ${HOME}/${DOMAIN}/cgi-bin
cp ${INSTALLDIR}/bin/php ${HOME}/${DOMAIN}/cgi-bin/php.cgi
echo ---------- INSTALL COMPLETE! ----------


#2

Thanks for the reply.

I’ll be sure to post the solution when I find it.

Definately.


#3

Uh huh…right

–rlparker


#4

You don’t have to be a jerk about it. Maybe if you started off with something more conversational than a huge script, people would be more inclined to read it.

Autoconf is not installed on the Dreamhost shared servers. You would need a custom php install to handle this.

Google Rocks
Autoconf from Gnu

http://benconley.net
http://teamshocker.com