Aktivieren mehrerer PHP-Versionen in Plesk für Linux

Created:

2016-11-16 12:44:50 UTC

Modified:

2017-08-16 17:13:26 UTC

14

Was this article helpful?


Have more questions?

Anfrage einreichen

Aktivieren mehrerer PHP-Versionen in Plesk für Linux

Applicable to:

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

Kennzeichen

Auf Linux Systemen können Sie jede PHP-Version installieren, die Sie benötigen und sie dann in Plesk zur Verfügung stellen, indem Sie sie mit dem Befehlszeilendienstprogramm php_handler registrieren.

Ursache

Eine PHP-Version ist erforderlich, die nicht in Plesk bereitgestellt wird.

Lösung

Für CloudLinux :

Wenn Sie ein CloudLinux Nutzer sind, können Sie das PHP-Auswahlfeature von CloudLinux verwenden:

http://docs.cloudlinux.com/index.html?php_selector.html

Für Plesk 12 :

Seit Plesk 12.0.18 MU#41 können Sie mehrere vom Plesk Team erstellte PHP 5.x-er Versionen via Plesk nutzen. Weitere Einzelheiten hierzu finden Sie im KB-Artikel Nr. 125146: Mehrere PHP-Versionen in Plesk 12.0 „Out of the Box“

Für Plesk 11.5 :

Schritt 1. Installieren Sie die PHP-Version auf Ihrem Plesk Server

Installationsleitfäden finden Sie in der offiziellen PHP-Dokumentation unter http://php.net/manual/de/install.php .

    Hinweis: Es wird empfohlen, PHP in einer anderen (Nicht-Produktiv-)Umgebung mit derselben Betriebssystemversion wie auf dem Zielserver zu installieren, um zu vermeiden, dass Sie viele unnötige Pakete auf Ihrem Produktivsystem installieren. Im nachfolgenden Beispiel wird PHP 5.6.3 verwendet, Sie können jedoch jede beliebige andere PHP-Version mithilfe der Anleitung installieren.

Die Installation besteht, kurz gesagt, aus folgenden Hauptschritten:

  1. Melden Sie sich über SSH als Root am Computer an, der für die PHP-Kompilierung verwendet wird.

  2. Laden Sie die PHP-Quelldatei herunter:

    # cd /usr/local/src/
    # wget http://php.net/get/php-5.6.3.tar.bz2/from/this/mirror --output-document="php-5.6.3.tar.bz2"
    
  3. Stellen Sie sicher, dass das PHP-Distributiv erfolgreich heruntergeladen wurde:

    # ls -la
    total 13156
    drwxr-xr-x  2 root root     4096 Nov 29 08:39 .
    drwxr-xr-x 15 root root     4096 Nov 29 08:39 ..
    -rw-r--r--  1 root root 13461539 Nov 14 06:41 php-5.6.3.tar.bz2 
    
  4. Entpacken Sie es aus der Archivdatei:

    # tar xjvf php-5.6.3.tar.bz2
    # mv php-5.6.3 php563
    
  5. Installieren Sie die nötigen Bibliotheken:

    Unter CentOS 6.x:

    # yum install libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel mysql-devel ncurses-devel unixODBC-devel net-snmp-devel mhash-devel libc-client-devel libicu-devel gcc postgresql-devel aspell-devel libxslt-devel gcc-c++ openldap-devel
    

    Unter Debian 6 Squeeze:

    #apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libgmp3-dev libc-client-dev libicu-dev libsasl2-dev unixodbc-dev libpspell-dev libsnmp-dev libxslt-dev
    
  6. Installieren Sie zusätzliche Bibliotheken

    Dies ist abhängig vom System, das für die PHP-Kompilierung verwendet wird, und wird im Schritt der Konfiguration klar.

  7. Konfigurieren

    # cd /usr/local/src/php563
    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php563-cgi' '--with-config-file-path=/usr/local/php563-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php563-cgi' '--with-png-dir=/usr/local/php563-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php563-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php563-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php563-cgi/pear' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php563-cgi/php.d' '--enable-cgi'
    

    Hinweis: Sie müssen den Präfix-Wechsel nutzen , damit Ihr neues PHP in einem einzigen Verzeichnis installiert wird. In unserem Beispiel lautet das Präfix: /usr/local/php563-cgi/

    Es ist sehr wichtig , ein Präfix zu wählen, denn dies verhindert, dass die neue PHP-Installation die anderen PHP-Installationen, die auf dem Server verfügbar sind, beeinträchtigt.

  8. Nachdem die Konfiguration erfolgreich fertiggestellt wurde, kompilieren Sie PHP

    # cd /usr/local/src/php563
    # make
    
  9. [Überspringen Sie diesen Schritt, wenn PHP in einer Produktionsumgebung eingerichtet wurde] Erstellen Sie eine Archivdatei aus dem kompilierten PHP und übertragen Sie diese auf Ihren Plesk Server.

    Bitte beachten Sie, dass der Pfad zum Verzeichnis mit dem kompilierten PHP auf dem Plesk Server und auf dem Quellserver gleich sein muss:

    # cd /usr/local/src/
    # tar cjvf php563.tar.bz2 php563
    # scp php563.tar.bz2 root@<your_plesk_server_ip>:/usr/local/src
    
  10. Melden Sie sich via SSH an Ihrem Plesk Server an und entpacken Sie die Archivdatei mit dem kompilierten PHP:

    # cd /usr/local/src
    # tar xjvf php563.tar.bz2
    
  11. Gehen Sie zu Ihrem Plesk Server und installieren Sie PHP:

    # cd /usr/local/src/php563
    # make install
    
  12. Richten Sie php.ini ein:

    # cp php.ini-development /usr/local/php563-cgi/etc/php.ini
    

    Sie können die Datei php.ini bearbeiten, um die PHP-Optionen einzustellen. Wenn Sie ' php.ini ' an einem anderen Speicherort bevorzugen, führen Sie das Dienstprogramm 'configure' mit der Option --with-config-file-path=/some/path im Schritt der Konfiguration aus.

  13. Stellen Sie SELinux Kontexte wieder her:

    # restorecon -R /usr/local/php563-cgi
    

