Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jul 2006 09:02:46 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        mamrg <lists@tuxdoit.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Upgrade PHP
Message-ID:  <44C1DBA6.7060900@infracaninophile.co.uk>
In-Reply-To: <44C15798.5060906@tuxdoit.com>
References:  <44C15798.5060906@tuxdoit.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig1C25FAAB08A1C687B4DD5223
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

mamrg wrote:
> Hi,
>=20
> First of all my apologies for the lame question, but i have this FreeBS=
D
>  server in which i have to upgrade PHP from 4 to 5.
>=20
> I've read about the ports, but got a little confused.

> Can you tell me please how can i make the update ?

Hmmm... this will take a little more effort than is usual when dealing
with the ports.  But not a huge amount more.

First, identify all of the ports that use php -- you want anything that
is a dependency of the core lang/php4 port.  You need a command something=

like the following, except you will have to alter the version number to
match what you have installed:

    % pkg_info -R php4-4.X.Y

Something like this:

    % pkg_info -R php4-4.4.2_1=20
    Information for php4-4.4.2_1:

    Required by:
    oscommerce-2.2r2
    pecl-pdflib-2.0.4
    php4-bz2-4.4.2_1
    php4-gd-4.4.2_1
    php4-mbstring-4.4.2_1
    php4-mcrypt-4.4.2_1
    php4-mysql-4.4.2_1
    php4-pcre-4.4.2_1
    php4-session-4.4.2_1
    php4-zlib-4.4.2_1
    phpMyAdmin-2.8.0.3

This will get you the right list of ports to deal with.  Now, you need to=

replace each of those ports called 'php4-something' with the equivalent
'php5-something' port.  You need to do the base php port first:

    % cd /usr/ports/lang/php5
    % make config                           (Note: make sure 'Apache' is =
checked here)
    % portupgrade -f -o lang/php5 php4-4.4.2_1

Remember to tweak that version number to match what is on your own system=
=2E
After you've done that, there should be a file /usr/local/etc/php.conf
that contains the following:

    % cat /usr/local/etc/php.conf
    PHP_VER=3D5
    PHP_VERSION=3D5.1.4
    PHP_SAPI=3Dcli cgi mod

Now go ahead and replace all of the php4 modules with their php5
equivalents.  You need to find the origin of each php4 module, and then
translate it into the php5 equivalent. eg:

    % pkg_info -o php4-mysql-4.4.2_1
    Information for php4-mysql-4.4.2_1:

    Origin:
    databases/php4-mysql
    % portupgrade -o databases/php5-mysql php4-mysql-4.4.2_1

Do that for each of the php4-something modules.

Next, and somewhat optionally, reinstall all of the PECL libraries and
PHP applications you've installed.  ie. anything on that list of
dependencies without the php4- prefix.  This isn't strictly necessary for=

anything that is pure PHP code and that involves no compiled stuff, but
it shouldn't hurt. eg:

    % portupgrade -f pecl-pdflib-2.0.4
    % portupgrade -f phpMyAdmin-2.8.0.3
    % portupgrade -f oscommerce-2.2r2=20

> Is it necessary to mess with Apache too ?

Yes.  You should stop apache before starting on this whole exercise,
obviously.  Before you fire it up again, you need to make sure that
it is loading the PHP5 module rather than the PHP4 one.

Check for lines like this in the apache config files:

    LoadModule php5_module        libexec/apache22/libphp5.so

(Again, mutatis mutandem depending on the version of Apache you're
running)

The Apache config files may well be automagically edited for you,
but the 'LoadModule' line could well have been put in commented out,
which you'll want to uncomment.

Then fire up Apache and test, test, test until you're sure everything
is working OK.

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                       7 Priory Courtyard
                                                      Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey         Ramsgate
                                                      Kent, CT11 9PW


--------------enig1C25FAAB08A1C687B4DD5223
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEwdut8Mjk52CukIwRA7/tAJ91HoLVF+e0txLYV4PjsEIH+SZaiwCgh4R6
HR7RPyIyoSdq+8wqp7v91v4=
=UZZA
-----END PGP SIGNATURE-----

--------------enig1C25FAAB08A1C687B4DD5223--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44C1DBA6.7060900>