Hallo
Da der Server Host als maximale Executionszeit 30 Sekunden hat, möchte ich das auf 60 Sekunden verlängern. Dazu muss man in dem php-Skript sowas voraussetzen:
<?php
ini_set("max_execution_time", "60");
?>
In welche php-Dateien von Typo3 muss man diese Zeile am Anfang einfügen?
Also entweder Du packst das in die Konfigurationsdatei von PHP (php.ini). Oder Du packst das in die Datei "index.php". Denn das ist die Datei, die immer und ständig aufgerufen wird.
Der erste Weg ist aber sauberer, denn Du veränderst den Typo3 Code.
Alternativ sollte sowas auch in die .htaccess Datei rein gehen können.
Eigentlich müsste es reichen für das web php_value max_execution_time 500 in eine .htaccess im web root verzeichnis zu setzen
Eigentlich müsste es reichen für das web php_value max_execution_time 500 in eine .htaccess im web root verzeichnis zu setzen
... wenn die Webserver-Config es dir erlaubt, Werte über die .htaccess zu setzen (Stichwort: "AllowOverride"): ja
Hallo,
und vielen Dank für all die guten Tips.
Die "Lokale" Änderung funktioniert leider bei meinem Provider nicht mit .htaccess, und zu der "Master" init.php Datei habe ich natürlich auch keinen Zugang, erst Recht nicht zu den Apache-Konfigurationen.
Folge:
Da ich nur im php-script eine "Lokale" Änderung herbeiführen kann, muss ich das in die richtige TYPO3-php-Datei einfügen, damit das bei jeder Ausführung jedwedens TYPO3-php-scripts auch berücksichtigt wird.
Ist eigentlich die "localconfig.php" nicht besser als die "index.php" für dieses Unterfangen ?
Ich gehe von der Überlegung aus, dass das "Lokale" memory_limit da auch heraufgesetzt werden kann auf z.B. 128MB.
Das sind alles essentielle Einstellungen, sonst geht TYPO3 schon beim Hochladen der 324 KB kleine quickstart.t3d-Datei in die Knie.
Bitte nochmal um Eure Überlegungen zu dieser Sache.
Grüße
Hier noch das php-script, als "proof of concept":
<?php
ini_set("max_execution_time", "500");
ini_set("memory_limit", "128M");
phpinfo()
?>
Das habe ich als "phpinfo.php" auf meinem ccgi-webspace. Beim Aufruf gibts folgende Information:
Directive.......................Local Value.....Master Value
max_execution_time......500................30
memory_limit................128M..............32M
Es würde also so herum funktionieren.
Ich denke das wird nicht funktionieren. Denn per PHP läßt sich das Memory-Limit nur in den Grenzen des konfigurierten Wertes (php.ini) verändern.
Hallo
JA, es funktioniert im php-script die execution_time zu erhöhen.
Habe das ganze nochmal clean installiert, und dann die angegebene ini_set Zeile für die execution_time eingefügt.
Das uploaden der quickstart.t3d_Datei dauert 100 Sekunden (ein Wahnsinn). Dazu musste ich allerdings die ini_set Zeile in die Datei /typo3_src-4.0/typo3/mod/tools/em/class.em_xmlhandler.php einfügen.
Die Frage:
wie macht man das für Alle TYPO3-php-Dateien: gibt es eine cshell-Befehl wo man in alle Dateien mit dem Namen *.php als zweite Zeile diese ini_set Zeile einfügen kann??
Grüße
😃
Hier die Antwort die ich gefunden habe, wie man mit einem shell-Skript in ALLEN TYPO3-php-Dateien nach einem
<?php
eine extra Zeile
ini_set("max_execution_time", "500");
hinzufügen kann:
In einem Editor wie z.B. WordPad schreibe man in eine Zeile:
for i in `find . -name '*.php' -print`; do echo $i; mv $i $i"_orig"; sed 's/<?php/<?php\nini_set("max_execution_time", "500");/' $i"_orig" > $i; done
(Das Zeichen ` ist nicht das Zeichen ' und vice versa.)
Als z.B. setphp500 abspeichern und in den Ordner typo3_src-4.0 hochladen (via FTP). Dateiattribut chmod auf 755 instellen mit dem Ftp-Programm. (Muss dann auch noch für den Ordner dummy-4.0 gemacht werden, falls man den hat).
Gehe in der Kommandozeile in den Ordner typo3_src-4.0, und gebe den Befehl:
./setphp500 (Enter danach eingeben).
Das Skript fügt als neue zusätzliche Zeile nach einem
<?php
in jedes TYPO3-php-Skript ein:
ini_set("max_execution_time", "500");
und sichert die originale Datei mit dem Anhang _orig.
Alle Änderungen werden am shell ausgegeben.
Mit
find . -name '*.php' -print > FILENAME
kann man sich die Namen der php-Dateien in die Datei FILENAME speichern lassen.
Analoges gilt für '*.php_orig'.
Damit gibt's mal genügend Zeit um die TYPO3-Skripte auszuführen und die Master Value 30 Sekunden Begrenzung zu umgehen.
Falls man später Extensions via dem Extensions Manager in TYPO3 Backend hochlädt, enthalten die entsprechenden neuen Ordner unter /typo3conf/ext/ dann auch wieder TYPO3-php-Skripte.
Empfehlenswert alle *.php_orig Dateien zu löschen, da die nur Platz wegnehmen.
Hat jemand eine bessere Lösung?
Frage:
Warum kann man im TYPO3 Install Tool das lokale memory_limit heraufsetzen aber nicht die lokale max_execution_time? Was hat man sich dabei gedacht?, was ist der Grund?