Foros del Web » Programando para Internet » PHP »

Duda sobre upload_max_filesize

Estas en el tema de Duda sobre upload_max_filesize en el foro de PHP en Foros del Web. Hola a todos, Un cliente me ha pedido para su web un sistema de descargas, el cual se utilizara para software y sus actualizaciones. Bueno ...
  #1 (permalink)  
Antiguo 29/11/2005, 12:42
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Duda sobre upload_max_filesize

Hola a todos,

Un cliente me ha pedido para su web un sistema de descargas, el cual se utilizara para software y sus actualizaciones.

Bueno el caso es que primero lo hize mediante la funcion "move_uploaded_file($archivo,$archivo_ruta);" . funcionaba perfectamente hasta que tenia que subir archivos mas grandes, entonces me salia una pantalla en blanco y sin ninguna clase de error.

Supuse que seria por utilizar el protocolo http y cambie a ftp usando la funcion "ftp_put($id_ftp,$archivo_destino,$archivo_fuente, FTP_BINARY);" y paso lo mismo funcionaba perfectamente salvo para archivos mayores.

Puse la funcion "set_time_limit();" a cero por si era cusa de tiempo y nada.

POR FIN di con la causa en la configuracion del php "upload_max_filesize" estaba a 10M .

Mis preguntas son:

1.- Se puede configurar php para que no tenga limite en el upload?

2.- Consejos de lenguajes de programacion que pueda utilizar para programar el sistema de descargas sin limite para el servidor.

GRACIAS

P.D. Si me enrollo tanto es porque creo que asi a otra persona que le suceda lo mismo le ahorrare varios dolores de cabeza.
  #2 (permalink)  
Antiguo 29/11/2005, 12:53
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
tendrias q tener acceso al php.ini q es el archivos de configuracion, o sino ver si podes poner Flags donde lo especificas propio para tu dominio
  #3 (permalink)  
Antiguo 29/11/2005, 14:27
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Gracias Nefertiter por contestar.

No tengo acceso al php ini, y lo segundo no te lo entendi, a que te refieres con las flags?

Que hacen los demas cuando tienen este problema? (aparte de montarse un sevidor privado claro xd).
  #4 (permalink)  
Antiguo 29/11/2005, 15:59
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
un '.htaccess' en la carpeta, con:

php_value upload_max_filesize 67107840
php_value post_max_size 67107840


Saludos.
  #5 (permalink)  
Antiguo 30/11/2005, 02:37
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Cita:
Iniciado por Shockly
un '.htaccess' en la carpeta, con:

php_value upload_max_filesize 67107840
php_value post_max_size 67107840


Saludos.
ok lo probare

Gracias

Última edición por Pleniluni0; 30/11/2005 a las 08:38
  #6 (permalink)  
Antiguo 30/11/2005, 08:37
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Gracias sockly ya consegui subir archivos mayores.

Mi pregunta es si pusiste esos valores por alguna razon, son el maximo permitido o fue al azar?

Se puede usar tambien con memory_limit?
Cual seria la memoria necesaria para subir archivos de 500 MB?

Gracias a todos

Última edición por Pleniluni0; 30/11/2005 a las 08:43
  #7 (permalink)  
Antiguo 30/11/2005, 08:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Los puse como ejemplo (son 64 Mb). Para 512 Mb, usa (512*1024*1024) = 536870912

Un saludo.
  #8 (permalink)  
Antiguo 30/11/2005, 09:02
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Hola de nuevo xd

en local me va de maravilla pero en mi server de PAGO DE LOS COJON%&"(!
me sale este mensaje.

The server encountered an internal error or misconfiguration and was unable to complete your request.

Alguien me puede indicar algo?

Gracias.
  #9 (permalink)  
Antiguo 30/11/2005, 09:09
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Elimina allí el '.htaccess' y -en su lugar- crea un 'php.ini' con:

upload_max_filesize = 512M
post_max_size = 512M


Un saludo.
  #10 (permalink)  
