Aktuelles PHP mit phpenv: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
Cgl00 (Diskussion | Beiträge) K (Reihenfolge logischer und etwas leichter zu verstehende Formulierung) |
||
Zeile 1: | Zeile 1: | ||
Aktuelle PHP Version (also PHP 7.1, 7.2 oder 7.3) lassen sich in einem ''phpenv'' installieren. | Aktuelle PHP Version (also PHP 7.1.x, 7.2.x oder 7.3.x) lassen sich in einem ''phpenv'' installieren. | ||
== phpenv == | == phpenv == | ||
Zeile 10: | Zeile 10: | ||
$ eval "$(phpenv init -)" | $ eval "$(phpenv init -)" | ||
$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build | $ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build | ||
Welche PHP-Versionen verfügbar sind findet man mit: | Welche PHP-Versionen verfügbar sind, findet man '''nach''' der Ausführung des oben beschriebenen ''git clone'' mit: | ||
$ phpenv install -l | $ phpenv install -l | ||
Zeile 19: | Zeile 18: | ||
~/.phpenv/plugins/php-build/share/php-build/default_configure_options | ~/.phpenv/plugins/php-build/share/php-build/default_configure_options | ||
...man sollte sie sich also zuvor anschauen. | |||
Die PHP-Version 7.1snapshot aus der Liste der verfügbaren PHP-Versionen installiert man anschließend zum Beispiel per: | |||
$ phpenv install 7.1snapshot | |||
== phpstub für FastCGI == | == phpstub für FastCGI == |
Version vom 24. März 2019, 22:52 Uhr
Aktuelle PHP Version (also PHP 7.1.x, 7.2.x oder 7.3.x) lassen sich in einem phpenv installieren.
phpenv
Dazu geht man wie folgt vor:
$ cd $HOME $ git clone git://github.com/phpenv/phpenv.git ~/.phpenv $ export PATH=$PATH:~/.phpenv/bin $ eval "$(phpenv init -)" $ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
Welche PHP-Versionen verfügbar sind, findet man nach der Ausführung des oben beschriebenen git clone mit:
$ phpenv install -l
Die voreingestellten Optionen für das Kompilieren von PHP mit php-build holt das Skript aus der Datei
~/.phpenv/plugins/php-build/share/php-build/default_configure_options
...man sollte sie sich also zuvor anschauen.
Die PHP-Version 7.1snapshot aus der Liste der verfügbaren PHP-Versionen installiert man anschließend zum Beispiel per:
$ phpenv install 7.1snapshot
phpstub für FastCGI
Um diese PHP-Version (hier: 7.1-Snapshot) mit FastCGI (wie bei Hostsharing üblich) zu nutzen benötigt man noch einen eingenen PHP-Stub. Dazu:
$ cd $HOME $ cp -a /usr/local/src/phpstub/ . $ cd $HOME/phpstub $ rm phpstub $ editor phpstub.c
Das kleine C-Programm wie folgt abändern:
#include <stdlib.h> #include <unistd.h> #include <libgen.h> int main(int argc, char* argv[]) { setenv("PHPRC", dirname(argv[0]), 1); const char* phpbin = getenv("HTTP_PHP_BIN"); if(phpbin) { execl(phpbin, "php", NULL); } else { execl("/home/pacs/xyz00/users/testuser/.phpenv/versions/7.1snapshot/bin/php-cgi", "php", NULL); } return(EXIT_FAILURE); }
Dabei sind die Pfadbestandteile "xyz00" und "testuser" durch den Namen des eigenen Paketes und den hinteren Bestandteil des aktuellen Usernamens zu ersetzen.
Nach Verlassen des Editors wird der PHP-Stub kompiliert und an den richtigen Ort im Domainverzeichnis kopiert:
$ cd $HOME/phpstub $ make $ cp phpstub $HOME/doms/example.com/fastcgi-ssl/ $ cp phpstub $HOME/doms/example.com/fastcgi/
Mit einem kleinen PHP-Skript lässt sich schnell prüfen, ob alles geklappt hat: Man kann eine Datei info.php mit dem folgenden Inhalt im Verzeichnis $HOME/doms/example.com/subs-ssl/www/ ablegen.
<?php phpinfo(); ?>
Im Browser sollte mit: https://www.example.com/info.php die PHP-Version mit allen Informationen über das selbstgebaute PHP angezeigt werden.
Achtung: example.com ist überall durch eine eigene gültige und beim User aufgeschaltete (Sub-)Domain zu ersetzen.