chamilo / chamilo-lms

Chamilo is a learning management system focused on ease of use and accessibility
https://chamilo.org
GNU General Public License v3.0
783 stars 478 forks source link

Error en las direcciones de los cursos en la pagina principal #2707

Closed alejomejia1 closed 5 years ago

alejomejia1 commented 5 years ago

Hola Yannick Tenemos este problema en una instalacion nueva , version 1.11.8 Servidor CentOs 7.5.1804 PHP 7.3.0RC3 Apache/2.4.6 (CentOS)

Current behavior / Resultado actual / Résultat actuel

En la pagina principal, cuando se activan los cursos mas populares, las tarjetas de cada curso se crean bien , con la imagen y el nombre del curso, pero la direccion de enlace, no esta siendo tomada adecuadamente.

http://168.176.239.229/chamilo/course/6/about

El mismo curso en la pagina "Mis Cursos" indica que la direccion del mismo es

http://168.176.239.229/chamilo/courses/DIPLOMADOMUSICAYPROGRAMACION/index.php

Al hacer click se obtiene un error 404 Not Found The requested URL /chamilo/courses/6/about was not found on this server.

Si se hace click desde la herramienta Mis Cursos, funciona perfectamente

Expected behavior / Resultado esperado / Résultat attendu

Se espera que al hacer click en la tarjeta del curso en los cursos mas populares, el usuario sea redirigido al curso.

Steps to reproduce / Pasos para reproducir / Étapes pour reproduire

Instalacion limpia de Chamilo 1.11.8 para php 7 Crear un curso nuevo Cargar contenido Hacer click en Pagina principal Hacer click en la tarjeta del curso

Chamilo Version / Versión de Chamilo / Version de Chamilo

Chamilo 1.11.8

Muchas Gracias

ywarnier commented 5 years ago

Hola @alejomejia1 Parece un problema de redirecciones por .htaccess (aunque también me pregunto si puede tener algo que ver con PHP 7.3 que todavía no hemos probado lo suficiente). Por el hecho que usas una dirección IP, supongo que no has configurado nada del VirtualHost de Apache y lo estás usando en su versión "por defecto". En el manual de instalación de Chamilo https://campus.chamilo.org/documentation/installation_guide_es_ES.html hay una sección "Redirecciones de Apache" que habla sobre el tema. Te recomiendo su lectura atenta.

alejomejia1 commented 5 years ago

Hola @ywarnier ,

Gracias por tu respuesta,

La razon de usar direcciones IP es que estamos en un proyecto donde configuramos servidores autonomos para crear unas redes "desconectadas" de internet y llevar educacion virtual a zonas de Colombia con poca o nula conectividad de internet, creando aulas virtuales moviles con acceso hasta de 100 estudiantes (El cubrimiento de internet en zonas rurales es malo en Colombia). Tenemos instalado un dns server en el equipo.. pero tambien lo configuramos para que responda por url o ip

Volviendo al tema y analizando la base de datos, el numero 6 (en el error) es el id del curso image Pero en la estructura de directorios de chamilo, se usan los codigos de curso image

En este sentido, me imagino que existe un llamado a la base de datos para convertir el 6 en el codigo de curso correspondiente, esto no lo podria hacer .htaccess, por tanto pienso que es mas un problema de Php

En que parte del código puedo revisar esta función de llamar a la base de datos, conseguir el código de curso y construir la URL para llamado a la pagina about de cada curso? Estaria muy feliz de poder ayudar con la solución a ese tema.

Saludos Alejandro

ywarnier commented 5 years ago

La trayectoria es está: La llamada a course/6/about se tranforma en main/course_info/about.php?course_id=6 por el .htaccess:

https://github.com/chamilo/chamilo-lms/blob/2e554821b04bc2c6b62b6faba8c252b641cf03e1/.htaccess#L51

Lo que pasa es que si usas una subcarpeta, es probable que tengas que modificar el .htaccess para añadir un RewriteBase al inicio, después del RewriteEngine on:

RewriteEngine on
RewriteBase /chamilo/

