Logo
  • Entries
  • Comments
  • Popular
Recent Posts
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • July 2007
Recent Comments
  • hector Gracias, muy util!!...
  • Makendra It's always a pleasure to hear from someone with eexrpitse....
  • Rubén Ortiz Hola dependerá de varias cosas pero la respuesta sería NO. ...
  • jose miguel perea Buenos días, ¿La replicación entre maestro y esclavo es i...
  • Rubén Ortiz Si lo hacéis legal, con VMware el único problema son los cos...
Popular Articles
  • Declaro la guerra al mosquito Tigre (35)
  • Phpbb3 - encode error converter (19)
  • Reinicio programado Windows 2003 Server (17)
  • MySQL - Variables básicas a configurar (17)
  • Plesk - Evitar el SPAM (10)
  • Home
  • Contacta
  • Hosting Linux
  • Legal
  • Sobre mí – About me

WordPress : The uploaded file could not be moved to

Posted by Rubén Ortiz on Nov 29, 2008 in Php, Software | 4 comments

Hace algunos días, me dejé este tema en el tintero. Es un error que nos puede aparecer utilizando WordPress bajo un entorno PHP con Safe Mode habilitado. Encontré la solución en el blog de Sébastien Wains. El primer “acto reflejo” es deshabilitar Safe Mode, al igual que Sébastien, yo prefiero dejarlo habilitado. Pero como no tuve tiempo de ponerme, lo deshabilité temporalmente para subir imágenes de manera urgente. Ahora ya puedo explicar la forma de trabajar con Safe Mode habilitado.

¿Qué es Safe Mode y por qué afecta a la subida de archivos?

The PHP safe mode is an attempt to solve the shared-server security problem. It is architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren’t very realistic, many people, especially ISP’s, use safe mode for now.

Con Safe Mode on, PHP se negará a leer archivos que tengan otro propietario distinto (UID) que el usuario que ejecuta en ese momento el script. Por ejemplo, si el usuario apache (UID 48) intenta leer algo del directorio wp-content/uploads (con propietario ruben, UID 10002) nos dará error, porque ambos UID no coinciden.

El truco es configurar php para hacer que Safe Mode se base en el GID y no en el UID. Luego asignaremos permisos 7777 la carpeta uploads, y a las diferentes carpetas con el número del año, si es que lo tenemos así organizado. Asignando 7777 a wp-content/uploads estamos asignando la sticky flag o sticky bit (group ID, setgid o SGID). Cuando este sticky bit es asignado a un directorio , los directorios y archivos nuevos creados bajo la jerarquía de la carpeta en la que asignamos el bit heredarán el grupo asignado a ese directorio. En el modo normal, se usa el grupo primario del usuario al asignar un grupo a la carpeta. Reiniciaremos apache.

1
2
3
# Habilitar safe_mode_gid=On en php.ini
<strong># chmod 7777 /wp-content/uploads
# /etc/init.d/httpd restart</strong>

Links:

  • http://www.wains.be/
  • http://be.php.net/features.safe-mode

4 Responses to “WordPress : The uploaded file could not be moved to”

  1. pablo says:
    10 de August, 2009 at 4:15 am

    hola ruben me pasa eso de que no me deja subir los archivos, mi pregunta es donde desactivo la opcion de safemode on?

    gracias!!!

  2. Rubén Ortiz says:
    10 de August, 2009 at 12:31 pm

    Bueno, eso depende, en el caso de Plesk, el Safe Mode está en Settings>Setup y ahí, cuando habilitas para el dominio el soporte para PHP aparece un checkbox con el Safe Mode. Pero ya digo, en el caso de Parallels Plesk Panel.

    Saludos

  3. Paco says:
    11 de May, 2010 at 5:58 pm

    Muchas gracias por la ayuda.

    Hace unas semanas, cambiamos el alojamiento de nuestro dominio y en el nuevo servidor nos salía este error. Después de dar vueltas por internet probando otras soluciones (tocar el php.ini nos asustaba, por puro desconocimiento) lo medio apañamos desmarcando la opción de clasificar los ficheros subidos en directorios uploads/año/mes, ya que en el nuevo servidor se cren los directorios mes con el usuario apache.

    Por suerte tenemos Plesk y siguiendo tu anterior comentario (que nos suena menos a chino que editar el php.ini) hemos resuelto el problema. Los directorios se siguen creando con el usuario apache, pero podemos subir ficheros con wordpress.

    Muchas gracias.

  4. norberto says:
    21 de May, 2010 at 1:46 pm

    Buenos días gente, les cuento q me he encontrado con este mismo problema… lo primero q hice fué cambiar los permisos de los archivos sin ningún resultado. Luego de leer en foros dí con un post q me llevó a pensar q me había quedado sin espacio disponible en el server…. y así fué. Luego de borrar algunos archivos q ya no se usaban pude seguir subiendo files.
    No conozco la política de mensajes de error de wordpress pero parece q para algunos errores maneja un mensaje genérico.

    Espero haber ayudado con esto. Saludos

Leave a Reply

Click here to cancel reply.

Nube de Tags

apache bare metal benchmark cacti centos dell drupal esxi General gripe A Hardware humor IIS kayako Linux lpi lyric Lyrics memcached mysql nginx openfiler OpenVZ openx Parallels php Phpbb plesk postgresql proftpd raid SQL Server ssh svn trac ubuntu varnish Virtualizacion Virtuozzo Virtuozzo Linux Warphammer.net Windows windows 2003 wordpress zabbix

Categorias

  • 2003 Server
  • Apache 2.X
  • benchmark
  • Centos
  • Cuanto (Luser) Cabron
  • ESXi
  • General
  • Hardware
  • IIS
  • Lighttpd
  • Linux
  • Lyrics
  • MySql
  • Nginx
  • OpenVZ
  • Parallels
  • Parallels Bare Metal
  • Php
  • Phpbb
  • Plesk
  • PostgreSQL
  • Prestashop
  • Software
  • SQL SERVER
  • Ubuntu
  • Varnish
  • Virtualizacion
  • Virtuozzo
  • Virtuozzo Windows
  • VMWare
  • Warphammer.net
  • Windows
  • Wordpress

Blogroll

  • David Toribio
  • EasyCompany.es
  • Marius Duch
  • Series
  • Warphammer.net

Recursos

  • Backup Plesk9
  • CentOS 5 32 bits RPMs
  • CentOS 5 64 bits RPMs
  • Lighttpd
  • MySQL Tunner
  • OpenVZ – Panel – PROXMOX
  • OpenVZ – Panel – VTONF
  • OpenVZ Wiki
  • Parallels Virtual Automation Resources
  • Plesk 8 Docs
  • Plesk 9 Docs
  • Plesk Hacker
  • Port80 – Compression Check
  • Virtuozzo DOCS
  • Virtuozzo Lin Commands
  • Virtuozzo Win Commands
  • Virtuozzo Windows Docu

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Designed by Elegant Themes | Powered by Wordpress