PHP Befehlszeilen Skripte werden ignoriert php.ini und ini_set ( ‚memory_limit‘, ...) Richtlinien

StackOverflow https://stackoverflow.com/questions/1751719

Frage

Ich bin mit Blick auf den gemeinsamen "Fatal error: Nicht genügend Arbeitsspeicher (zugewiesen 30.408.704) (versuchten 24 Bytes zuzuteilen) ..." PHP Fatal error. Seiten über Apache bedient werden dieses Verhalten nicht zeigen.

Ich habe versucht, die folgenden:

  1. Die Erhöhung der memory_limit in der php.ini auf einen viel größeren Wert.
  2. Die Erhöhung memory_limit im Skript selbst über Anrufe zu ini_set('memory_limit', -1), ini_set('memory_limit', '-1'), ini_set('memory_limit', 100000000), ini_set('memory_limit', '128M'), etc.
  3. unset()ing nicht benötigte Arrays und Objekte der Garbage Collector zu ermutigen, um Speicherplatz freizugeben.
  4. Kontakt zu dem Web-Host. Sie sind normalerweise sehr fähig und kompetent, haben aber nicht in der Lage gewesen, mir mit diesem Problem zu helfen, entweder.
  5. Ich habe mit einer php.ini explizit versucht, mit der -c Befehlszeilenmarkierung zu hand holt spezifische php.ini-Dateien mit verschiedenen Werten.
  6. Ich habe memory_limit in php.ini beiden rohen Zahlen von Bytes und Werten wie 64M versucht Einstellung, 128M, etc.
  7. Der Hosting-Provider konnte das Skript als root ohne Probleme laufen, aber erlebt die gleiche Frage, die ich tun, wenn es läuft meine Nicht-Root-Benutzer verwenden. Vielleicht gibt es eine Art von Berechtigungen beteiligt Problem?

Unabhängig davon, was ich versuche, die Fehlermeldung ist das gleiche. Es scheint, dass meine Kommandozeilen-Skripte Änderungen memory_limit ignorieren.

Ich neige dazu, zu versuchen, meine Skripte, um sicherzustellen, sind Speicher effizient, aber ich bin zur Zeit benötigen große Mengen von HTML über DOMDocument statt. Dies hilft auch nicht. In der Tat ist der Ausgang des Speicherfehlers nun an anderer Stelle im Skript ausgelöst wird.

Meine Frage: hat jemand erlebt dieses oder ein ähnliches Problem? Haben Sie Empfehlungen?

Danke.

War es hilfreich?

Lösung

Es stellt sich heraus, dass das Problem durch Shell Gabel Bombe Schutz verursacht wurde auf dem Server aktiviert werden, die eine harte Speicherlimit auf alle Befehlszeilenskripts platziert wurde. Dies war von meiner Web-Host ohne mein Wissen aktiviert.

Andere Tipps

Ihre PHP auf cli sein können, eine andere php.ini zu Ihrem Apache mit PHP. versuchen, eine phpinfo() und überprüfen Sie die die INI-Datei Sie denken, seine Verwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top