Foros del Web » Programando para Internet » PHP »

Problemas con subida de archivos PHP en Linux

Estas en el tema de Problemas con subida de archivos PHP en Linux en el foro de PHP en Foros del Web. Hola de nuevo foreros! Tengo un problemilla que no termino de comprender, ni de solucionarlo. Es un script PHP que sube archivos al servidor, de ...
  #1 (permalink)  
Antiguo 14/12/2011, 12:20
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Pregunta Problemas con subida de archivos PHP en Linux

Hola de nuevo foreros!

Tengo un problemilla que no termino de comprender, ni de solucionarlo.
Es un script PHP que sube archivos al servidor, de la siguiente manera:

1. Crea un directorio, para organizar mejor los archivos. El propietario del directorio creado es 'apache'.
2. Sube el archivo al directorio creado.

El problema es que al subir el archivo da error. Independientemente de los permisos del directorio creado (aunque éstos sean 777)
La única manera de que suba es que el directorio creado tenga como propietario el 'usuario_web' y no 'apache', y que yo sepa no puedo cambiar el propietario del directorio desde un script php..

El servidor está en un hosting tipico, donde a cada 'virtual host' se crea un usuario vinculado y es el que debe ser propietario del directorio para que el archivo suba correctamente.
(La verdad, no entiendo por qué no, aunque asigne 777 al directorio no sube...)
No llevo mucho con servidores linux, pero es la primera vez que necesito usar un script que crea los directorios donde ubicar los archivos subidos.

¿Alguien puede ayudarme?
Gracias y un saludo!
  #2 (permalink)  
Antiguo 14/12/2011, 13:02
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problemas con subida de archivos PHP en Linux

¿Podrías postear el código con que haces el upload? yo trabajo sobre servidores linux y puedo subir archivos sin problemas.
  #3 (permalink)  
Antiguo 14/12/2011, 13:11
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Problemas con subida de archivos PHP en Linux

Hola ocp001a, Gracias por tu ayuda,

El código, esta bastante fragmentado en diferentes archivos. Está dentro de un framework, y
se ejecuta en diferentes partes:

una 'aplicacion_archivos' sube el archivo a un repositorio temporal, y luego otra 'aplicacion_imagenes' mueve al repositorio final, creando un directorio previamente, redimensionando la imagen, copiando miniaturas y moviendo la imagen a tamaño original, etc. Si es necesario tratare de hacer un script de resumen para aponer aquí, porque creo que tendria que subir varios archivos y lineas para incluir todo.

Pero hago una pregunta previamente:

¿Puedes crear directorios desde tus scripts PHP y subes archivos a esos directorios?
En caso afirmativo... ¿Cómo creas los permisos o haces para ello?

Gracias por la atención y un saludo.
  #4 (permalink)  
Antiguo 14/12/2011, 13:16
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 18
Respuesta: Problemas con subida de archivos PHP en Linux

Yo tengo un pequeño servidor local (Cherokee), al principio me surgia el mismo problema, yo tengo el servidor en /var/www/ dentro de la cual tengo creada la carpeta archivos ahí es donde creo las carpetas con permisos (777) pero aun así me marcaba error, lo que hize fue dar permisos a mi carpeta archivos y problema solucionado.

Espero te ayude.

Última edición por anarkes; 14/12/2011 a las 13:19 Razón: Complementar
  #5 (permalink)  
Antiguo 14/12/2011, 13:24
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Problemas con subida de archivos PHP en Linux

Hola anarkes, gracias por ayudar.

Creo que en mi caso no funciona.

Yo puedo subir archivos sin problema con un script PHP. siempre que los directorios donde los suba tengan permisos 775 y el propietario sea el usuario del vhost donde se esté ejecutando.

El problema es que si el script ademas de subir el archivo, tiene que crear un directorio previamente, el propietario asignado al dir es 'apache' y no puedo cambiarlo desde el script (al no ser root).
Y entonces, despues, al intentar subir el archivo al dir da error y no sube...

No sé si me explico bien... supongo que alguien se habrá topado con este problema. Yo es que no llevo mucho tiempo con el server en linux, tengo algo de idea pero no soy experto.

Gracias!
  #6 (permalink)  
Antiguo 14/12/2011, 14:17
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problemas con subida de archivos PHP en Linux

nosotros cada ves creamos la carpeta uploads, por ejemplo
tenemos que hacer esto en cada servidor:
sudo chown usuario.nosenose -R <nombre_dela_carpeta>/
sudo chmod g+rw -R <nombre_dela_carpeta>/

y es ley!
  #7 (permalink)  
Antiguo 14/12/2011, 15:50
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problemas con subida de archivos PHP en Linux

Según lo último que dices, podrías crear una carpeta general para las subidas, con permisos 777, dentro de ella ya puedes crear carpetas y subcarpetas nuevamente con 777 y ahí meter archivos, al menos así es como lo trabajo yo. En cuanto a la seguridad, puedes indicar con un .htaccess que no se pueda ejecutar scripts en esa carpeta.
  #8 (permalink)  
Antiguo 15/12/2011, 03:24
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Problemas con subida de archivos PHP en Linux

Hola a todos de nuevo!

Ya he solucionado el problema. Antes de nada, GRACIAS a todos los que han estrujado su cerebro para intentar ayudarme.

El problema es debido a que mi servidor Centos5+Plesk por defecto usa la directiva PHP 'SAFE_MODE=ON'. Y con esa configuración no se puede copiar un archivo a un directorio creado, si el directorio no es propietario del usuario_sitio_web. Simplemente cambiando esa opción (bien añadiendo un vhosts.ini o tocando directamente en plesk para ese dominio) se soluciona el problema.

Añado, yo aconsejaria no trabajar con permisos 777 como indicais. Se pueden tener permisos 775, y que el usuario apache esté también en el grupo del usuario del sitio_web (por ejemplo)

Bueno, gracias a todos por la ayuda
y un saludo.

Etiquetas: linux, subida, usuarios
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.
Respuesta




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