error al intentar subir ficheros

error al intentar subir ficheros

de jouse 2001 -
Número de respuestas: 11

Hola a tod@s,

   he instalado moodle 1.2 en un servidor compartido, y de momento bien, he creado un curso y cuando pulso en archivos para subir ficheros me sale el siguiente error:

Warning: mkdir() failed (Permission denied) in /home/httpd/vhosts/formacionenlared.com/httpdocs/moodle12/lib/moodlelib.php on line 1395
ERROR: Could not find or create a directory (/home/httpd/vhosts/formacionenlared.com/httpdocs/moodle12/datosmoodle/3)

entiendo que es un problema de permisos, que no permite crear directorios en el directorio de datos, éste lo he creado dentro del directorio de moodle y le creado el fichero .htaccess como indica en la documentación de moodle por el tema de seguridad.

Qué puedo hacer para solucionar este problema?

   gracias,

     José A.

Promedio de valoraciones: -
En respuesta a jouse 2001

Re: error al intentar subir ficheros

de jouse 2001 -

hola de nuevo,

me ocurre lo mismo cuando intento colgar mi imagen en información personal, me sale esto:

Warning: mkdir() failed (Permission denied) in /home/httpd/vhosts/formacionenlared.com/httpdocs/moodle12/lib/gdlib.php on line 62

supongo que es más de lo mismo, espero vuestra ayuda.

   José A.

En respuesta a jouse 2001

Re: error al intentar subir ficheros

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
En respuesta a Eloy Lafuente (stronk7)

Re: error al intentar subir ficheros

de jouse 2001 -
Gracias Eloy por tu respuesta.

Le comenté al administrador del servidor que cambiara el propietario del directorio de datos, al de apache o nobody, pero me comenta que lo que tengo que hacer es cambiar los permisos del directorio, que estaba en 755 (rwx,r-x,r-x) y lo ponga en 777 (rwx,rwx,rwx) lo he hecho y funciona, pero creo que de este modo, cualquiera puede entrar en este directorio y modificar ficheros, lo cual es un problema de seguridad. Ya se lo he comentado y estoy esperando su respuesta. Tú opinas del tema, que debo hacer?

un saludo

José A.
En respuesta a Eloy Lafuente (stronk7)

Re: error al intentar subir ficheros

de jouse 2001 -
Hola de nuevo,

me acaba de responder el administrador en referencia al cambio de propietario en el directorio de datos y me dice esto:

"Si hiciera eso, ustedes se quedarían sin poder acceder al directorio en cuestión, por no ser el propietario y no haber permisos para "otros".

Y si diéramos permisos para "otros" estaríamos en las mismas."

qué solución puedo darle?

un saludo

José A.
En respuesta a jouse 2001

Re: error al intentar subir ficheros

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hombre, en teoría, si siempre vas a subir los ficheros al servidor Moodle utilizando el propio Moodle (y no vía ftp o similares), no debería haber mayor problema en que el propietario del directorio de datos fuera apache (y con permisos 700), ya que tú con tu usuario de Unix (supongamos que es "josue") nunca vas a acceder.

Esto tiene el problema de que, en ocasiones, puede resultarte interesante entrar directamente a ese directorio para hacer alguna modificación manual o similar, cosa que deberías hacer desde tu cuenta de Unix "josue". Y esta utilidad es la que perderías.

Eso eres tú el que tiene que valorarlo. Podría probarse a poner el usuario "josue" como propietario y el usuario "apache" como grupo. A ello le podrías dar permisos 770 (aunque todo lo que se cree dentro irá, por defecto con 775) pero así por lo menos, se lo pones un poco más dificil a otros usuarios y no pierdes ninguna funcionalidad.

Y que conste que no es un problema de Moodle, sino de *cualquier* hosting compartido. Como el usuario apache tiene que ver los ficheros de los hosting, cualquier usuario, si sabe dónde buscar puede (potencialmente) acceder a los ficheros de otro hosting.

Espero que te sirva (y no te líe más de lo que estabas) gran sonrisa

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: error al intentar subir ficheros

de jouse 2001 -
Hola Eloy,

bueno no te creas, me das algunas alternativas y eso siempre está bien, se las he comentado al administrador a ver que hacemos. Probablemente opte por cambiar el propietario a apache, que es más seguro, porque con las opciones de comprimir y descomprimir que trae moodle, casi no necesito usar el ftp.

