Installation runkit – Superglobals
Damit wir eigene Superglobals definieren können (z.B. $_TESLINA) ist dieses Plugin nötig. Wie folgt installieren: (für php83 ist runkit noch nicht in den Ports verfügbar, für vorherige PHP Versionen kann man es aber über die Ports installieren (pkg install php82-pecl-runkit7-4.0.0a6
))
1) Runkit downloaden von der Webseite. Beachte: WARNING: 0.9 does not compile with PHP 5.2+ so use the CVS version instead. das mit dem CVS download geht so:
mkdir -p /usr/local/software/runkit
cd /usr/local/software/runkit git clone https://github.com/runkit7/runkit7.git
cd runkit7
phpize
# The sandbox related code and flags have been removed, no need to disable them.
# (--enable-runkit7-modify (on by default) controls function, method, class, manipulation, and will control property manipulation)
# (--enable-runkit7-super (on by default) allows you to add custom superglobals)
# ./configure --help lists available configuration options.
./configure
make
make test
make install
make test gibt übrigens folgende Fehler aus… aber anscheinend funktionierts trotzdem 🙂
===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- runkit7_method_redefine() must also update method's prototype [tests/runkit_method_redefine_update_proto2.phpt] =====================================================================
mit make install wurde nun runkit.so ins Modul Verzeichnis von php kopiert:
Installing shared extensions: /usr/local/lib/php/20230831/
-rwxr-xr-x 1 root wheel 344232 Mar 8 15:47 runkit7.so
Jetzt noch die Extension aktivieren. Dazu ein neuen File erstellen:
cd /usr/local/etc/php
vi ext-20-runkit7.ini
# einfügen: extension=runkit7.so
Kurzer Zwischentest:
root@corky(/usr/local/software/runkit/pecl/runkit)> php -v PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cli) (built: Sep 6 2008 14:43:29) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
Jetzt das php.ini editieren und folgende Zeilen hinzufügen:
vi /usr/local/etc/php.ini ;;;;;;;;;;;; ; runkit ; ;;;;;;;;;;;; runkit7.superglobal = _TESLINA
Weitere zusätzliche Superglobals können einfach mit einem Komma getrennt definiert werden (runkit.superglobal=_FOO,_BAR). Runkit Configuration
Apache restarten und phpinfo() angucken. sollte nun folgendes beinhalten:
# php -i
runkit7
runkit7 support => enabled
version => 4.0.0a6
Custom Superglobal support => enabled
Runtime Manipulation => enabled
Directive => Local Value => Master Value
runkit.internal_override => Off => Off
runkit.superglobal => _TESLINA => _TESLINA
sobald er fertig ist:
nxctl restart