Date: Sat, 22 Jul 2006 22:11:27 +0800 From: "jan gestre" <freebsd.ph@gmail.com> To: "Matthew Seaman" <m.seaman@infracaninophile.co.uk> Cc: mamrg <lists@tuxdoit.com>, freebsd-questions@freebsd.org Subject: Re: Upgrade PHP Message-ID: <a25afc300607220711m73b29e29n68c1bee65ce817a2@mail.gmail.com> In-Reply-To: <44C1DBA6.7060900@infracaninophile.co.uk> References: <44C15798.5060906@tuxdoit.com> <44C1DBA6.7060900@infracaninophile.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7/22/06, Matthew Seaman <m.seaman@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. > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a25afc300607220711m73b29e29n68c1bee65ce817a2>