Wie Sie unter CentOS 5 ein Upgrade von PHP auf PHP 5.4 durchführen

Created:

2016-11-16 13:06:06 UTC

Modified:

2017-08-17 14:10:35 UTC

2

Was this article helpful?


Have more questions?

Anfrage einreichen

Wie Sie unter CentOS 5 ein Upgrade von PHP auf PHP 5.4 durchführen

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux

Upgrade von PHP 5.2 für CentOS 5:

1) Führen Sie den Odin Autoinstaller über die Serverkonsole aus.

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

2) Überprüfen Sie in der Liste der Hauptkomponenten, ob die Option der PHP5-Unterstützung ausgewählt ist.

3) Verlassen Sie den Odin Autoinstaller.

4) Installieren Sie das Epel- und das Remi-Repository:

    # 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

HINWEIS: Wenn Sie PHP unter CentOS 6 upgraden wollen, müssen Sie höhere Epel- und Remi-Repositorys wie folgt installieren/aktivieren:

    # 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) Aktivieren Sie das Remi-Repository:

    # sudo vi /etc/yum.repos.d/remi.repo 

Setzen Sie im [remi] -Abschnitt der Datei die Option " enabled " auf 1.

HINWEIS: Wenn Sie PHP über das Atomic-Repository installieren wollen, müssen Sie es mit folgendem Befehl installieren:

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

6) Upgraden Sie PHP mit diesem Befehl:

    #yum install php

Upgrade von PHP 5.3

1) Führen Sie den Odin Autoinstaller über die Serverkonsole aus.

2) Überprüfen Sie in der Liste der Hauptkomponenten, ob die Option der PHP-5.3-Unterstützung ausgewählt ist.

3) Verlassen Sie den Odin Autoinstaller.

4) Entfernen Sie alle PHP5.3-Komponenten und den PHP5.3-Konfigurator.

Sie können mit folgendem Befehl überprüfen, welche Pakete entfernt werden:

    #rpm -qa | grep 'php53-'

Alle aufgelisteten Pakete werden mit den folgenden Befehlen entfernt:

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

5) Führen Sie den Odin Autoinstaller über die Serverkonsole aus.

6) Überprüfen und installieren Sie die PHP-5-Unterstützung.

7) Installieren Sie das Epel- und das Remi-Repository:

    # 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) Aktivieren Sie das Remi-Repository:

    # sudo vi /etc/yum.repos.d/remi.repo

Setzen Sie im [remi] -Abschnitt der Datei die Option " enabled " auf 1.

HINWEIS: Wenn Sie PHP über das Atomic-Repository installieren wollen, müssen Sie es mit folgendem Befehl installieren:

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

9) Upgraden Sie PHP mit diesem Befehl:

    # yum install php

Installation von ionCube für PHP 5.4 (optional):

  1. Laden Sie ionCube herunter:

Für x32:

# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.zip

Für x64:

# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
  1. Entpacken Sie die Zip-Datei.

  2. Kopieren Sie ioncube_loader_lin_5.4.so in den Ordner für PHP-Erweiterungen:

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

Bitte beachten Sie, dass Ihr Verzeichnis für Erweiterungen (/usr/lib/php/modules/), in welchem sich PHP-Module befinden, variieren kann. Überprüfen Sie den Speicherort über den Befehl php -ini :

    php -ini|grep extension_dir
    extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  1. Legen Sie die SELinux-Attribute fest:

    # 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. Schalten Sie ionCube in der PHP-Konfiguration ein:

    # echo "zend_extension=/usr/lib/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini
    

6. Überprüfen Sie, ob ionCube funktioniert:

    # php -r 'phpinfo();' | grep -i ioncube

Sie können ionCube Loader auch testen, indem Sie das PHP-Helferskript "loader-wizard.php" anwenden, das im ionCube Loader Archiv enthalten ist.

Mögliche Probleme

  1. Ein MySQL-Server wird mit PHP upgegradet. Wenn bei der Erstellung von Datenbanken, Datenbankbenutzern oder Anwendungen der Prozess fehlschlägt und MySQL-Fehlermeldungen wie " Table mysql.servers does not exist " erscheinen, wurde der MySQL-Server mit PHP upgegradet. Dies kann mit folgendem Befehl behoben werden:

    # mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
    
  2. Möglicherweise wird diese oder eine ähnliche Fehlermeldung angezeigt:

    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`
    

Dies bedeutet, dass die Architektur der ionCube Loader-Datei für eine andere Betriebssystemarchitektur gedacht ist.

  1. Möglicherweise wird diese oder eine ähnliche Fehlermeldung angezeigt:

    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`
    

Dies bedeutet, dass SELinux greift. Es befindet sich der falsche SELinux-Kontext in der ionCube Loader-Datei.

  1. PHP funktioniert nicht im CGI/FastCGI-Modus und es wird der HTTP-Fehler 500 angezeigt. Dies kann durch Anweisungen in der globalen php.ini -Datei bzw. php.ini -Datei der Domain verursacht werden, die nicht kompatibel mit PHP 5.4 sind. Nachfolgend finden Sie eine Auflistung nicht kompatibler Anweisungen:

    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`
    

Weitere Einzelheiten finden Sie unter http://www.php.net/manual/en/migration54.ini.php .

Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.