Article ID: 115833, created on Jul 29, 2013, last review on May 11, 2014

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux

从 PHP 5.2 升级

1. 从服务器控制台运行 Parallels Autoinstaller。

2. 在主要的组件列表上查看是否已选择 PHP5 支持 选择。

3. 退出 Parallels Autoinstaller。

4. 安装 epel 和 remi 库:
# 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. 启用 remi 库:
# sudo vi /etc/yum.repos.d/remi.repo
在文件的 [remi] 部分,设置 "启用" 选项为 1
 
6. 使用此命令升级 PHP:
# yum install php

从 PHP 5.3 升级

1. 从服务器控制台运行 Parallels Autoinstaller。

2. 在主要的组件列表上查看是否已选择 PHP5.3 支持 选择。

3. 退出 Parallels Autoinstaller。

4. 移除所有的 PHP 5.3 组件和 PHP 5.3 configurator。
您可以通过以下命令查看将会移除哪些程序包:
# rpm -qa | grep 'php53-'
通过以下命令将会移除所有列举的包:
# rpm -e --nodeps `rpm -qa | grep psa-php53-configurator-`

# rpm -e `rpm -qa | grep 'php53-' | xargs`
5. 从服务器控制台运行 Parallels Autoinstaller。

6. 查看并安装 PHP5 支持.

7. 安装 epel 和 remi 库:
# 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

8. 启用 remi 库:
sudo vi /etc/yum.repos.d/remi.repo
在文件的 [remi] 部分,设置 "启用" 选项为 1
 
9. 使用此命令升级 PHP:
yum install php

安装适用于 PHP 5.4 的 ionCube(可选)

1. 下载 ionCube:
 
针对 x32:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.zip
针对 x64:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip

2. 解压文件。

3. 复制 ioncube_loader_lin_5.4.so 到 PHP 扩展文件夹:

# sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/
 
4. 设置 SELinux 属性:
# sudo chcon -u system_u -t textrel_shlib_t /usr/lib/php/modules/ioncube_loader_lin_5.4.so
5. 在 PHP 配置中启用 ionCube:
# echo "zend_extension=/usr/lib/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini

6. 查看 ionCube 是否正运行:
# php -r 'phpinfo();' | grep -i ioncube
您还可以使用帮助 PHP 脚本 loader-wizard.php(包含于 ionCube Loader 存档中)测试 ionCube Loader。

可能出现的问题

1. MySQL 服务器与 PHP 一起升级。 如果当创建数据库、数据库用户或应用程序时失败,并出现 MySQL 错误,如 "Table mysql.servers does not exist,这表示 MySQL 服务器已经与 PHP 一起升级了。 可通过以下命令进行修复:
 
# mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
2. 如果您看到此错误信息 "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," 这表示 ionCube Loader 文件的结构是不同的操作系统结构。
 

3. 如果您看到此错误信息 "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," 这表示 SELinux 有效。 错误的 SELinux 上下文出现在 ionCube Loader 文件上。
 

4. PHP 在 CGI/FastCGI 模式中无法运行且出现错误 HTTP 错误 500。这表示问题是由全局或域名 php.ini 文件中与 PHP 5.4 不兼容的指令引起的。 以下列举不兼容的指令:

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
 

56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f 01bc4c8cf5b7f01f815a7ada004154a2 2a5151f57629129e26ff206d171fbb5f e335d9adf7edffca6a8af8039031a4c7 742559b1631652fadd74764ae8be475e aea4cd7bfd353ad7a1341a257ad4724a

Email subscription for changes to this article