Hallo,
Hört sich interessant an - ich verwende Debian 3.1, dazu habe ich PHP (aus diversen Gründen) selbst kompiliert und habe dabei immer --with-xyz=shared angegeben, das wird dann in so Extensions kompiliert wie beim Apache es auch die Module gibt, man kann die dann einzeln laden. Hinzu kamen noch ein paar Sachen mit --enable-xyz, wo ich nicht wusste, wie ich die shared machen kann, sodass diese also fest einkompiliert sind.
Du kannst Dir alle Erweiterugnen nachträglich aus den Sourcen bauen. In Deinem Fall wäre wahrscheinlich folgendes zielführend:
$ EXTENSION_DIR="/dein/pfad/zur/den/Modulen" \ INCLUDE_PATH="/vorkonfigurierter/includepfad:." \ CFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer -pipe" \ ./configure \ --prefix=/usr/local/bin/php5 \ --disable-all \ --disable-cgi \ --weitere-parameter
$ make && make install
$ cd ext/pcntl
$ /usr/local/bin/php5/phpize
$ CFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer -pipe" \
./configure --with-php-config=/usr/local/bin/php5/php-config
$ make && make install
Somit hättest Du dann unter "/dein/pfad/zur/den/Modulen" die pcntl.so.
Jetzt wollte ich hingehen und eine andere php.ini verwenden, in der alle nicht benötigten Extensions nicht geladen werden, ich habe die php.ini angelegt und wollte folgende Shebang verwenden:
#!/usr/local/bin/php5 -c /absoluter/pfad/zur/php.ini
Das Problem kenne ich und es läßt sich leider nicht ändern.
Erfolg hats auf jeden Fall gebracht, der laufende PHP-Prozess brauchte nur noch 1.7% bis 1.8% des RAMs - also deutlich weniger. Ich mache mir aber auch immer noch Gedanken darüber, ob man für einen User auf dem System die maximale Menge an RAM einschränken kann...
Rufe Dein script bitte mal mit folgendem auf:
$ env -i ./script.name
Gruß aus Berlin!
eddi