Antiguo 30/11/2005, 12:14
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Shockly

Ya lo hize pero el server lo ignora sigue exactamente igual.
Gracias por tus respuestas, a ver si hay algo que pueda hacer mas.



Un saludo

P.D. Si me llegara el sueldo te regalaba un jamon pa navidad
  #11 (permalink)  
Antiguo 30/11/2005, 13:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Pleniluni0
Shockly

Ya lo hize pero el server lo ignora sigue exactamente igual.
Gracias por tus respuestas, a ver si hay algo que pueda hacer mas.



Un saludo

P.D. Si me llegara el sueldo te regalaba un jamon pa navidad
Si usas un servicio de hosting .. lo que deberías hacer es consultar directamente con tu proveedor. Si ellos tienen limitado el uso de .htaaccess .. o no toman en cuenta un php.ini personalizado para tu domino o tienen otro tipo de restricciones .. nunca lo sabras. Mejor pregunta directamente.

Lo que si se te puede recomendar es que visites la documentación oficial de PHP y veas que directivas de PHP se pueden alterar sus valores por un .htaccess o equivalente (sin llegar al php.ini).

http://www.php.net/manual/en/ini.php#ini.list

Un saludo,
  #12 (permalink)  
Antiguo 30/11/2005, 14:14
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Qué manía que tienen algunos hospedadores con tocar las narices limitando las formas de operación, oiga. El caso es que por tanto miedo que pasan -los pobres-, lo único que consiguen es más trabajo para ellos, del tipo "oiga, me pone el max_... a MIL MILLONES?". En fin.

Ese error, el "The server encountered an internal error or misconfiguration and was unable to complete your request." que supongo será el 500, es típico de que han activado el PHPsuexec ... pero si encima no permiten un php.ini, sencillamente es que tienen poco trabajo.

Un saludo.


Cita:
PHPSuexec has been activated.

Rewrite Rules and php_value modifications are no longer processed.

If you are recieving an "Internal Server Error", this means that there is something wrong in your ".htaccess" - simply rename ".htaccess" to anything else or remove it.

================== UPDATE =================================

When PHP runs as an Apache Module it executes as the user/group of the webserver which is usually "nobody". Under this mode, files or directories that you require your php scripts to write to need to have 777 permissions (read/write/execute at user/group/world level). This is not very secure because besides allowing the webserver to write to the file it also allows anyone else to read or write to the file.

With PHP running as CGI with suexec enabled your php scripts now execute under your user/group level. Files or directories that you require your php scripts to write to no longer need to have 777 permissions. In fact, having 777 permissions on your scripts or the directories they reside in will not run and will instead cause a 500 internal server error when attempting to execute them to protect you from someone abusing your scripts. Your scripts and directories can have a maximum of 755 permissions (read/write/execute by you, read/execute by everyone else). PHP running as CGI/suexec is much more secure than the older Apache module method.

Files and directories also need to be owned by your user/group. You probably don't need to worry about this as all files you upload or create will be owned by your user/group automatically.

.htaccess
Under the old Apache Module mode you were able to manipulate the PHP settings from within a .htaccess file placed in the script's directory.

For example you could turn off the php setting "magic_quotes_gpc" with this line in .htaccess:

php_value magic_quotes_gpc on

With PHP running as CGI/phpsuexec manipulating the PHP settings is still possible however it can not be done with .htaccess. Using .htaccess with php_value entries within it will cause a 500 internal server error when attempting to access the scripts. This is because php is no longer running as an apache module and apache will not handle those directives any longer.

All php values should be removed from your .htaccess files to avoid the 500 internal server error. Creating a php.ini file to manipulate the php settings will solve this issue.

What is a php.ini file and how do I go about making one?
The php.ini file is a configuration file that the server looks at to see what options have been turned on, off or set to a number different from the defaults that we have set for the server. While the name may seem advanced to those unfamiliar with it, it's simply a text file with the name php.ini

