[Nur Plesk 11] Installieren und Verwenden zweier Versionen von PHP auf demselben Server von Plesk 11.0 für Linux

Created:

2016-11-16 13:22:02 UTC

Modified:

2017-05-24 10:11:50 UTC

4

Was this article helpful?


Have more questions?

Anfrage einreichen

[Nur Plesk 11] Installieren und Verwenden zweier Versionen von PHP auf demselben Server von Plesk 11.0 für Linux

Inzwischen behoben

Plesk für Linux unterstützt die Ausführung mehrerer Versionen von PHP auf dem Server ab Version 11.5 (s. Release Notes (Englisch)). Eine Anleitung zur Installation und Konfiguration von PHP auf Servern mit Plesk 11.5 finden Sie im Plesk Administratorhandbuch .

Hinweis: Lesen Sie für Plesk 11.5 und 12.0 diesen Artikel: 213909265 Aktivieren mehrerer PHP-Versionen in Plesk für Linux

Lösung

HINWEIS: Die nachfolgende Anleitung gilt nur für Plesk 11.0.9. Für Plesk 11.5 nutzen Sie bitte die oben erwähnte Dokumentation.

Damit das Folgende funktioniert, muss PHP bei Ihnen als fastcgi ausgeführt werden.

  1. Stellen Sie über SSH eine Verbindung zu Ihrem Plesk Server als Root her, laden Sie die PHP-Quelldatei herunter und entpacken und konfigurieren Sie sie:

    # cd /usr/local/src
    # mkdir php540
    # cd php540
    # wget http://museum.php.net/php5/php-5.4.0.tar.gz
    # tar xzvf php-5.4.0.tar.gz
    # cd php-5.4.0

    Hinweis: Sie müssen den Präfix-Wechsel nutzen, damit Ihr neues PHP in einem einzigen Verzeichnis installiert wird. Zum Beispiel:

    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php540-cgi' '--with-config-file-path=/usr/local/php540-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--enable-cgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php540-cgi' '--with-png-dir=/usr/local/php540-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php540-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/php540-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/php540-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php540-cgi/php.d'

    Wie Sie sehen können, lautet hier das Präfix: /usr/local/php540-cgi/

    Es ist ZWINGEND NOTWENDIG, ein Präfix zu wählen, denn dies verhindert, dass Ihre neue PHP-Installation die ältere PHP-Version, die von Plesk genutzt wird, beeinträchtigt.

  2. Kompilieren Sie Ihr PHP:

    # make
  3. Installieren Sie Ihr neues PHP:

    # make install
  4. Erstellen Sie einen PHP-Wrapper. Ein Beispiel: Sagen wir, Sie haben einen Kunden, domain.com , der neuere PHP-Funktionen nutzt, die nicht im üblichen PHP 5.1 existieren. Wir sagen Apache, dass es unsere neue PHP-Version (5.4.0) verwenden soll:

    # cd /var/www/vhosts/domain.com/cgi-bin
    # mkdir .cgi_wrapper
    # cd .cgi_wrapper

    Erstellen Sie eine neue Datei, .phpwrapper , mit folgendem Inhalt:

    #!/bin/sh
    export PHPRC=/var/www/vhosts/domain.com/etc/
    export PHP_FCGI_CHILDREN=4
    export PHP_FCGI_MAX_REQUESTS=1000
    exec /usr/local/php540-cgi/bin/php-cgi

    Richten Sie die nötigen Berechtigungen für die Dateien und Verzeichnisse ein, die Sie erstellt haben:

    # chgrp psaserv /var/www/vhosts/domain.com/cgi-bin
    # cd /var/www/vhosts/domain.com/cgi-bin
    # chmod 101 .cgi_wrapper
    # chmod 500 .cgi_wrapper/.phpwrapper
    # chown domain.com:psacln .cgi_wrapper -R
    # chattr -R +i .cgi_wrapper
  5. Machen Sie Apache auf unseren neuen PHP-Wrapper aufmerksam. Plesk bietet eine Option zum Ändern der httpd-Einstellung pro vhost (dies kann entweder eine Domain oder Subdomain sein). Wir werden diese Option verwenden, um Apache mitzuteilen, dass (in unserem Beispiel) domain.com unseren PHP-Wrapper verwenden muss anstatt des Wrappers, der von Plesk bereitgestellt wird:

    # cd /var/www/vhosts/domain.com/conf

    Erstellen Sie eine vhost.conf -Datei mit folgendem Inhalt:

    <Directory /var/www/vhosts/domain.com/httpdocs>
    RemoveHandler fcgid-script
    <IfModule mod_fcgid.c>
    AddHandler fcgid-script .php
    <Files ~ (\\.php)>
    SetHandler fcgid-script
    FCGIWrapper /var/www/vhosts/domain.com/cgi-bin/.cgi_wrapper/.phpwrapper .php
    Options +ExecCGI
    allow from all
    </Files>
    </IfModule>
    </Directory>

    Nun haben wir Apache mitgeteilt, dass nicht der Standard-PHP-Wrapper von Plesk verwendet werden soll (RemoveHandler fcgid-script). Stattdessen haben wir einen neuen Handler für PHP-Dateien erstellt. Immer wenn Apache jetzt PHP-Dateien auf der Domain "domain.com" ausführt, ruft es den neuen PHP-Wrapper auf und verwendet die neue Version, die in den Schritten 1-3 installiert wurde.

  6. Rekonfigurieren Sie die Domain "domain.com":

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain domain.com
  7. Starten Sie Apache neu:

    # /etc/init.d/httpd restart

    Für jede Domain, die zusätzliche Funktionen benötigt, welche nur in neueren PHP-Versionen verfügbar sind, können Sie die Schritte 4, 5, 6 und 7 ausführen. Ersetzen Sie dabei jeweils "domain.com" mit dem Domainnamen Ihres Kunden.

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