Wednesday, 7 October 2009

How to install or upgrade to PHP 5.2.x

To upgrade to PHP 5.2.x on CentOS/RHEL/Fedora:


Step 1) Set up the atomic channel:



wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

Step 2) Upgrade to PHP 5.2.x:



yum upgrade

Step 3) Replace the PHP 4 php.ini with PHP 5.2.x's (if applicable):



mv /etc/php.ini.rpmnew /etc/php.ini

Step 4) Replace the php.conf with the PHP 5.2.x php.conf (if applicable):



mv /etc/httpd/conf.d/php.conf.rpmnew /etc/httpd/conf.d/php.conf

Step 5) Restart the webserver



service httpd restart
(or)
/etc/init.d/httpd restart

Checklist


1) Source code installations of extensions, like Ioncube loader, or other extensions that have to be updated. Ive created php-ioncube-loader, php-zend-optimizer, and php-eaccelerator packages to fix this for you automatically.


2) php.ini settings, like memory_limit


3) execstack -c on any extensions that claim to need an executible stack (ASL users only).


Known Issues


1) VPS and RHEL users, If you dont use the atomic installer, you're going to miss some dependencies, like sqlite3. Have fun with that!


2) RHEL4 users (and possibly others) can resolve the sqlite3 dependencies by grabbing rpms from the CentOS repositories. The atomic installer fixes this for you automatically. If you dont use it... have fun with that!



rpm -Uvh http://isoredirect.centos.org/centos/4/os/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm http://isoredirect.centos.org/centos/4/os/i386/CentOS/RPMS/sqlite-devel-3.3.6-2.i386.rpm

up2date php

OR



yum update php

Works like a charm


3) PHP 5.2.5 causes problems with Horde and Apache configuration files on PSA 8.2.1 and lower. PSA 8.3.0 has fixed this problem, so the easiest way to fix these issues is to upgrade to PSA 8.3.0 or higher. Otherwise, you'll need to perform the following extra steps:


3a) Modify /etc/httpd/conf.d/zz010_psa_httpd.conf


Change this:



php_admin_value include_path "/usr/share/psa-horde:/usr/share/psa-horde/pear:."

to



php_admin_value include_path "/usr/share/psa-horde/lib:/usr/share/psa-horde:/usr/share/psa-horde/pear:."

Note this file is changed every time plesk is updated, so you'll need to go back and fix this when it does.


This also fixes the PHP Fatal error: Can't load Horde/SessionObjects.php, open_basedir restriction problem.


3b) General issues with php_admin_value:


The fix for now is to replace the use of php_admin_value with php_value. I have only tested this as far as the domains on this server. You will find this used all over the place in zz010_psa_httpd.conf, domain level httpd.includes, and most likely in your own customizations. The biggest problems Ive had are with register_globals and include_path, I have not run into any issues with PSA httpd.include files and open_basedir.




4) Plesk Sitebuilder is not compatible with 5.2.x on systems that did not come with it natively. Either remove it, with yum remove sb-publish, or you *might* be able to get it to work by using the php-sqlite2 from the Fedora 8 plesk repo. php-sqlite2 was added to the atomic repo to handle sitebuilder integration.



Problems with MySQL databases and PLESK 9 after upgrade.


If you get the following error after upgrading when you try to log into PLESK then you need to upgrade your database tables:



ERROR: PleskFatalException
bad column in table: `backup_time` time NOT NULL default '00:00:00',
[...]


Issue the following command from the shell:



mysqlcheck --check-upgrade --all-databases --auto-repair -uadmin -pyouradminpassword

followed by:


cat /usr/share/mysql/mysql_fix_privilege_tables.sql | /usr/bin/mysql --no-defaults --force --user=admin --password=youradminpassword ----host=localhost --database=mysql --host=localhost --database=mysql

No comments:

Post a Comment