Allowed memory size bei $F = file("/webserver...")

Apache, Lighttpd, nginx, Cherokee
amiga1200
Posts: 208
Joined: 2007-01-13 19:58

Allowed memory size bei $F = file("/webserver...")

Post by amiga1200 » 2016-07-27 20:55

ich habe einen Import programmiert, der einmal am Tag Daten aus einer Textdatei ins Mysql schiebt programmiert.
Die Textdatei, die ich vom Anbieter bekomme ist ca. 80mb groß.
Ich lade die Datei und gehe die dann Zeile für Zeile durch.
zeile = file("/webserver...");
while()
Rufe ich das Schript über http://192.168.0.123/script.php auf dauert es zwar 10 Min,
bis die Datei abgearbeitet wurde, aber eigentlich alles Super!

Aber es must Automatisch im Cron laufen, dazu rufe ich das Script zum testen über eine Shell auf.
php /webserver/…script.php
aber hier spuckt mir das System die Meldung aus:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 78575093 bytes) in…
Auch schon, wenn ich im php Schript nur schreibe: zeile = file("/webserver...");

php.ini hatte ich schon auf memory_limit = 4024M gesetzt + apache neustart
Wget hatte ich auch schon getestet, aber das Scrip wird nach 10 Sec. beendet
Warum geht das über http, aber nicht im Shell?

Info: Der Server ist ein suse Rootserver mit 16GB der aber bei mir steht und nicht übers Netz erreichbar ist, also eigentlich sicher. PHP Version 5.3.8
Festplatten sind über 50% free
Nachtrag: eine 30mb Datei macht keine Probleme!
Nachtrag: lasse ich mir ausgeben:

Code: Select all

echo ini_get('memory_limit') . "\n"; 
bekomme ich im Shell nur 128 über http den Wert der in der php.ini steht, also must es noch was wie memory_limit für Shell geben

amiga1200
Posts: 208
Joined: 2007-01-13 19:58

Re: Allowed memory size bei $F = file("/webserver...")

Post by amiga1200 » 2016-07-27 22:06

im php script:
ini_set('memory_limit', '256M');
war die Lösung, so lieft es auch in der Shell

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Allowed memory size bei $F = file("/webserver...")

Post by Joe User » 2016-07-27 22:39

Manche Distros kompilieren PHP-CLI, PHP-CGI, PHP-FPM und die PHP-SAPI mit unterschiedlichen Pfaden für die php.ini und extensions.ini. Welche Pfade jeweils erwartet werden, findet man mit einem jeweiligen phpinfo()-Aufruf raus.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.