Una cuestión más, si necesitara usar ftp le tendría que pedir al administrador que cambie de nuevo el propietario, y cuando haya hecho los cambios volver a cambiar a apache, la verdad es que esto sería bastante incómodo y poco operativo, ¿si se cambia de nuevo el propietario afectaría a los subdirectorios?.

Muchas gracias por tu ayuda,

José A.
En respuesta a jouse 2001

Re: error al intentar subir ficheros

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Si.

Para poder subir vía ftp, el propietario debes ser tú y no apache. De todas formas, salvo para alguna cosa mu grande, seguramente no te hará falta el ftp. Pero si lo quieres utilizar no hay otro remedio.

Para que el cambio de propietario o permisos afecte a un directorio y todo lo que hay dentro de el, se utiliza la opción -R en los comandos chown o chmod de Unix (seguro que tu admin lo sabe). Si no se utiliza esa opción, solamente se cambia de propietario/permisos al fichero selecionado.

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: error al intentar subir ficheros

de jouse 2001 -

hola de nuevo,

probé a poner el usuario "mi_usuario" como propietario y el usuario "apache" como grupo con permisos 770, como una posible opción que me comentabas, pero todos los directorios y ficheros que subía a través de ftp se creaban con usuario "mi_usuario" como grupo y no apache, por lo que desde la plataforma no los podía ver. Tenía que subirlos desde la plataforma, entonces el propietario era apache y sí los podía ver.

   Lo que haré será pedirle al administador que sea apache el usuario propietario y también de grupo con los permisos 700. Y usaré la opción de descoprimir de la plataforma.

   Un saludo y gracias de nuevo.

Enhorabuena por el lanzamiento de la versión definitiva de Moodle 1.2 . Es una buena y esperada noticia.

           José A.

En respuesta a jouse 2001

Re: error al intentar subir ficheros

de Wilmar Fernando Cortes Guerrero -

Hola amigos

a mi me esta pasando lo mismo pero es con ciertos archivos, yo tengo habilitado para que suban archivos hasta de 4 megas, pero no puedo hacer que suban archivos de Power Point de solo 950 K

en el proxy me sala el error

The following error was encountered:

  • Write Error

The system returned:

    (32) Broken pipe

Agradeceria cualquier informacion

lo unico es que cambie mi servidor ahora es una maquina nueva esta bajo RedHat 9 y antes no tenia ese problema

gracias por su ayuda

En respuesta a Wilmar Fernando Cortes Guerrero

Re: error al intentar subir ficheros

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Wilmar (y compañía).

Para definir de forma COMPLETA el tamaño máximo de fichero qu se puede subir, hay que hacerlo en varios sitios (puesto que cada componente del servidor puede tenerlo de forma diferente).

Ahí va, si no me equivoco, todos los sitios que hay que modificar:

1.-En Apache2 (especialmente con RedHat), hay que editar los ficheros /etc/httpd/conf/httpd.conf y/o /etc/httpd/conf.d/php.conf para ajustar, en bytes, el tamaño máximo de envío. Para ello, hay que localizar la línea siguiente y ponerle ese valor, que equivale a 10MB:

LimitRequestBody 10485760

(con esto a Apache le hemos dicho que acepte hasta 10MB de ficheros)

2.-En PHP hay que definir el límite otra vez. Para ello hay que editar el fichero php.ini (o el .htaccess si fuera necesario) y poner:

hp_value upload_max_filesize 50000000
php_value post_max_size 50000000

(con esto a PHP le hemos dicho que acepte hasta 5MB, aprox., de ficheros)

3.-En Moodle, en Administración/Variables, en la variable maxbytes le decimos lo que aceptará todo nuestro sitio Moodle.

4.-En cada curso de Moodle, le puedo especificar también un valor máximo de tamaño de fichero.

5.-Finalmente, algunas actividades permiten poner otro valor diferente.

Y estos son todos los sitios en los que se define el tamaño máximo de archivo a subir. Evidentemente, el límite REAL será siempre EL MAS BAJO DE TODOS LOS ANTERIORES al intentar subir un fichero (no sirve de nada decirle a Moodle que se pueden subir 5MB si el límite de Apache es de 1MB, que es lo que supongo que os puede estar ocurriendo).

Espero que con esto podáis solucionar el problema, ciao sonrisa