lo siento, no tengo idea de lo que quieres decir con eso :(
Hannes
@Aamir, debe tener permiso de su servidor web para cambiar la configuración de su servidor web. A menudo, no te dejan cambiar cosas así.
hellozimi
¿Puedo cambiar upload_max_filesize y max_execution_time en el archivo htaccess?
Aamir
2
@Col, no estoy de acuerdo, él quiere hacer los cambios sobre la marcha y no en toda la aplicación, así que pregunta cómo puede hacerlo. E incluso si preguntara cómo puede simplemente cambiar algunas cosas en php.ini, puede ser una pregunta de novato, pero una pregunta legítima de todos modos.
Hannes
1
@IulianOnofrei está bien, solo sentí la necesidad de señalar eso: D, pero tal vez si no sabes qué es, todavía es bueno buscarlo ... "Aquellos que no pueden aprender de la historia están condenados a repetirla" y todo eso …
Hannes
56
También debería poder hacerlo durante el tiempo de ejecución usando
Tener un límite de tiempo de ejecución global BAJO es principalmente una buena idea por razones de rendimiento en aplicaciones no tan confiables. Por lo tanto, es posible que desee permitir que solo esos scripts se ejecuten durante más tiempo del absolutamente necesario.
ps: no te olvides de post_max_size y upload_max_filesize (como ya se dijo en la primera respuesta)
set_time_limit () no tiene nada que ver con la carga de archivos
su sentido común
1
Esto no es lo suficientemente preciso Col. Shrapnel. Mientras que en entornos Unix, el tiempo máximo de ejecución se compara con el tiempo de CPU acumulado utilizado por php-thread, en los sistemas Windows se utiliza el tiempo absoluto. La carga se realiza principalmente en "tiempo de inactividad" (IO-Wait). Pero, como puede ver, las cargas pueden detenerse cuando demora demasiado.
Christoph Strasen
4
Si está utilizando el servidor IIS de Microsoft , además de php.ini configuración mencionada por otros, es posible que deba aumentar la configuración del tiempo de espera de ejecución para la aplicación PHP FastCGI en el Administrador del servidor IIS:
Paso 1) Abra el Administrador del servidor IIS (generalmente bajo Administrador del servidor en el menú Inicio, luego Herramientas / Administrador de servicios de información de Internet (IIS) ).
Paso 2) Haga clic en la conexión principal (no específica de ningún dominio en particular).
Paso 3) En la sección IIS , busque Configuración de FastCGI (que se muestra a continuación).
Paso 4) en la misma, haga clic en la aplicación PHP y seleccione Editar ... .
Paso 5) Verifique los tiempos de espera (que se muestran a continuación).
En mi caso, los tiempos de espera predeterminados aquí fueron de 70 y 90 segundos; el primero de los cuales estaba causando un error interno del servidor 500 en los scripts PHP que demoraron más de 70 segundos.
Sé que está preguntando específicamente sobre el tiempo de espera de PHP, pero lo que nadie más parece haber mencionado es que también puede haber un tiempo de espera en el servidor web y puede verse muy similar al tiempo de espera de PHP.
Entonces, si lo ha intentado:
Aumento del tiempo de espera en php.ini agregando una línea: max_execution_time = {número de segundos, es decir, 60 por un minuto}
Aumentar el tiempo de espera en su propio script agregando: ini_set ('max_execution_time', '{número de segundos, es decir, 60 por un minuto}');
Y ha comprobado con la función phpinfo () que max_execution_time se ha incrementado, entonces es posible que desee intentar agregar esto a .htaccess, lo que se asegurará de que Apache no se agote el tiempo de espera:
Si no puede editar php.ini (en su servidor, por ejemplo), puede intentar cambiar los parámetros de php.ini desde su código php. Tratar:
ini_set('max_execution_time','NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
Si eso no funciona, intente también configurar 'set_time_limit' de la misma manera, más allá de eso, diría que su única opción es contactar a su anfitrión. Esta configuración no se puede modificar en modo seguro.
Hannes recibió esto un minuto antes de que yo publicara, y señala correctamente que ini_set no debe establecer set_time_limit (), como se indica en esta respuesta, sino poniendo los segundos entre corchetes. Hannes votado a favor.
John
1
Pruebe si está en modo seguro; de lo contrario, establezca el límite de tiempo (valor local) a lo que desea:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'}
* No puede establecer un límite de tiempo de esta manera si el modo seguro está activado.
opcional: si configuras config sobre php.ini pero aún no puedes cargar
-esta es la función php para verificar el código de error
$error_type =[];
$error_type[0]="There is no error";
$error_type[1]="The uploaded file exceeds the upload_max_filesize directive in php.ini.";
$error_type[2]="The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
$error_type[3]="The uploaded file was only partially uploaded.";
$error_type[4]="No file was uploaded.";//$error_type["5"] = "";
$error_type[6]="Missing a temporary folder. Introduced in PHP 5.0.3.";
$error_type[7]="Failed to write file to disk. Introduced in PHP 5.1.0.";
$error_type[8]="A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";//------------------------------//--> show msg error.
$status_code = $_FILES["uploadfile"]["error"];if($status_code !=0){
echo $error_type[$status_code];exit;}
Para aumentar realmente el límite de tiempo, prefiero obtener primero el valor actual. set_time_limitno siempre aumenta el límite de tiempo. Si el valor actual (p. Ej., De php.inio establecido anteriormente) es mayor que el valor utilizado en la llamada actual de set_time_limit, disminuirá el límite de tiempo!
Entonces, ¿qué pasa con un pequeño ayudante como este?
/**
* @param int $seconds Time in seconds
* @return bool
*/function increase_time_limit(int $seconds):bool{return set_time_limit(max(
ini_get('max_execution_time'), $seconds
));}// somewhere else in your code
increase_time_limit(180);
Respuestas:
Necesita cambiar alguna configuración en su php.ini:
La ubicación de su PHP.ini depende de su entorno, más información: http://php.net/manual/en/ini.list.php
fuente
También debería poder hacerlo durante el tiempo de ejecución usando
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
o en su vhost-config
php_admin_value max_execution_time 10000
Tener un límite de tiempo de ejecución global BAJO es principalmente una buena idea por razones de rendimiento en aplicaciones no tan confiables. Por lo tanto, es posible que desee permitir que solo esos scripts se ejecuten durante más tiempo del absolutamente necesario.
ps: no te olvides de post_max_size y upload_max_filesize (como ya se dijo en la primera respuesta)
fuente
Para completar la respuesta de Hannes.
Necesita cambiar alguna configuración en su php.ini:
Si alguien quiere poner un número ilimitado (no sé por qué, pero si lo desea), puede establecer el tiempo en 0:
Necesita cambiar alguna configuración en su php.ini:
Y si no sabe dónde está su archivo php.ini. Puedes hacer un archivo "name.php" en tu servidor y poner:
Y en su sitio web, puede ver la configuración de su php.ini y está marcado donde está.
Editar el 9 de enero de 2015:
Si no puede acceder a su php.ini, tiene dos opciones más.
Puede establecer esta línea directamente en su archivo "name.php" pero no encuentro upload_max_filesize para esta opción:
O en ".htaccess"
fuente
Si lo que necesita hacer es específico solo para 1 o 2 páginas, sugiero usar set_time_limit para que no afecte a toda la aplicación.
pero, por supuesto, estos 2 valores (post_max_size y upload_max_filesize) están sujetos a investigación.
puede configurarlo a través de la función ini_set
o directamente en el archivo php.ini como la respuesta anterior de Hannes, o incluso configúrelo en .htaccess como a continuación
fuente
Además de las respuestas anteriores, puede usar la
set_time_limit()
función:http://php.net/manual/en/function.set-time-limit.php
pasar
0
como argumento hará que su script se ejecute sin límite de tiempo.fuente
Si está utilizando el servidor IIS de Microsoft , además de php.ini configuración mencionada por otros, es posible que deba aumentar la configuración del tiempo de espera de ejecución para la aplicación PHP FastCGI en el Administrador del servidor IIS:
Paso 1) Abra el Administrador del servidor IIS (generalmente bajo Administrador del servidor en el menú Inicio, luego Herramientas / Administrador de servicios de información de Internet (IIS) ).
Paso 2) Haga clic en la conexión principal (no específica de ningún dominio en particular).
Paso 3) En la sección IIS , busque Configuración de FastCGI (que se muestra a continuación).
Paso 4) en la misma, haga clic en la aplicación PHP y seleccione Editar ... .
Paso 5) Verifique los tiempos de espera (que se muestran a continuación).
En mi caso, los tiempos de espera predeterminados aquí fueron de 70 y 90 segundos; el primero de los cuales estaba causando un error interno del servidor 500 en los scripts PHP que demoraron más de 70 segundos.
fuente
Tuvo un error tipográfico: ini_set ('max_input_time', '200M') - el conjunto de valores debe ser un int, como ini_set ('max_input_time', '200')
fuente
Sé que está preguntando específicamente sobre el tiempo de espera de PHP, pero lo que nadie más parece haber mencionado es que también puede haber un tiempo de espera en el servidor web y puede verse muy similar al tiempo de espera de PHP.
Entonces, si lo ha intentado:
Y ha comprobado con la función phpinfo () que max_execution_time se ha incrementado, entonces es posible que desee intentar agregar esto a .htaccess, lo que se asegurará de que Apache no se agote el tiempo de espera:
Más información aquí: https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/
fuente
Primero verifique la
php.ini
ruta del archivo porphpinfo()
; y luego cambió losPHP.INI
parámetros:reiniciado Apache
Nota : también puede usar el comando para buscar
php.ini
en Linuxfuente
Si no puede editar php.ini (en su servidor, por ejemplo), puede intentar cambiar los parámetros de php.ini desde su código php. Tratar:
Si eso no funciona, intente también configurar 'set_time_limit' de la misma manera, más allá de eso, diría que su única opción es contactar a su anfitrión. Esta configuración no se puede modificar en modo seguro.
fuente
Pruebe si está en modo seguro; de lo contrario, establezca el límite de tiempo (valor local) a lo que desea:
* No puede establecer un límite de tiempo de esta manera si el modo seguro está activado.
fuente
opcional: si configuras config sobre php.ini pero aún no puedes cargar
-esta es la función php para verificar el código de error
fuente
También puede establecer un tiempo máximo de ejecución en su
.htaccess
archivo:fuente
Para aumentar realmente el límite de tiempo, prefiero obtener primero el valor actual.
set_time_limit
no siempre aumenta el límite de tiempo. Si el valor actual (p. Ej., Dephp.ini
o establecido anteriormente) es mayor que el valor utilizado en la llamada actual deset_time_limit
, disminuirá el límite de tiempo!Entonces, ¿qué pasa con un pequeño ayudante como este?
Ver también: Obtener max_execution_time en un script PHP
fuente