To create a php.ini file, just open up a text editor, add in the lines you need and save the file. You can name the file whatever you wish when saving. Once done, upload the file to the directory where your script is located and then rename it to php.ini

For example you can turn off the php setting "magic_quotes_gpc" with this line in php.ini:

magic_quotes_gpc = no

If you have 500 internal server error please do the following:

1. Check that the php script that you are attempting to execute has permissions of no more than 755 - 644 will work just fine normally, this is not something that will need to be changed in most cases.

2. Check that the directory permissions that the script resides within is set to a maximum of 755. This also includes directories that the script would need to have access to also.

3. Check that you do not have a .htaccess file with php_values within it. They will cause a 500 Internal server error, when attempting to execute the script.

The php_values will need to be removed from your .htaccess file and a php.ini put in its place, containing the php directives as explained above.
  #13 (permalink)  
Antiguo 30/11/2005, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Gracias Shockly por el TIP ...

Estaría bueno que si tienes tiempo implementes una pequeña FAQ al respecto . .una guia para ver el problema. Por ejemplo .. indica que se vea en un phpinfo() en que modo está instalado PHP (CGI/phpsuexec) (por ahí podriamos verlo supongo?).

Un saludo,
  #14 (permalink)  
Antiguo 30/11/2005, 15:00
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Hay que apañaoooo eres. Muchas gracias por la informacion.

Esta claro que lo primero que hize fue abrir un ticket de asistencia contandoles mi problema para que me subieran esos valores, pero todavia estoy esperando la respuesta.

Un abrazo, seguire intentandolo. xd
  #15 (permalink)  
Antiguo 30/11/2005, 15:52
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
¿ PHP corre como módulo de Apache o como CGI ?

- Cuando PHP corre como CGI, en phpinfo() Server API muestra: 'CGI'
- Cuando PHP corre como un Módulo de Apache, en phpinfo() Server API muestra: 'Apache' o 'Apache + versión' o 'Apache Handler' o cualquiera de las combinaciones de ellos.



¿ Tenemos control sobre php.ini ?

- Si en phpinfo() Configuration File (php.ini) Path lo muestra dentro de un directorio al que tenemos acceso (ej.: '/home/domain/public_html/php.ini'), tenemos control sobre él.


Un saludo.
  #16 (permalink)  
Antiguo 30/11/2005, 16:28
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Hola otra vez

Bueno php corre como CGI, y el php.ini esta en:
/web/conf/php.ini
Teniendo en cuenta que la direccion completa del directorio de mis pages es:
/web/htdocs/www.indalmix.com/home/

Va ha ser que no tengo acceso a el

Estoy probando otras cosas con el htaccess, por ejemplo la autentificacion con htpasswd y funciona perfectamente:

AuthName "Acceso restringido"
AuthType Basic
AuthUserFile c:/apachefriends/xampp/htdocs/carpeta_del_htpasswd/.htpasswd
AuthGroupFile /dev/null
require valid-user

--pero si le añado:

php_value upload_max_filesize 536870912
php_value post_max_size 536870912

--en local funciona bien y en el server me dice que:

The server encountered an internal error or misconfiguration and was unable to complete your request.

He pensado que en el conf de apache puede ser que haya algun tipo de instruccion que limite el uso de .htaccess (esto es una suposicion), pero da igual pq tampoco tengo acceso a él. .Hasta ahi la odisea.

Un abrazo a los dos y gracias por el interes

P.D. Lo que mas me jode es que me caliente la cabeza para hacer un script que funcione en SAFE MODE ON y cuidando los detalles para que venga el sevidor DE PAGO a hacerme perder el tiempo.
  #17 (permalink)  
Antiguo 30/11/2005, 16:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Se me olvidaba comentar un curioso 'efecto colateral' de usar un CGI para correr PHP, consistente en que cuando el CGI casca, toda llamada a un script ('index.php' o cualquier otro) se resuelve obteniendo el script para su descarga. Es decir, como no hay nadie que lo trate y el Apache no sabe qué hacer con él, sencillamente lo entrega para su descarga.