Luego de esto, en main/course_info/about.php (agregada recientemente como ves aquí https://github.com/chamilo/chamilo-lms/commit/dd3390a6b9c638bec466e4b18e2e73682e417f31#diff-45101cebd982935ac176bca324eb376c), veo que hay un posible problema pero que no parece ser el que mencionas, porque ahí se especifica un enlace a main/course/about.php, que no existe:

https://github.com/chamilo/chamilo-lms/blob/2e554821b04bc2c6b62b6faba8c252b641cf03e1/main/course_info/about.php#L54

Sin embargo eso no tiene porque generar el error que mencionas. Es más bien otra cosa en paralelo.

alejomejia1 commented 5 years ago

Hola @ywarnier

Cuando se coloca la condición a la que haces referencia, en el archivo .htaccess en la carpeta /chamilo/ no la esta tomando (adicione en el archivo de configuracion de apache la linea LogLevel warn rewrite:trace8 con el fin de hacer un debug de Rewrite)

Si en el archivo de configuracion de apache (/etc/httpd/conf/http.conf) en mi caso, se adiciona la condicion, la redireccion funciona y la pagina about se muestra sin problema

En el manual de instalacion en el capitulo

  1. Rewrite estan las reglas de redireccion para Apache, pero tampoco se incluye la regla
    ^course/(\d{1,})/about/?$ ....

El mio quedo de la siguiente manera (/etc/httpd/conf/http.conf)

<Directory "/var/www/html/chamilo"> RewriteEngine On RewriteCond %{QUERY_STRING} ^id=(.)$ RewriteRule ^([^/.]+)/?$ user.php?$1 [L] RewriteRule ^certificates/$ certificates/index.php?id=%1 [L] RewriteRule ^courses/([^/]+)/$ app/course_home/course_home.php?cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/index.php$ main/course_home/course_home.php?cDir=$1$ RewriteRule ^courses/([^/]+)/document/(.)$ main/document/download.php?doc_url=/$ RewriteRule ^courses/([^/]+)/work/(.)$ main/work/download.php?file=work/$2&cDir$ RewriteRule ^courses/([^/]+)/upload/(.)$ main/courses/$1/upload/$2 [QSA,L] RewriteRule ^courses/([^/]+)/course-pic85x85.png$ main/courses/$1/course-pic85x8$ RewriteRule ^courses/([^/]+)/course-pic.png$ app/courses/$1/course-pic.png [QSA,$ RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L] RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued.php?skill=$1&user=$2$ RewriteRule ^course/(\d{1,})/about/?$ main/course_info/about.php?course_id=$1 [L]

Muchas gracias por tu tiempo

Alejandro

AngelFQC commented 5 years ago

Acabo de actualizar la guía de instalación y el archivo .htaccess

jmontoyaa commented 5 years ago

Nota: para v2 ese "course/6/about" debería de ser removido del htacces y ser convertido en un "action" de un controller en symfony ....

ywarnier commented 5 years ago

Los caminos antigüos tienen que seguir siendo soportados, aunque estén como reglas en una sección separada del .htaccess, porque puede que alguién haya hecho una referencia desde otro sitio, así que siempre hay que mantener una traducción para las rutas antigüas.

wollmanmq commented 5 years ago

Si no han podido solucionar ese problema, revisen dentro de los archivos que instalaron en el server una carpeta llamada chamilo 1.XX (XX es la versión, puede variar según la instalada) dentro de ella hay un archivo .htaccess el cual deben mover a la carpeta principal de la plataforma chamilo, y listo.

AngelFQC commented 5 years ago

Creo que está relacionado con #2710. Al ser una instalación dentro de una subcarpeta debería estar configurado la opción $_configuration['url_append'] = 'chamilo'; en el archivo configuration.php

NicoDucou commented 5 years ago

Hola @alejomejia1

Puedes probar con las coreciones y indicaciones que se han indicado en esta tarea para saber si soluciona tu problema para poder cerrar esta tarea.

Gracias.

alejomejia1 commented 5 years ago

Hola Nicolas, Gracias por tu email. Mañana hare una instalacion limpia y verifico los cambios. Muchas gracias

Saludos

[image: Mailtrack] https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5& Remitente notificado con Mailtrack https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5& 22/01/19 20:57:34

On Tue, Jan 22, 2019 at 7:57 AM Nicolas Ducoulombier < notifications@github.com> wrote:

Hola @alejomejia1 https://github.com/alejomejia1

Puedes probar con las coreciones y indicaciones que se han indicado en esta tarea para saber si soluciona tu problema para poder cerrar esta tarea.

Gracias.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/chamilo/chamilo-lms/issues/2707#issuecomment-456389941, or mute the thread https://github.com/notifications/unsubscribe-auth/ADK4hEgMuoPZfgwL_2cK3SsU73dtYWibks5vFwqugaJpZM4X3BJ- .

-- Alejandro Mejia A Cel 315 7520662

ywarnier commented 5 years ago

Bueno, creo que ya vamos mucho tiempo esperando. De nuestro lado, tenemos que considerar que se solucionó.

damisio commented 4 years ago

Buenos dias, tengo el mismo problema aun. Porfavor podrian apoyarme

ywarnier commented 4 years ago

Hola @damisio, este no es un canal de soporte sino un lugar para reportar bugs de Chamilo con ámplios detalles y que se puedan reproducir. Para soporte: https://forum.chamilo.org/ Si tienes detalles específicos y todo lo necesario para reproducir este problema (configuración de tu instalación de Chamilo, permisos, etc) con gusto lo podemos revisar, pero sin detalle no podemos hacer nada. Por favor antes de reportar, asegúrate de leer la guía de instalación. En muchos casos, por no leerla, los usuarios se equivocan en algún paso de la instalación y no llegan a un sistema operacional. https://campus.chamilo.org/documentation/installation_guide_es_ES.html

JuanDavRH commented 7 months ago

Hola @ywarnier, tengo el mismo problema que mencionaban anteriormente, realice una actualización de 1.11.12 a la 1.11.26, ya esta funcionando todos los redireccionamientos y la base de datos, pero cuando voy a ingresar a algun curso me aparece el siguiente error: Not Found The requested URL was not found on this server.

Apache/2.4.41 (Ubuntu) Server at 20.34.46.13 Port 8082

Agradeceria si alguien pudiera ayudarme, entiendo que este no es el canal adecuado para hacer la consulta que pena.