Schritt 2. Registrieren Sie die neue PHP-Version in Plesk

/usr/local/psa/bin/php_handler --add -displayname <NN> -path <path to php cgi> -phpini <path to php.ini> -type <php handler> -id <NN-custom>

Dabei gilt Folgendes:

  • -displayname <NN> ist der PHP-Versionsname, der in der Plesk Benutzeroberfläche angezeigt wird. Wir empfehlen, die Versionsnummer in den Anzeigenamen zu integrieren. So könnten Sie die Version beispielsweise "5.6.3-benutzerdefiniert" nennen.

  • -path <path/to/php/cgi> ist der Speicherort der PHP-CGI-Binärdatei. Diesen finden Sie in der Ausgabe des Befehls "make install" in der Zeile "Installing PHP CGI binary". Wenn Sie z. B. die Zeile "Installing PHP CGI binary: /usr/local/php563-cgi/bin/ " sehen, lautet der Speicherort, den Sie angeben müssen, /usr/local/php563-cgi/bin/php-cgi . Nähere Informationen erhalten Sie auf der offiziellen PHP-Website .

  • -phpini <path/to/php.ini> ist der Speicherort der Datei php.ini , z. B. /usr/local/php563-cgi/ .

  • -type <php handler> ist die Art des PHP-Handlers, der zu dieser Version gehört. Dies kann entweder 'cgi' oder 'fastcgi' sein.

  • -id <NN-custom> ist die Kennung (ID), die Sie benutzen werden, wenn Sie sich auf diese PHP-Version beziehen (z. B. wenn Sie sie anpassen oder entfernen wollen).

Beispiel:

# /usr/local/psa/bin/php_handler --add -displayname php-5.6.3 -path /usr/local/php563-cgi/bin/php-cgi -phpini /usr/local/php563-cgi/etc/php.ini -type fastcgi -id 2

Nach der Registrierung der PHP-Version in Plesk steht diese unter Websites > Hosting-Einstellungen einer spezifischen Website zur Auswahl. Sehen Sie hierzu nachfolgendes Bild:

Auflisten der registrierten PHP-Handler:

Wenn Sie eine Auflistung der registrierten PHP-Handler auf einem Plesk Server sehen wollen, rufen Sie diesen Befehl auf:

# /usr/local/psa/bin/php_handler --list
Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.