Ahora que está poniéndose de moda tratar el PHP con CGIs, esperan bonitas sorpresas... más si/cuando se encuentra la forma de cargarse el CGI.

Un saludo.
  #18 (permalink)  
Antiguo 30/11/2005, 16:47
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Mierda De Servidor
  #19 (permalink)  
Antiguo 30/11/2005, 19:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Que sirva el comentario de Shockly como para "Datos a tener en cuenta para elegir un servicio de hosting con soporte PHP y no morir en el intento".

Intenta usar servicios de hosting con PHP configurado como módulo .. Casi todos ofrecen ver un "phpinfo()" en sus paneles de control (y sino, habrá que pedirlo).

Un saludo,
  #20 (permalink)  
Antiguo 01/12/2005, 02:23
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Pues si, es un dato bastante imprtante a tener en cuenta y yo añadiria que tuviera un buen servicio postventa y si tienes alguna duda o algo que cambiar que te respondan rapido.

Yo todavia estoy espereando que me contesten.
Me recomendais aguno?

Un saludo.
  #21 (permalink)  
Antiguo 01/12/2005, 10:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Hay un aspecto que no sé si ha pasado desapercibido... cuando el CGI casca, toda llamada a un script ('index.php' o cualquier otro) se resuelve obteniendo el script para su descarga... es decir, su texto en claro.

Eso significa que encontrar el 'config.php' o como quiera que se llame(n) y en consecuencia los login y passwords, es, en ese momento, trivial.

La única solución para evitar que ante esa eventualidad el site completo se vea expuesto, es poner el/los 'config.php' (los datos de log/pass, etc) fuera del acceso web... Por ejemplo: Si el path es este, '/home/domain/public_html/index.php', el 'config.php' irá en '/home/domain/config.php' ... es decir, *ANTES* (fuera) de la carpeta 'public_html'.

(no todo iban a ser malas noticias ;)

Un saludo.
  #22 (permalink)  
Antiguo 01/12/2005, 13:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La única solución para evitar que ante esa eventualidad el site completo se vea expuesto, es poner el/los 'config.php' (los datos de log/pass, etc) fuera del acceso web... Por ejemplo: Si el path es este, '/home/domain/public_html/index.php', el 'config.php' irá en '/home/domain/config.php' ... es decir, *ANTES* (fuera) de la carpeta 'public_html'.

O dicho de otra forma y en general .. Cololcar los archivos fuera del alcance del "DOCUMENT_ROOT" del servidor (que en un phpinfo() también se informa de dicha variable en el grupo de variables _SERVER ...)

Un saludo,

PD: Shockly, te animas a realizar una FAQ para el foro de PHP al respecto?
  #23 (permalink)  
Antiguo 01/12/2005, 13:51
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Hola de nuevo pues aqui concluye esta odisea para poder trabajar en un servidor de pago y que no te jodan en el intento. El servidor es aruba y esta ha sido su amable respuesta.

Cita:

Mensaje:
Estimado Cliente,

la informamos que no es posible tener form upload para publicar archivos de 100MB, porque la publicación de los archivos por página web es sujeto lado servidor a algunos controles para salvaguardar la estabilidad del mismo servidor: por lo tanto ha sido configurado un tiempo de ejecución máximo para la página que efectua el upload y una dimensión indirecta máxima para los archivos, que depende por la velocidad de conexión del usuario que efectua el upload.

Saludos

Es decir que me den por $%&)!", Ahora debo tranferir el dominio y las cuentas
y todo a otro servidor que no sea tan capullo.

Seria bueno hacer una lista de servidores con buenas ventajas para el uso de php, teniendo en cuenta la calidad-precio, tiempode respuesta de una peticion etc.

Para eso abrire un post nuevo.

Gracias a los dos por el intento xd.
  #24 (permalink)  
Antiguo 03/12/2005, 03:27
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por Cluster
Shockly, te animas a realizar una FAQ para el foro de PHP al respecto?
Soy muy malo -siempre lo he sido- haciendo documentaciones, seguro que tú lo haces mejor, Cluster... por favor.

