Después de instalar la última versión publicada de OJS, la 2.4.7, me disponía a explicar cómo configurar el sitio. Pero, para mi sorpresa, descubro que por el camino han publicado una nueva versión, la 2.4.7.1. Así que, antes de meterme en profundidad con la configuración, procederé a explicar cómo se hace la actualización de la 2.x a otra superior.
Si vas a instalar OJS se cero lo mejor es instalar la última versión (algo evidente). Pero si te ha sucedido como a mí, que ya tenía una versión instalada en un servidor local, lo mejor es hacer lo siguiente:
Lo primero es bajarse la versión más moderna y descomprimirla en cualquier carpeta del ordenador.
A continuación es muy recomendable realizar una copia de seguridad del fichero config.inc.php que se encuentra en la versión antigua, la que está en el servidor. Recordaré que se trata del fichero donde se encuentra la configuración del sistema: base de datos, servidor smtp del correo…
En la siguiente fase deberías borrar casi todas las carpetas y ficheros que se encuentren dentro del directorio OJS de tu servidor (es decir, con la versión antigua). Deberías tener en cuenta varias consideraciones, antes de ponerte a eliminar como un loco:
- Esto se hace con el servidor web y el de MySQL apagados. Algo obvio, pero nunca viene mal recordarlo.
- Si da un poco de pánico eso de eliminar, lo ideal es moverlos a otra ubicación, a modo de copia de seguridad. Si este proceso falla por algún motivo, sólo tienes que volver a recuperar todos esos ficheros y carpetas a su ubicación original y el sitio volverá a funcionar como al principio.
- No elimines la carpeta public. Y otra cosa: si has cometido el error de dejar ahí dentro el directorio files (recuerda que en la instalación que hicimos antes recomendamos que ese directorio estuviera fuera del servidor, lo que significa que ahora no deberías verlo dentro de la carpeta OJS), tampoco deberías moverlo.
- Si la instalación la has realizado en raíz, y OJS es el software por defecto en tu servidor web, deberías mantener también el fichero robots.txt, favicon.ico y, si tienes, los ficheros sitemap.xml y .htaccess.
Ya solo tienes que copiar el contenido de la versión nueva en la antigua. Te preguntará si quieres sobreescribir la carpeta public, le dices que no. Te preguntará si quieres sobreescribir el fichero config.inc.php, le dices que sí. De no ser así OJS seguirá pensando que está trabajando con la versión antigua. Como previamente hemos hecho una copia de seguridad de este fichero con los parámetros que nos interesan, no hay problema.
Ahora tendrás que editar el fichero config.inc.php nuevo y ponerle los datos de la versión antigua:
- deja installed = Off
- Actualizar los datos de configuración de la base de datos
- En la sección de internacionalización (i18n) especificar:
- locale = es_ES
- client_charset = utf-8
- connection_charset = utf-8
- database_charset = utf-8
- charset_normalization = utf-8
- En la sección “File settings” escribir la ruta donde estará el directorio Files:
- Por ejemplo, en Windows: files_dir = «C:/Ampps/OJSfiles»
- Actualizar todos aquellos campos que se hubieran modificado en la versión antigua, como el servidor de correo, caché…
Para terminar, habrá que actualizar la base de datos. Eso se hace entrando en el navegador en OJS. Aparecerá la pantalla de instalación. Debemos seleccionar la opción actualizar (Upgrade).
Este proceso suele tardar bastante así que, a lo mejor, será necesario ampliar la directiva de máximo tiempo de ejecución de PHP en el php.ini.
Ya sólo queda ir de nuevo a config.inc.php y cambiar installed = Off por installed = On.
Si queremos asegurarnos de que trabajamos con la última versión, accedemos a acerca de -> acerca de este sistema de publicación y aparecerá este dato.
A ver si ahora me dejan que explique cómo se configura 😉
Juan dice
Excelente post. Se agradece la claridad con la que lo explicas.
Sólo tengo una duda, a ver si me la puedes aclarar. Estoy actualizando un OJS 2.2.1 a una 2.4.7-1. Comentas en el post que antes de «ponerte a eliminar como un loco» hay que apagar el servidor web y el de MySQL. Estoy trabajando sobre el propio proveedor de hosting donde éste tiene otras webs, además de mi OJS. Entiendo que si paro los servidores Web y MySQL esto afectaría al resto de servicios de otros clientes que tiene el proveedor (aparte de que no veo la forma de pararlos). ¿Es así? Si sí, ¿Es muy grave si procedo sin apagar los servidores?
Gracias de antemano y disculpa mi atrevimiento, pues veo que te dedicas a la docencia e investigación y no a la resolución de dudas sobre OJS al público. :[]
Saludos,
Juan
Jose A. Senso dice
Hola Juan.
Contaba eso de parar los servidores porque daba por hecho que se trabajaba en un servidor propio, o en una solución Xamp. Evidentemente, si estás en un hosting no puedes hacer eso. Pero sí te recomiendo que hagas lo siguiente: poner el servidor en «modo mantenimiento». Muchos hostings tienen esa opción (se activa en el panel del hosting). Con eso lo que consigues es que nadie se conecte al servidor mientras estás trasteando y, de esa forma, no se generan movimientos «externos» en la base de datos. Así tienes el servidor completamente bajo tu control, y la posibilidad de un error es menor.
También te recomiendo, con es normal, que antes de proceder hagas una copia de seguridad tanto de tus ficheros y directorios de OJS como de la base de datos. Si algo fallara durante el proceso de instalación siempre podrás volver como estabas.
No hay nada que disculpar 😉
un saludo,
jose.
Claudia dice
Hola Jose, Excelente todo, pero trato de recrear paso a paso lo que explicas y justo cuando voy a actualizar la base de datos se me queda en blanco la pagina, sabes por que pasa esto?
Jose A. Senso dice
Hola claudia.
A OJS le suele suceder eso. El problema reside en que se está haciendo una petición que supera, en tiempo, el límite establecido en PHP. En la mayoría de hosting el tiempo establecido es de 30 segundos. Si el script que estás ejecutando tarda más de ese tiempo se pierde la conexión con la base de datos y, por lo tanto, OJS responde con una página en blanco. Esto no sólo sucede en la actualización. Por ejemplo, se da con bastante frecuencia cuando intentas instalar módulos nuevos.
Para solucionarlo debes acudir al fichero de configuración php.ini y, en la directiva max_execution_time, poner un valor mayor. Por ejemplo max_execution_time = 120. Con esto tendrás 2 minutos de espera, que es más que suficiente para que se pueda llevar a cabo la actualización.
Espero que con esto se resuelva tu problema.
un saludo.