Wednesday, March 9, 2005

Problems upgrading to php 4.3.10


I have been having a lot of problems upgrading my version of php on one of my servers. I can not just use the upgrade provide my yum, since I need to recompile php to include the mcrypt feature (previous post).


So I downloaded the source rpm, modified the spec file and built the rpms. When I upgrade using the rpms, the installation goes fine, but when I attempt to use any php functions that are provided by pear modules, the functions are undefined.




It looks like there is something wrong with loading pear modules. When I try running pear from the command line, I get the following errors:


[root@www share]# pear

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 91

Warning: Illegal offset type in Common.php on line 108


The error in /var/log/messages is this:


Mar 10 00:31:31 www php: PHP Fatal error: Cannot instantiate non-existent class: pear_frontend_cli in /usr/share/pear/PEAR/Command.php on line 144

Mar 10 00:32:00 www php: PHP Warning: preg_match() expects parameter 2 to be string, array given in - on line 509


Then when I attempt to reinstall pear from scratch, I get the following error:


The following PEAR packages are bundled with PHP: DB, Net_Socket, Net_SMTP, Mail, XML_Parser, PHPUnit.

Would you like to install these as well? [Y/n] :


Loading zlib: ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Bootstrapping: PEAR...................(remote) ok

Bootstrapping: Archive_Tar............(remote) ok

Bootstrapping: Console_Getopt.........(remote) ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Downloading package: Array............ok

Extracting installer..................

Unable to open in read mode ''


This is a real pain. But at least I am able to force an "upgrade" to the older version of the rpms that I have built.



Update: It looks like a bug has been written about this problem.