How to upgrade PHP to PHP 5.4 on CentOS 6 Plesk Panel 11 10 12

Instructions:


1. Install epel and remi repositories:
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

2. Enable remi repository:
# sudo vi /etc/yum.repos.d/remi.repo
In the [remi] section of the file, set the "enabled" option to 1.
 
3. Upgrade PHP with this command:
# yum install php

Installation of ionCube for PHP 5.4 (optional)

1. Install ionCube:

For x32:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.zip
# unzip ioncube_loaders_lin_x86.zip
sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/

For x64:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
# unzip ioncube_loaders_lin_x86-64.zip
# sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib64/php/modules/ 

4. Set SELinux attributes:
# sudo chcon -u system_u -t textrel_shlib_t /usr/lib/php/modules/ioncube_loader_lin_5.4.so
# sudo chcon -u system_u -t textrel_shlib_t /usr/lib64/php/modules/ioncube_loader_lin_5.4.so

5. Switch on ionCube in PHP config:
# echo "zend_extension=/usr/lib/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini
# echo "zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini

6. Check functioning of ionCube:
# php -r 'phpinfo();' | grep -i ioncube

You can also test ionCube Loader by using the helper PHP script "loader-wizard.php" that's included in the ionCube Loader archive.

Possible issues

1. MySQL server is upgraded with PHP. If, when creating databases, database users or applications fail with MySQL errors such as "Table mysql.servers does not exist," it means that the MySQL server has been upgraded with PHP. This can be fixed with the following command:
# mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

2. If you see an error message like "Failed loading /usr/lib/php/modules/ioncube_loader_lin_5.4.so:  /usr/lib/php/modules/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS6,it means that the the ionCube Loader file has a different OS architecture.

3. If you see an error message like "Failed loading /usr/lib/php/modules/ioncube_loader_lin_5.4.so:  /usr/lib/php/modules/ioncube_loader_lin_5.4.so: cannot restore segment prot after reloc: Permission denied," it means that SELinux is effective. The SELinux context is wrong on the ionCube Loader file.

4. PHP doesn't work in CGI/FastCGI mode with HTTP Error 500. This can be caused by the existence of directives that are incompatible with PHP 5.4 in the global or domain php.ini file. Here is a list of incompatible directives:

register_globals
register_long_arrays
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
allow_call_time_pass_reference
define_syslog_variables
highlight.bg
session.bug_compat_42
session.bug_compat_warn
y2k_compliance
safe_mode
safe_mode_gid
safe_mode_include_dir
safe_mode_exec_dir
safe_mode_allowed_env_vars
safe_mode_protected_env_vars
zend.ze1_compatibility_mode
 
  • 50566 Users Found This Useful
Was this answer helpful?