Un saludo.
  #25 (permalink)  
Antiguo 03/12/2005, 14:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Shockly
Soy muy malo -siempre lo he sido- haciendo documentaciones, seguro que tú lo haces mejor, Cluster... por favor.

Un saludo.
Ok .. tomaré tus comentarios al respecto y cuando pueda haré yo la FAQ en cuestión con los créditos correspondientes para ti.

Un saludo,
  #26 (permalink)  
Antiguo 25/05/2007, 19:23
Avatar de befranel  
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
De acuerdo Re: Duda sobre upload_max_filesize

Cluster y Shockly, muchas gracias por dar sus opiniones en este foro, la verdad me he podido beneficiar mucho de sus comentarios aqui expuesto, dado que tenia un problemita para subir archivos de gran tamaño, al igual estaba por adquirir un hosting pago y he considerado tomar en cuenta las sugerencias expuestas por uds en relacion al tema de los hosting pago. Gracias por colaborar en este foro donde gente como yo sale beneficiada.
  #27 (permalink)  
Antiguo 25/07/2007, 16:35
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 20 años, 9 meses
Puntos: 2
Re: Duda sobre upload_max_filesize

hey hey!!!! que buena cosa ...

jejej ....

jejej .. estuve programando un sistema de upload al server y tenía problemas para la carga de archivos mayores a 2 megas .. luego de una buenas horas de programación caigo en cuenta que el upload_max_filesize estaba a dos megas .. les cuento que me alcancé a estresar .. revise google y nada .. mucha info pero nada claro.. revise el foro y voila!!! .. jejej una sencilla respuesta para una buena pregunta ...

Cita:
un '.htaccess' en la carpeta, con:

php_value upload_max_filesize 67107840
php_value post_max_size 67107840
puse el htacces y voila!!!

Shockly man .. grax !

Chauuuu ... epa!!! ya se me quito el dolor de cabeza que me había empezao!



se me nota mi alivio ¿? .. jeje .. eso creo .. bye!
__________________
MWNS
Mario Navas
http://marionavas.com
  #28 (permalink)  
Antiguo 03/12/2007, 15:22
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 19 años, 2 meses
Puntos: 10
Re: Duda sobre upload_max_filesize

yo tengo el upload_max_filesize en mas de 2M y ni m edeja subir mas de 2 megas....
__________________
.-._.-. [email protected]._.-.
  #29 (permalink)  
Antiguo 23/01/2008, 15:40
 
Fecha de Ingreso: mayo-2005
Mensajes: 55
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Duda sobre upload_max_filesize

Cita:
Iniciado por Shockly Ver Mensaje
un '.htaccess' en la carpeta, con:

php_value upload_max_filesize 67107840
php_value post_max_size 67107840


Saludos.
Yo hice un archivo .htacces con los datos de la siguiente manera:

php_value memory_limit 1000M
php_value post_max_size 1000M
php_value upload_max_filesize 1000M
php_value max_execution_time 120
php_value max_input_time 120

OJO con poner "M" en vez de "Mb". Los segundos son solo en números como aparece en el ejemplo arriba expuesto.

Por si alguien no sabe como hacer el .htacces, simplemente abran un archivo nuevo, borren todas las etiquetas HTML, que quede en blanco, peguen:


php_value memory_limit 1000M
php_value post_max_size 1000M
php_value upload_max_filesize 1000M
php_value max_execution_time 120
php_value max_input_time 120

sin comas ni nada. Luego al guardar, pongan como nombre: .htacces y listo! Quizás para muchos parecerá una tontería pero algunos me preguntaron como crear ese archivo .

También, es importante saber que el .htacces actua en la carpeta donde se ponga, en caso de querer que funcione para toda la página, es recomendable ponerlo en la raíz.

Espero haber complementado esta información y poder contribuir a cesar los dolores de cabeza .

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:18.