Как обновить PHP до версии PHP 5.4 на CentOS 5

Создана:

2016-11-16 13:06:06 UTC

Изменена:

2017-04-24 11:01:17 UTC

0

Помогла ли вам статья?


Есть вопросы?

Отправить запрос

Как обновить PHP до версии PHP 5.4 на CentOS 5

Обновление с PHP 5.2 на Centos 5:

1) Запустите автоустановщик из консоли сервера.

    /usr/local/psa/admin/sbin/autoinstaller

2) Проверьте, что опция поддержки PHP5 выбрана в основном списке компонентов.

3) Выйдите из автоустановщика.

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

Примечание. Для обновления PHP на CentOS 6, установите/включите более высокие версии репозиториев 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] файла для опции " enabled " установите значение 1.

Примечание. Чтобы установить PHP из репозитория Atomic, используйте следующую команду:

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

6) Обновите PHP с помощью этой команды:

    #yum install php

Обновление с PHP 5.3

1) Запустите автоустановщик из консоли сервера.

2) Проверьте, что опция поддержки PHP 5.3 выбрана в основном списке компонентов.

3) Выйдите из автоустановщика.

4) Удалите все компоненты PHP 5.3 и конфигуратор PHP 5.3.

Можно проверить, какие пакеты будут удалены, с помощью следующей команды:

    #rpm -qa | grep 'php53-'

Все перечисленные пакеты будут удалены с помощью следующих команд:

    # rpm -e --nodeps `rpm -qa | grep psa-php53-configurator-`
# rpm -e `rpm -qa | grep 'php53-' | xargs`

5) Запустите автоустановщик из консоли сервера.

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] файла для опции " enabled " установите значение 1.

Примечание. Чтобы установить PHP из репозитория Atomic, используйте следующую команду:

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

9) Обновите PHP с помощью этой команды:

    # yum install php

Установите ionCube для PHP 5.4 (необязательно):

  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
  1. Распакуйте файл.

  2. Скопируйте ioncube_loader_lin_5.4.so в папку расширений PHP:

    #sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/

Пожалуйста, обратите внимание на то, что ваша папка (/usr/lib/php/modules/), где расположены модули PHP, может отличаться. Проверьте ее расположение с помощью команды php -ini :

    php -ini|grep extension_dir
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  1. Установите атрибуты SELinux:

    # 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
  2. Включите ionCube в конфигурационном файле PHP:

    # 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

Вы также можете проверить ionCube Loader с помощью скрипта PHP loader-wizard.php, входящего в архив ionCube Loader.

Возможные проблемы

  1. MySQL Server обновляется вместе с PHP. Если при создании баз данных, пользователей баз данных или приложений процесс завершается с такими ошибками MySQL, как " Table mysql.servers does not exist ", это означает, что MySQL Server был обновлен вместе с 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 не соответствует архитектуре операционной системы.

  1. Если вы видите сообщение об ошибке наподобие:
    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.

  1. PHP не работате в режиме CGI/FastCGI с ошибкой HTTP 500. Это может быть вызвано несовместимыми с PHP 5.4 директивами в глобальном или доменном файле php.ini . Здесь мы приводим список несовместимых директив:
    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`

Подробности смотрите на странице http://www.php.net/manual/en/migration54.ini.php .

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 7
Еще есть вопросы? Отправить запрос
Войдите в службу, чтобы оставить комментарий.