APPLIES TO:
•Parallels Plesk Panel 11.0 for Linux
Upgrade from PHP 5.2
1. Run Parallels Autoinstaller from the server console.
/usr/local/psa/admin/sbin/autoinstaller
2.On main components list, check that the PHP5 support option is selected.
3.Exit from Parallels Autoinstaller.
4.Install the epel and remi repositories:
# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
5.Enable the remi repository:
# sudo vi /etc/yum.repos.d/remi.repo
In the [remi] section of the file, set the “enabled” option to 1.
1.Upgrade PHP with this command:
#yum install php
Upgrade from PHP 5.3
1.Run Parallels Autoinstaller from the server console.
2.On the main components list, check that the PHP5.3 support option is selected.
3.Exit from Parallels Autoinstaller.
4.Remove all PHP 5.3 components and the PHP 5.3 configurator. You can check which packages will be removed by following command:
#rpm -qa | grep ‘php53-‘
all listed packed will be removed by following commands:
# rpm -e –nodeps `rpm -qa | grep psa-php53-configurator-`
# rpm -e `rpm -qa | grep ‘php53-‘ | xargs`
1.Run Parallels Autoinstaller from the server console.
2.Check and install PHP5 support.
3.Install the epel and remi repositories:
# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
4.Enable the remi repository:
# sudo vi /etc/yum.repos.d/remi.repo
In the [remi] section of the file, set the “enabled” option to 1.
1.Upgrade PHP with this command:
# yum install php
Installation ionCube for PHP 5.4 (optional) 1. Download ionCube:
For x32:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.zip
For x64:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
1.Unzip the file.
2.Copy ioncube_loader_lin_5.4.so to the PHP extensions folder:
#sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/
3.Set SELinux attributes:
# sudo chcon -u system_u -t lib_t /usr/lib/php/modules/ioncube_loader_lin_5.4.so
# ls -Z /usr/lib64/php/modules/ioncube_loader_lin_5.4.so
-rw-r–r–. root root system_u:object_r:lib_t:s0 /usr/lib64/php/modules/ioncube_loader_lin_5.4.so
4.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
5.Check that ionCube is working:
# php -r ‘phpinfo();’ | grep -i ioncube
You can also test the ionCube Loader 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, it fails with MySQL errors like “Table mysql.servers does not exist” it means that the MySQL server has been upgraded with
PHP. This can be fixed by 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 architecture of the ionCube
Loader file is of 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: wrong ELF class: ELFCLASS6″”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 wrong SELinux context
is on the ionCube Loader file.
4.PHP doesn’t work in CGI/FastCGI mode with HTTP Error 500. This can be caused by 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`