PHP 5 install issues


#1

Hello,

I’ve been trying to install PHP 5 thr/SSH for a little while and am getting a very persistent error.


make: warning: Clock skew detected. Your build may be incomplete.
rm: cannot lstat .' in.’: Stale NFS file handle

This happens towards the end, during the PHP install, when it does the PDO headers.

Here’s the script I’m using:

#!/bin/sh

Script updated 2006-12-25 by Carl McDade (hiveminds.co.uk) to allow memory limit and

freetype

Script updated 2007-11-24 by Andrew (ajmconsulting.net) to allow 3rd wget line to pass

LIBMCRYPT version information (was set as static download file name previously.)

Save the code to a file as *.sh

Abort on any errors

set -e

The domain in which to install the PHP CGI script.

export DOMAIN=“your.domain.com

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

Pre-download clean up!!!

rm -rf $SRCDIR $DISTDIR

Update version information here.

PHP5="php-5.2.5"
LIBICONV="libiconv-1.11"
LIBMCRYPT="libmcrypt-2.5.7"
LIBXML2="libxml2-2.6.32"
LIBXSLT="libxslt-1.1.24"
MHASH="mhash-0.9.7.1"
ZLIB="zlib-1.2.3"
CURL="curl-7.14.0"
LIBIDN="libidn-0.6.8"
CCLIENT="imap-2004g"
CCLIENT_DIR=“imap-2004g” # Another pest!
FREETYPE=“freetype-2.1.10”

What PHP features do you want enabled?

PHPFEATURES="–prefix=${INSTALLDIR}
–with-config-file-path=${INSTALLDIR}/etc/php5/${DOMAIN}
–enable-fastcgi
–enable-force-cgi-redirect
–with-xml
–with-libxml-dir=${INSTALLDIR}
–with-freetype-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-memory-limit
–enable-ftp
–enable-exif
–enable-sockets
–enable-wddx
–with-iconv=${INSTALLDIR}
–enable-sqlite-utf8
–enable-calendar
–with-curl=${INSTALLDIR}
–enable-mbstring
–enable-mbregex
–enable-bcmath
–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

set up directories

mkdir -p ${SRCDIR}
mkdir -p ${INSTALLDIR}
mkdir -p ${DISTDIR}
cd ${DISTDIR}

Get all the required packages

wget -c http://us.php.net/get/${PHP5}.tar.gz/from/this/mirror
wget -c ftp://ftp.mtu.ru/.3/FreeBSD/ports/distfiles/libiconv-1.11.tar.gz
wget -c ftp://ftp.uni-weimar.de/pub/unix/libmcrypt-2.5.7.tar.gz
wget -c ftp://ftp.eenet.ee/pub/gentoo/distfiles/libxml2-2.6.32.tar.gz
wget -c ftp://ftp.eenet.ee/pub/gentoo/distfiles/libxslt-1.1.24.tar.gz
wget -c

ftp://ftp.ausmac.net/disk1/security/cryptography/libraries/mhash/mhash-0.9.7.1.tar.gz
wget -c ftp://ftp.imagemagick.net/pub/ImageMagick/delegates/zlib-1.2.3.tar.gz
wget -c

ftp://ftp.eutelia.it/pub/SunFreeware_Mirror/companioncd/sources/curl-7.14.0.tar.gz
wget -c

ftp://ftp.eutelia.it/pub/SunFreeware_Mirror/companioncd/sources/freetype-2.1.10.tar.gz
wget -c ftp://ftp.42.org/pub/FreeBSD/distfiles/libidn-0.6.8.tar.gz
wget -c ftp://ftp.ru/pub/sunfreeware/SOURCES/imap-2004g.tar.gz

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


cd ${SRCDIR}

Unpack them all

echo Extracting ${PHP5}…
tar xzf ${DISTDIR}/${PHP5}.tar.gz
echo Done.
echo Extracting ${LIBICONV}…
tar xzf ${DISTDIR}/${LIBICONV}.tar.gz
echo Done.
echo Extracting ${LIBMCRYPT}…
tar xzf ${DISTDIR}/${LIBMCRYPT}.tar.gz
echo Done.
echo Extracting ${LIBXML2}…
tar xzf ${DISTDIR}/${LIBXML2}.tar.gz
echo Done.
echo Extracting ${LIBXSLT}…
tar xzf ${DISTDIR}/${LIBXSLT}.tar.gz
echo Done.
echo Extracting ${MHASH}…
tar xzf ${DISTDIR}/${MHASH}.tar.gz
echo Done.
echo Extracting ${ZLIB}…
tar xzf ${DISTDIR}/${ZLIB}.tar.gz
echo Done.
echo Extracting ${CURL}…
tar xzf ${DISTDIR}/${CURL}.tar.gz
echo Done.
echo Extracting ${LIBIDN}…
tar xzf ${DISTDIR}/${LIBIDN}.tar.gz
echo Done.
echo Extracting ${CCLIENT}…
uncompress -cd ${DISTDIR}/${CCLIENT}.tar.gz |tar x
echo Done.
echo Extracting ${FREETYPE}…
tar xzf ${DISTDIR}/${FREETYPE}.tar.gz
echo Done.

Build them in the required order to satisfy dependencies.

#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 clean

make
make install

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

make clean

make
make install

#freetype
cd ${SRCDIR}/${FREETYPE}
./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

#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
rm -rf $SRCDIR $DISTDIR
echo ---------- INSTALL COMPLETE! ----------

Any help is much appreciated. Thank you.

Daniel


#2

Is there a particular reason you’re attempting a complete customisation?

If you just want to get at your php.ini, see my signature.

Maximum Cash Discount on any plan with MAXCASH

How To Install PHP.INI / ionCube on DreamHost


#3

That would be perfect because all I need to do is enable the MBString feature. The upgrade was an extra.

However, at this point I’m getting a 500 Internal Server error.

Is there any type of diagnostics, or refresh for the original PHP install that’s on my account? I didn’t make any changes to the /usr/local/bin/php folder, so I’m thinking the issue is with the system seeing that install (v5.0.3).

I uploaded the dh_phpini.php file. It’s located at: www.hauntedhamilton.com/dh_phpini.php

Thanks!

UPDATE:

Got it to run, however with the new .htaccess file, I’m getting the 500 error again.

Thanks.


#4

Yes, remove any AddHandler edits you made to .htaccess in the domain folder and delete the folders created by the script you ran previously. This will revert your environment back to the default DreamHost PHP environment.

Maximum Cash Discount on any plan with MAXCASH

How To Install PHP.INI / ionCube on DreamHost


#5

Thanks you for all your help.

After removing all of the wayward PHP files, the install reverted back to my updated PHP version (v5.2.6), with the MBString enabled. The app that needed it is working great.

You’ve been a great help.

Daniel