Upgrade PHP

jan gestre freebsd.ph at gmail.com
Sat Jul 22 14:11:29 UTC 2006


On 7/22/06, Matthew Seaman <m.seaman at infracaninophile.co.uk> wrote:
>
> mamrg wrote:
> > Hi,
> >
> > First of all my apologies for the lame question, but i have this FreeBSD
> >  server in which i have to upgrade PHP from 4 to 5.
> >
> > 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
>     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.
> 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=5
>     PHP_VERSION=5.1.4
>     PHP_SAPI=cli 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
>
> > 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.
>
> or you can have both php4 and php5 in your box.
>
>
>


More information about the freebsd-questions mailing list