Web en un servidor, base de datos en otro

Web en un servidor, base de datos en otro

de Ana Cuervo -
Número de respuestas: 2

Buenos días a todos.

Trabajo para una empresa en la que en su día instalaron moodle, configurándolo para un hosting que también incluía el soporte para mysql. Ahora me gustaría cambiar la configuración de la base de datos para que apunte a una que he creado en un servidor que tenemos en la empresa. Este servidor (windows2008) es solo para uso interno.

Pensaba que la solución sería trivial, simplemente cambiar en el config.php el nombre del usuario y el servidor, pero no soy capaz de que funcione. ¿Es imposible lo que estoy intentando hacer? He probado poniendo la ip y el puerto en el dbhost, pero me da un error 500 y ninguna información más. ¿Alguna idea?


Muchas gracias, un saludo.

Promedio de valoraciones: -
En respuesta a Ana Cuervo

Re: Web en un servidor, base de datos en otro

de Jose Luis Martin Jimenez -
Imagen de Moodlers de gran ayuda

Hola, Ana.

A ver si lo he entendido bien. Hasta ahora teníais Moodle instalado en un hosting externo, donde corría tanto el servidor Web-PHP para Moodle, como el servidor de la base de datos para Moodle (no sé si en servidores diferentes, pero en el mismo hosting en todo caso).

Ahora lo que quieres es tener en un servidor local (de tu propia empresa) ... ¿solamente la base de datos de Moodle? ¿el servidor Web-PHP seguirá estando en un servidor del hosting externo?.

En ese caso, sería posible que funcione así, PERO vuestro servidor de bases de datos debería responder a una IP pública de Internet (la que tendrías que poner en el archivo config.php de Moodle). Sin embargo, comentas que ese servidor es solo para uso interno, por lo que lo normal sería que no tenga IP pública y no sea accesible desde fuera de tu empresa (por seguridad, lo normal es que sea así). Además hay que tener en cuenta las reglas de firewall o proxy que haya en vuestra red.

En resumen, no sería imposible hacer que funcione, pero no me parece una solución muy recomendable.

Claro que tal vez no te he comprendido bien ...

Saludos.

En respuesta a Jose Luis Martin Jimenez

Re: Web en un servidor, base de datos en otro

de Ana Cuervo -

Muchas gracias, Jose Luis, por tu respuesta.

Sí, efectivamente, el moodle y su carpeta de datos está en un servidor y la base de datos en otro, y no están en la misma red/subred. 

Ayer conseguí que las entradas por el puerto 3306 se redirigieran al pc que hace de servidor a través de la ip pública, con lo que ya puedo conectar, al menos en teoría, desde fuera. Vamos, que el ordenador del hosting debería ver al nuestro. He hecho un telnet para comprobar que funcionase, he conectado con el programa netbeans a la base de datos también sin problemas.

Pero a la hora de instalar moodle, me da un error:

Error:La conexión con la base de datos falló

Es posible que la base de datos esté sobrecargada o no funcione correctamente.

El administrador del sitio debe comprobar que los detalles de la base de datos han sido correctamente especificados en config.php

{$a}
Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on '85.152.18.193' (111) in /var/www/mavint.es/datos/web/miscursos/lib/dml/mysqli_native_moodle_database.php on line 76

En esa línea de ese archivo se crea una conexión con mysqli, así que he probado a hacerla a pelo en un index.php y conecta. Pero el moodle es cabezón, y no quiere. Creo que tiene algo que ver con que el hosting alquilado donde está moodle es un linux, y se conecta ala base de datos de otra manera, pero obviamente en esa máquina no puedo configurar nada porque no es mía.

Muchas gracias, pensaré en un plan B por si al final fuera imposible hacer la conexión.