it-swarm.dev

Erhöhen Sie die maximale Ausführungszeit für PHP

Ich habe die Funktion set_time_limit(0); hinzugefügt, um die Ausführungszeit zu erhöhen, aber die Ausführung dauert maximal 2-3 Minuten.

error_reporting(E_ALL);
error_reporting(1);
set_time_limit(0);

Ich möchte nach Links von einer Site suchen, die eine lange Lime benötigt.

Jede Hilfe wäre sehr dankbar. 

Danke vielmals.

58
Bajrang

PHP -Datei (zum Beispiel my_lengthy_script.php)

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

.htaccess-Datei

<IfModule mod_php5.c>
php_value max_execution_time 300
</IfModule>

Weitere Konfigurationsoptionen

<IfModule mod_php5.c>
php_value post_max_size 5M
php_value upload_max_filesize 5M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
php_value session.gc_maxlifetime 1200
</IfModule>

Wenn WordPress, setze dies in der config.php-Datei,

define('WP_MEMORY_LIMIT', '128M');

Wenn drupal, sites/default/settings.php

ini_set('memory_limit', '128M');

Wenn Sie andere Frameworks verwenden,

ini_set('memory_limit', '128M');

Sie können den Speicher als Gigabyte erhöhen.

ini_set('memory_limit', '3G'); // 3 Gigabytes

259200 bedeutet: -

( 259200/(60x60 minutes) ) / 24 hours ===> 3 Days

Weitere Details in meinem Blog

203
Sumith Harshan

Fügen Sie diese Codezeilen in Ihre Htaccess-Datei ein. Ich hoffe, es wird dein Problem lösen.

<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>
10
Salman Aslam

Nun, da Sie sich auf einem gemeinsam genutzten Server befinden, können Sie nichts dagegen tun. Sie legen normalerweise die maximale Ausführungszeit fest, damit Sie sie nicht überschreiben können. Ich schlage vor, dass Sie sich an sie wenden.

3
Mob

nun, es gibt zwei Möglichkeiten, max_execution_time zu ändern.
1. Sie können es direkt in der php.ini-Datei einstellen.
2. Zweitens können Sie die folgende Zeile in Ihren Code einfügen. 

ini_set('max_execution_time', '100')
1
Nishu Tayal

In Ihrem Webserver ist wahrscheinlich ein Limit festgelegt. Einige Browser/Proxys implementieren auch ein Timeout. Das Aufrufen von lang laufenden Prozessen über eine HTTP-Anforderung ist einfach dumm. Der richtige Weg, das Problem zu lösen (vorausgesetzt, Sie können die Verarbeitung nicht schneller machen), besteht darin, die HTTP-Anforderung zu verwenden, um die Verarbeitung außerhalb der Webserver-Sitzungsgruppe auszulösen, und den Status über HTTP abzufragen, bis eine Ergebnismenge vorliegt.

0
symcbean

Verwenden Sie mod_php7.c anstelle von mod_php5.c für PHP 7

Beispiel

<IfModule mod_php7.c>
   php_value max_execution_time 500
</IfModule>
0
PrestaShark

Dies ist eine alte Frage, aber wenn jemand es heute findet, besteht die Chance, dass PHP über PHP-Fpm und Mod_fastcgi ausgeführt wird. In diesem Fall hilft nichts dabei, die Ausführungszeit zu verlängern, da Apache die Verbindung zu einem Prozess beendet, der 30 Sekunden lang nichts ausgibt. Die Erweiterung ist nur möglich, um -idle-timeout in der Apache-Konfiguration (modul/site/vhost) zu ändern.

FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /run/php/php7.0-fpm.sock -idle-timeout 900 -pass-header Authorization

Weitere Details - Erhöhen Sie die Einstellung für das Leerlaufzeitlimit von PHP-FPM

0
seven