Crear una copia del proyecto
Para realizar una actualización en su sitio web, siempre debe crear previamente una copia del proyecto y realizar la actualización en la copia. Mientras tanto, el sitio web original puede seguir siendo accesible bajo el dominio oficial. Sin embargo, antes de crear la copia, debe comprobar cuánto espacio de almacenamiento tiene la cuenta correspondiente para que el espacio de almacenamiento no esté completamente ocupado cuando se cree la copia. En caso necesario, el espacio de almacenamiento puede ampliarse temporalmente.
Estas instrucciones presuponen que dispone de acceso SSH al sitio web y que está familiarizado con los conceptos básicos del trabajo en la línea de comandos.
Para copiar el proyecto es necesario seguir los siguientes pasos:
- Crear una copia de la base de datos
- Crear una copia del directorio del proyecto y conectarlo a la base de datos copiada
- Crear un dominio de desarrollo y apuntarlo al directorio copiado
Crear una copia de la base de datos
En el servidor en nube:
- Seleccione la opción "Bases de datos" en el menú de cliente de Plesk, busque la base de datos utilizada en la lista y haga clic en el botón "Copiar".
- Asigne un nombre a la base de datos.
- En el caso del alojamiento en la nube, deberá crearse un usuario para la base de datos.
- Anote el nombre de la base de datos, el nombre de usuario, la contraseña y el host.
Nota: el nombre de usuario de la base de datos en Plesk no debe tener más de 16 caracteres en total. Plesk ya especifica 6 caracteres.
En el Servidor Clásico:
Aquí no puede copiar bases de datos directamente, debe crear una base de datos nueva y vacía y, a continuación, importar un volcado de la base de datos activa.
En el menú de cliente, vaya a la opción de menú "Bases de datos MySQL" y haga clic en el botón "Nueva base de datos" en la parte inferior izquierda. Crea una nueva base de datos y anota el nombre de la base de datos, el nombre de usuario, la contraseña y el host.
Ahora tienes que crear un volcado de la base de datos en vivo (que tu proyecto está utilizando actualmente) e importarlo a la base de datos recién creada. La forma más sencilla de hacerlo es a través de la línea de comandos. Inicie sesión en el servidor a través de SSH, cambie al directorio typo3cms/system/backup/databases y visualice el contenido. Descomprime el último volcado de la base de datos requerida con el comando
gzip -d <nombredearchivo>
Si no hay ningún volcado disponible, cree uno con el comando
mysqldump --opt --no-tablespaces -h <host> -u <username> -p <database-name> > my-database-dump.sql
y luego importarlo con
mysql -h <host> -u <username> -p <database-name> < my-database-dump.sql
y luego introduzca la contraseña en la base de datos recién creada.
A partir de TYPO3 11 la base de datos debe cambiarse a MariaDB, al menos MariaDB 10.4.
¿Cómo puedo saber qué base de datos estoy utilizando?
En el backend de TYPO3, seleccione el módulo Admin Tools > Environment y haga clic en "Show System Information" en el cuadro "Environment Overview". A continuación, verá información sobre la conexión de base de datos y la versión de PHP utilizada.
Crear una copia del directorio del proyecto
Inicie sesión en el servidor a través de SSH y cambie al directorio typo3cms/ donde se encuentra el directorio de su proyecto. A continuación, ejecute el comando
cp -r <nombre del directorio> <copia del directorio del proyecto>
para copiar el directorio del proyecto. Ahora vaya al directorio typo3cms/<project-directory-copy>/typo3conf en su copia y abra el archivo LocalConfiguration.php, o desde la versión 12 de TYPO3 system/settings.php para editarlo. Personalice la información de la base de datos introduciendo los datos de acceso de su copia de la base de datos.
Crear un dominio de desarrollo
En el servidor cloud:
Haga clic en el botón "Añadir subdominio" en el menú de cliente de Plesk y cree un subdominio a partir de su dominio activo, por ejemplo, a partir del dominio "mi-sitio-web.com" el subdominio "v12.mi-sitio-web.com" (si la versión de destino debe ser TYPO3 v12). En el campo "Document root", introduzca la ruta de acceso al directorio de su proyecto copiado, empezando por el directorio"httpdocs/", por ejemplo"httpdocs/typo3cms/project-directory-copy". Una vez creado el dominio, cambie a la pestaña "Hosting y DNS" y haga clic en la opción de menú "Hosting". Allí puede (si es necesario) establecer la versión correcta de PHP para la versión de TYPO3 que su copia tiene actualmente y también ajustarla más tarde después de los pasos de actualización. También puede cambiar la ruta del directorio aquí en una fecha posterior. Una vez que haya cerrado de nuevo el cuadro de diálogo "Hosting", puede emitir un certificado SSL para el subdominio recién creado en la pestaña "Dashboard".
En el servidor clásico:
Aquí debe averiguar de antemano qué versión de PHP se requiere para la versión de TYPO3 a la que desea actualizar. En el Servidor Clásico, los subdominios heredan la versión PHP del dominio padre, no se les puede asignar una propia. Así que si usted no tiene un dominio en su paquete que se puede establecer en la versión de PHP que su versión de destino TYPO3 requiere, usted tendrá que pedir un nuevo dominio para el período de actualización. Sin embargo, si usted tiene un dominio adecuado, puede proceder de la siguiente manera:
Haga clic en la opción de menú "Gestión de dominios" y, a continuación, en el icono de rueda dentada situado a la derecha del dominio que desea utilizar para la actualización. En el menú que se abre, seleccione "Añadir subdominio" (si el dominio no es necesario actualmente, también puede utilizarlo directamente como dominio de desarrollo y no necesita crear un subdominio). A continuación, cree un subdominio con el formato "v12.mi-sitio-web.com" e introduzca como ruta la ruta de su directorio de proyecto copiado, empezando por el directorio"/typo3cms/", por ejemplo"/typo3cms/directorio-de-proyecto-copiado".
También puedes ajustar la versión de PHP para un dominio de nivel superior haciendo clic en el símbolo de la rueda dentada de la derecha, en la opción de menú "Abrir" y, a continuación, en la pestaña "Configuración".
Ahora debería poder llamar al dominio recién creado en el navegador e iniciar sesión con "/typo3" añadido al dominio.
Asegúrese de que está realmente en la copia y no en la instalación en vivo antes de realizar cualquier cambio. Por ejemplo, haga un pequeño cambio de texto en una página y asegúrese de que este cambio SOLO aparece en el dominio de la copia y no en el sitio en vivo.
A continuación, compruebe la URL introducida en el backend, dependiendo de la versión de TYPO3, en el módulo "Site Management">"Sites" o en TypoScript en "config.baseURL" y adáptela a su dominio de desarrollo. Compruebe también la(s) página(s) raíz(es) en busca de posibles registros de datos de dominio que deban modificarse o desactivarse.
Activar la depuración
Pueden producirse errores extraños en cualquier momento y, si las cosas van mal, hacer que el backend sea inaccesible desde el principio. Para obtener al menos alguna información sobre la solución de problemas, es mejor activar primero la depuración:
Vaya al módulo "Herramientas de administración">"Configuración" y seleccione "Preajustes de configuración". En "Ajustes de depuración" puedes cambiar la configuración de "En vivo" a "Depuración".
Personalizar el archivo robots.txt
Para evitar que la copia del sitio web sea escaneada por robots durante la actualización y aparezca en los resultados de los motores de búsqueda, debe almacenarse la instrucción correspondiente. Puede hacerlo a través de TypoScript
page.meta.robots = noindex, nofollow
page.meta.robots.replace = 1
o bien, si ya existe un archivo "robots.txt", introduzca allí lo siguiente:
User-agent: *
Disallow: /
Preparar la lista de extensiones
Vaya al módulo "Extensiones" del backend y seleccione "Obtener extensiones" en el menú de la parte superior izquierda. A continuación, haga clic en el botón "Actualizar ahora" a la derecha. Se cargará una lista actualizada de todas las extensiones disponibles en el TYPO3 Extension Repository (TER). (Si la tarea del programador "Actualizar lista de extensiones (extensionmanager)" está activa en su sitio web, este proceso de actualización se llevará a cabo automáticamente en el intervalo definido).
Si ahora vuelve a "Extensiones instaladas" en el menú superior izquierdo, verá un icono de actualización a la izquierda de cada extensión instalada, siempre que exista una versión más actualizada. Actualice cada extensión a la versión más alta posible que se ofrezca.
Si aparece un mensaje de error después de actualizar una extensión y ya no es posible acceder a la lista de extensiones, también puede desactivar la extensión en cuestión a través de la línea de comandos. Para ello, vaya al directorio typo3conf, abra el archivo "PackageStates.php" para editarlo y elimine la sección que pertenece a la extensión en cuestión. A continuación, elimine la caché borrando el directorio typo3temp/var. Ahora se debería poder acceder de nuevo al backend o a la lista de extensiones. La extensión desactivada también puede permanecer en este estado por el momento; es posible que pueda reactivarla sin problemas tras un paso de versión.
Si hay extensiones en la lista que no son compatibles con la próxima versión principal de TYPO3, desactívelas. Desactive también todas las extensiones individuales y paquetes de sitio que no estén disponibles en el TER, ya que lo más probable es que tengan que ser revisados después del siguiente paso de versión principal.
Comprobar el asistente de actualización
Una vez actualizadas las extensiones, es posible que haya nuevos asistentes de actualización que deban ejecutarse. Por lo tanto, vaya al módulo "Herramientas de administración" > "Actualización" y haga clic en "Ejecutar asistente de actualización". Los asistentes que siguen abiertos aparecen ahora en una lista con una breve descripción. Ejecute todos los asistentes. Si se le pregunta si realmente desea ejecutar este asistente y no está seguro, seleccione previamente "no, no ejecutar" y haga clic en "Ejecutar actualizaciones". El asistente no se ejecutará, pero se marcará como "completado".
Limpieza de tablas y actualización del índice de la base de datos
Una vez ejecutados los asistentes de actualización: En el módulo backend "Herramientas de administración">"Mantenimiento", en "Analizar la estructura de la base de datos", todas las tablas y campos de la base de datos deben estar actualizados y deben eliminarse los que ya no sean necesarios.
El índice debe actualizarse en el módulo backend "Sistema">"Comprobación de BD" en "Gestionar índice de referencia".
Llevar a cabo la actualización
Una vez completados todos los pasos anteriores, puede comenzar la actualización propiamente dicha.
Realice siempre la actualización de versión principal a versión principal, por ejemplo de la versión 9.x.xx a la 10.x.xx a la 11.x.xx a la 12.x.xx y así sucesivamente, ya que de lo contrario se producirán problemas con la base de datos muy pronto.
Como resultado de este procedimiento, tendrá que realizar la sección "Actualización a una versión intermedia o a la versión de destino" con más frecuencia (si hay más de un paso de versión). Sin embargo, como el procedimiento es siempre el mismo, sólo lo hemos enumerado una vez.
- Actualización a una versión intermedia o a la versión de destino
- Personalizar el paquete del sitio
Actualizar a una versión intermedia o a la versión de destino
Para actualizar, debe iniciar sesión en el servidor de nuevo a través de la línea de comandos. Busque en el directorio typo3cms para ver si ya existe un directorio o un archivo .tar.gz con la versión de TYPO3 que necesita. El nombre debería ser: typo3_src-x.x.xx, o typo3_src-x.x.xx.tar.gz.
Si la versión aún no está disponible, puede descargarla en el directorio con
wget --content-disposition https://get.typo3.org/x.x.x
A continuación, debe descomprimir el archivo descargado con
tar -zxvf typo3_src-x.x.xx.tar.gz
Ahora cambie al directorio de su proyecto y adapte el enlace simbólico typo3_src existente o bórrelo y cree uno con el mismo nombre con el nuevo directorio typo3_src-x.x.xx como destino:
rm typo3_src
ln -s ../typo3_src-x.x.xx typo3_src
A continuación, elimine la caché borrando el directorio typo3temp/var.
A continuación, acceda directamente a la herramienta de instalación con la URL v12.meine-website.de/typo3/install.php y siga los siguientes puntos en este orden:
- Ejecute los asistentes de actualización.
- Borre la caché de TYPO3 y PHP (en el módulo backend "Maintanance" > "Flush TYPO3 and PHP Cache").
- Ejecute Analizar la estructura de la base de datos. Asegúrese de añadir y modificar todas las tablas y campos nuevos, pero no elimine ninguna tabla ni campo. Recuerde que ha desactivado temporalmente extensiones que pueden necesitar estas tablas de nuevo más tarde cuando se activen.
- Conéctese ahora al backend y compruebe si aparece algún mensaje de error, por ejemplo, al consultar la lista de extensiones.
- Actualice las extensiones (incluidas las desactivadas) a la versión más alta posible para esta versión de TYPO3. Siempre tenga en cuenta hasta qué versión de TYPO3 la extensión respectiva sigue siendo compatible. Si ya no existe una versión funcional de esta extensión para la versión de TYPO3 a la que desea actualizar en el siguiente paso, desactívela.
- Compruebe si se han añadido nuevos asistentes de actualización después de actualizar las extensiones.
- No se desanime si los plugins o elementos de contenido no se pueden encontrar debido a extensiones desactivadas o paquetes de sitio o si aparece un mensaje de error en el frontend. Puede ocuparse de ello una vez alcanzada la versión de destino.
Repita el paso "Actualizar a una versión intermedia o a la versión de destino" hasta que haya alcanzado la versión de destino. En cada paso, asegúrese de que la versión de TYPO3 que acaba de alcanzar sigue funcionando con la versión PHP de su dominio y ajústela si es necesario.
Personalizar el paquete del sitio
Aquí es donde se vuelve muy individual, ya que depende de lo que el inicio y la versión de destino de TYPO3 es y donde su paquete de sitio se encuentra actualmente o si hay uno en absoluto. Así que aquí están algunas informaciones básicas y consejos sobre cómo proceder:
- Si el paquete de sitio o plantilla de diseño se encuentra en un directorio por debajo de fileadmin, debe moverlo al directorio typo3conf/ext a partir de la versión 11 de TYPO3 como muy tarde. Puede encontrar información sobre cómo crear un paquete de sitio para TYPO3 en este directorio y luego instalarlo como una extensión en la lista de extensiones en https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/.
- Para adaptar un paquete de sitio existente a la nueva versión de TYPO3, siga también el tutorial mencionado anteriormente y compruebe los archivos
- composer.json
- ext_emconf.php
- ext_localconf.php
- ext_tables.php
- Configuración/TCA/Overrides/sys_template.php
- Configuración/TCA/Overrides/pages.php
- Configuración/TCA/Overrides/tt_content.php
- y otros archivos PHP
- Compruebe si las condiciones TypoScript utilizadas siguen funcionando. A partir de TYPO3 9.4, la sintaxis de las condiciones se basa en el Lenguaje de Expresión Symfony, por lo que la sintaxis antigua tiene que ser reescrita en la nueva sintaxis en muchos lugares. Los problemas con las condiciones pueden reconocerse por una entrada correspondiente en el archivo de registro (directorio typo3temp/var/log).
- Los ViewHelpers utilizados en el Paquete de Sitio también tienen que ser adaptados o reemplazados después de una actualización porque ya no existen en la nueva versión. Puede reconocerlo por el correspondiente mensaje de error en el frontend.
Si ha adaptado completamente el paquete de sitio (u otras extensiones individuales) a la nueva versión de TYPO3, puede reactivarlo, comprobar si todo funciona y realizar más ajustes si es necesario.
Las extensiones del TER que se desactivaron durante el proceso de actualización ahora también se pueden reactivar.
Tanto el backend como el frontend deberían volver a funcionar sin problemas.
Errores típicos tras una actualización
Si aparecen mensajes de error en el backend o en el frontend, examínelos detenidamente. Aunque a primera vista parezcan crípticos, es posible que pueda encontrar pistas sobre la causa del problema. Por ejemplo, ¿se indican rutas a un archivo del paquete del sitio o a una extensión utilizada? Si es así, tal vez pueda rectificar el error en este archivo o desactivar la extensión en cuestión. ¿Parece el mensaje una sentencia SQL? Entonces puede que tenga que volver a ejecutar Analizar la estructura de la base de datos.
Los mensajes de error también se escriben con gran detalle en los archivos del directorio typo3temp/var/log o se listan en el módulo backend "Log".
Después de cada paso de versión, puede haber mensajes de error típicos o problemas relacionados con los cambios específicamente en esta versión de TYPO3 o las extensiones utilizadas. Aquí puede ver una lista de los problemas más comunes y cómo solucionarlos.
Las imágenes aparecen demasiado oscuras tras la actualización
En el archivo LocalConfiguration.php o settings.php o en el InstallTool en "GFX", ajuste el valor para 'processor_colorspace' como sigue:
processor_colorspace' => 'sRGB'
Luego vacíe los directorios en el InstallTool bajo "Maintanance > Remove Temporary Assets" de donde provienen las imágenes que son demasiado oscuras.
TYPO3 v11
- Cambiar la versión de PHP a >= 7.4
- Adapte el archivo .htaccess, por ejemplo, utilice el archivo de ejemplo de TYPO3 11 Core: typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess
- Cambie el nombre de la extensión de los archivos Typoscript y TSConfig de .txt a .typoscript y .tsconfig respectivamente.
- sustituir la variable $_EXTKEY en los archivos PHP por el nombre del directorio del paquete del sitio (excepto en el archivo "ext_emconf.php")
TYPO3 v9
Migración de css_styled_content a fluid_styled_content
El cambio de css_styled_content a fluid_styled_content es soportado por TYPO3 de la mejor manera posible. Los siguientes pasos deben llevarse a cabo:
- Desactivación de la extensión css_styled_content
- Activación de fluid_styled_content
- Añadir las plantillas estáticas "Elementos de contenido (fluid_styled_content)" y "Elementos de contenido CSS (opcional)(fluid_styled_content)"
- Compruebe en la herramienta de instalación si debe ejecutarse un asistente de actualización.
Atención: fluid_styled_content utiliza otras clases CSS. Puede ser necesario adaptar aquí el CSS del frontend.
Además, algunas opciones de css_styled_content ya no son compatibles. Por ejemplo, los "efectos de imagen" ya no están disponibles. Los nombres de algunos campos de la base de datos también han cambiado. Donde el campo de base de datos "section_frame" -> "frame_class". Esto debe tenerse en cuenta si, por ejemplo, se han realizado ajustes a través de TSConfig.
SEO y URL legibles
Con TYPO3 9 LTS, algunas características se han integrado en el núcleo de TYPO3 que antes tenían que ser adaptadas a través de extensiones adicionales.
Funciones SEO a través de la nueva extensión del sistema "seo
Desde TYPO3 9, las etiquetas meta como "descripción", "palabras clave", "autor", etc. se generan automáticamente en el código fuente HTML si se activa la nueva extensión del sistema "seo". Anteriormente, esto tenía que hacerse manualmente utilizando TypoScript o extensiones adicionales como cs_seo. La creación de un título optimizado para el navegador y el control de las arañas de los motores de búsqueda (metaetiqueta "robots") ahora también es posible directamente.
URL legibles
Por defecto, TYPO3 genera URLs como domain.de/index.php?id=1234. Éstas no son legibles por humanos ni contienen palabras clave importantes para la optimización de motores de búsqueda.
Hasta TYPO3 8 inclusive, las URL legibles debían crearse utilizando extensiones adicionales como realurl o cooluri. Estos ya no son necesarios desde TYPO3 9. TYPO3 puede generar automáticamente URLs legibles para las páginas, por ejemplo, en la forma domain.com/products/product-x/
Sin embargo, la reelaboración manual es necesaria para extensiones como "noticias". En este caso hay que editar el archivo de configuración del sitio. Sin embargo, algunas extensiones ya proporcionan ejemplos de configuración en su documentación.
En la versión 9 de TYPO3, el editor RTE HTMLArea utilizado anteriormente ha sido eliminado y sustituido por el moderno CKEditor. El CKEditor ofrece una mejor interfaz de usuario, se puede configurar de forma más flexible y se basa en los estándares web actuales. El cambio es sencillo en muchos casos, especialmente con configuraciones estándar. Sin embargo, si se han realizado personalizaciones individuales en HTMLArea -por ejemplo, clases de formato personalizadas, botones o preajustes RTE- la migración puede requerir un esfuerzo adicional.
TYPO3 v7
TYPO3 7.6 introdujo nuevos elementos de contenido con fluid_styled_content, que se basan en plantillas fluidas. Aunque css_styled_content sigue estando disponible opcionalmente en TYPO3 8, se eliminará definitivamente en TYPO3 10. El cambio significa que el contenido ya no se emite a través de estructuras HTML estáticas con plantillas Typoscript, sino a través de modernas plantillas fluidas, que son más flexibles, ampliables y fáciles de mantener. Una migración temprana merece la pena, ya que no sólo facilita futuras actualizaciones, sino que también permite el uso de nuevas funciones como datos estructurados, diseños responsivos o etiquetado sin barreras. La migración debe completarse en TYPO3 9 LTS a más tardar, ya que css_styled_content ya no está disponible en TYPO3 10 LTS.
Si utiliza subtítulos y/o marcadores en sus plantillas, éstos deben ser convertidos a plantillas Fluid. Lo mismo se aplica si está utilizando una extensión obsoleta como templavoila, rlmp_tmplselector o automaketemplate para la creación de plantillas.
¡Limpia!
- Actualizar los archivos de idioma (Installtool -> Mantenimiento -> Paquetes de Idioma)
- A partir de PHP 7.4: Cambiar el hash de la contraseña a Argon2id en la herramienta de instalación para los preajustes.
- Eliminar todas las tablas y campos que ya no sean necesarios en Analizar estructura de base de datos
- Eliminar las extensiones que ya no son necesarias de la lista de extensiones
- Establecer presets de Debug a Live
Colocar en línea
Una vez que la actualización se haya completado con éxito y todo funcione según lo deseado, puede ir a su dominio activo en la administración de dominios, apuntar la ruta del archivo al directorio del proyecto copiado (donde se encuentra la actualización del sitio web) y no olvide ajustar la versión PHP del dominio activo a la nueva versión de TYPO3. A continuación, inicie sesión en el backend del sitio web actualizado e introduzca el dominio activo en el campo "Punto de entrada" del módulo "Administración del sitio">"Sitios". A continuación, cambie a la pestaña "Rutas estáticas" y ajuste el robots.txt para que el sitio web pueda ser encontrado por los motores de búsqueda.
El contenido de esta página se ha traducido automáticamente.