En esta ocasión vamos a documentar la solución a un problema que he tenido al migrar la instalación de moodle de un servidor compartido de 1and1 a un servidor dedicado del mismo hosting.
Realizadas y descargadas la copia de la carpeta donde está instalado moodle, la carpeta moodledata y la base de datos las volvemos a subir al nuevo servidor, cambiamos en el config.php los datos de la nueva base de datos y al intentar entrar en la plataforma nos da un error de conexión con la base de datos.
He pensado que quizá el error proceda con la migración y he intentado hacer una instalación limpia de moodle 2.5.3 con una base de datos nueva y me da el mismo error.
Hablé con el servicio técnico de 1and1, y sinceramente en esta ocasión, después de hacer varias llamadas di con dos técnicos que supieron arreglar el problema.
Lo que me dijeron es moodle no soporta el nombre completo del servidor de base de datos. El servidor de la base de datos es localhost:/tmp/mysql5.sock
La solución es la siguiente:
- Crear un archivo php.ini con las siguientes instrucciones:
mysql.default_port = 3306
my sql.default_socket = /tmp/mysql5.sock
mysqli.default_port = 3306
my sqli.default_socket = /tmp/mysql5.sock
- Colocar este archivo en la raíz de moodle mediante ftp.
- Hacemos un enlace simbólico de este archivo a todos los directorios de la instalación de moodle, para ello nos conectamos al servidor mediante ssh y nos situamos en el directorio donde subimos el archivo php.ini e insertamos el siguiente código
find -type d -exec ln -s $PWD/php.ini {}/php.ini \;
Hecho todo esto moodle ha funcionado perfectamente. Ahora bien hay que tener en cuenta que cuando se instale una extensión que cree algún directorio nuevo tendremos que volver a conectarnos por ssh y ejecutar el comando anterior si los archivos de esos nuevos directorios deben conectarse a la base de datos, si no no os funcionará.
Espero que os pueda ser útil.
No hay comentarios:
Publicar un comentario