Página 1 de 2

Error de actualización

Publicado: 06 Nov 2019, 12:03
por Juan Manuel SUBM

Hola, amigos.

No sabía muy bien dónde ubicar esta consulta, así que espero haber acertado dejándola aquí. Si no es así, mis disculpas por adelantado.

Tengo un viejo foro phpBB3.0.14 ubicado en www.iberismo.org que corría bien bajo php 5.6 pero mi hosting me incrementa la tarifa por mantener esta versión obsoleta, por lo que estoy obligado a actualizarla a php 7.2

Y ahí viene el problema. Me genera errores como si los 3.0.x no fueran compatibles para estas últimas versiones de php.

El error que se repite es este:
(podéis comprobarlo accediendo al sitio)

Spoiler
Mostrar

[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 548: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

A ver qué podría hacer.
Muchas gracias.
JuanMa


Error de actualización

Publicado: 06 Nov 2019, 17:57
por ThE KuKa

Hola,

Lo he movido, el foro de Guías era el menos "acorde" a la duda.

El error es eso simplemente, phpBB 3.0.x no es compatible con PHP 7.2.x

Deberías pensar en actualizar a phpBB 3.2.x lo antes posible.

Saludos.


Error de actualización

Publicado: 06 Nov 2019, 20:16
por AbaddonOrmuz

La opción más sencilla sería actualizar a la última versión de phpBB (3.2.8 al día de hoy) como comenta @ThE KuKa, ya que es compatible hasta con PHP 7.2, phpBB 3.3.x me parece que será compatible desde PHP 7.1 hasta 7.4

Otra opción, si estas familiarizado con PHP es, como la advertencia lo dice, cambiar preg_replace() con el modificador /e con preg_replace_callback(), por ejemplo:

Código obsoleto:

Código: Seleccionar todo

$tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);

Usando preg_replace_callback():

Código: Seleccionar todo

$tpl = preg_replace_callback('#{L_([A-Z0-9_]+)}#', function($matches) {
	if (!empty($user->lang[$matches[1])))
	{
		return $user->lang[$matches[1]]
	}
						   
	return ucwords(strtolower(
		str_replace('_', ' ', $matches[1])
	));
}, $tpl);

Error de actualización

Publicado: 06 Nov 2019, 21:19
por ThE KuKa

Cabe recalcar que intentaremos ayudarte, pero el soporte a phpBB 3.0 esta cerrado hace meses, reitero que intentaremos ayudarte, pero para actualizar a versiones estables como 3.2 no en versiones que están en EOL (End Of Life) sin soporte oficial.

Saludos.


Error de actualización

Publicado: 07 Nov 2019, 13:03
por Juan Manuel SUBM

Sé que os extralimitáis ayudándome y lo agradezco mucho.

Hace ya bastante tiempo que intenté actualizar a 3.1 pero soy rehén de unas cuantas modificaciones de las antiguas versiones 3.0.x y ahora cualquiera las desinstala ... Imposible !!! Ojalá pudiera hacerlo.

Tengo que intentar hacer compatible con php 7 mi viejo foro 3.0.14
He estado currándomelo un poco y la cosa ha mejorado. He filtrado algunos errores de código siguiendo vuestros consejos, pero se me resiste uno en la línea 128 del fichero bbcode.php. He probado a comentarlo y el error desaparece completamente, pero se desconfiguran los contenidos del foro apareciendo incrustaciones de los BBcode.

El código defectuoso es este:

Código: Seleccionar todo

$message = preg_replace($preg['search'], $preg['replace'], $message);

Esta sintaxis de código es distinta a las que he podido corregir con vuestra ayuda. El error hace alusión al modificador obsoleto /e que no aparece en el fragmento de código.

¿Qué puedo hacer?
Y mil gracias.


Error de actualización

Publicado: 07 Nov 2019, 20:45
por AbaddonOrmuz

Intenta actualizar de nuevo, hay herramientas que te ayudan a eliminar los cambios de MODs en la base de datos, como es el caso de STK:

https://www.phpbb.com/customise/db/official_tool/stk/

Esa la ejecutas antes de actualizar, luego ya podrás pasar a 3.2.x usando el paquete completo.

https://www.phpbb.com/support/docs/en/3 ... /upgrade3/

Por otra parte, no hace falta remplazar todos los preg_replace(), es una función actualmente en uso, sólo las que tengan el modificador /e. Si lo comenté fue para que te dieras una idea de lo laborioso que será el proceso de solo intentar corregir los errores.

Si decides tomar esta segunda ruta, me temo que aquí no se te podrá ayudar por lo que comenta @ThE KuKa más arriba.


Error de actualización

Publicado: 08 Nov 2019, 10:16
por Juan Manuel SUBM

Gracias por tus consejos, AbaddonOrmuz.

¿Pero realmente esa herramienta (STK) conseguirá eliminar todos los cambios introducidos por las 5 MOD's que instalé en su día?
Recuerdo que para instalar cada una de ellas se requería un largo proceso, incorporando cantidad de parches en muy distintos archivos del sistema. ¿Y ofrece STK garantías de que el foro siga funcionando tras ejecutarla? No sé; discúlpame. Soy un poco escéptico al respecto.

En cuanto a la opción de depurar el código para hacerlo compatible con php actualizado, lo entiendo y doy por perdida.


Error de actualización

Publicado: 08 Nov 2019, 19:25
por J_Sparrow

Hola @Juan Manuel SUBM , a ver si me aclaro, porque me estoy haciendo un verdadero lio.

  • Tienes un Foro 3.0.x, al que NO se le da soporte, pero estamos haciendo una excepción, hasta que :jefe: se canse y nos corte la comunicación.

  • Te da miedo a actualizar a 3.2.x, porque ...

    Juan Manuel SUBM escribió:
    07 Nov 2019, 13:03

    soy rehén de unas cuantas modificaciones de las antiguas versiones 3.0.x y ahora cualquiera las desinstala ... Imposible !!!

  • Por lo que luego he entendido, no te preocupa el perder la "utilidad" de esas modificaciones, vamos, que no te preocupa que dejen de hacer lo que hacen.

Si esto es correcto, ¿cual es tu problema?.
Te explico: actualizar de una versión 3.0.x a una 3.1.x o 3.2.x es como BORRAR todos los archivos de tu antiguo Foro, vamos, que NO sirven NINGÚN archivo, carpeta, modificación, etc. Si has leído la guía de actualización, te dice (resumidamente), que hagas una copia de tu Base de Datos, la subas a tu servidor (la exportes), borres todo el contenido de tu servidor, la carpeta donde está tu Foso, subas por FTP a tu servidor la versión que vas a instalar y procedas a instalar esa versión, usando los datos de tu Base de Datos. Cuando termines tendrás todos tus mensajes intactos, alguno puede que si debido a los cambios que pudieran tener por el uso de tus MOD.
OJO, te he resumido de memoria, consúltalo antes de hacer nada y mas si es la primera vez que lo vas ha hacer.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Puedes tener algunos pequeños errores (a todos nos ha pasado), pero son "corregibles". Ojo, puede que la presentación cambie con respecto a lo que tienes ahora.

Borra de tu cabeza lo de seguir con 3.0.x, XXXXXXXXXXXXXXXXXXXXXXXXXXXX y busca información en este Foro de como actualizar de una versión a otra.
Además, en el momento que te actualices, ya estás habilitado para pedir soporte, :jefe: ya no nos cortará la comunicación.


Error de actualización

Publicado: 08 Nov 2019, 20:00
por AbaddonOrmuz
Juan Manuel SUBM escribió:
08 Nov 2019, 10:16

¿Pero realmente esa herramienta (STK) conseguirá eliminar todos los cambios introducidos por las 5 MOD's que instalé en su día?

No puedo asegurarte si los eliminará todos, pero en las actualizaciones que hecho para clientes nunca he tenido problemas de MODs restantes.

Pero aclaro que la utilidad del STK realmente es para la base de datos (database cleaner), lo realmente importante.

Me parece que toma como referencia las tablas, columnas, índices, etc. presentes a una instalación limpia y los compara con tu base de datos, las diferencias las corrige ya sea que te sobre o falte algo.

En cuanto a eliminar los MODs de los archivos PHP, es extremadamente sencillo, el propio proceso te pide eliminar todo a excepción del archivo config.php y algunos directorios importantes, para cuando lo hayas hecho ya habrás eliminado los MODs, porque ese archivo lo habrás remplazado por uno limpio, como lo menciona @J_Sparrow

Juan Manuel SUBM escribió:
08 Nov 2019, 10:16

¿Y ofrece STK garantías de que el foro siga funcionando tras ejecutarla?

No podría asegurar nada, porque ni el propio phpBB te asegura nada al actualizar. El STK oficial fue desarrollado por el equipo de phpBB, porque hay una versión para 3.2.x que no es oficial.

Puedes hacer el proceso en servidor local y probar ahí la actualización.

Tal vez sea un proceso estresante y largo, pero si lo logras posteriores actualizaciones serán mucho más sencillas, por ejemplo de 3.2.8 a 3.2.9.


Error de actualización

Publicado: 08 Nov 2019, 20:24
por J_Sparrow

Primero disculpar mi comentario sobre el STK. @AbaddonOrmuz tiene mil veces mas conocimiento y experiencia que yo. Yo simplemente he hablado desde mi mala experiencia de STK, porque me causó muchos errores, mas de los que tenía. Y estoy seguro que fue por mal uso e inexperiencia, pero a mi no me sirvió de nada. ¿Que las actualizaciones que ha hecho @AbaddonOrmuz a sus clientes, no le han dado problema?, pues estoy convencido de que si, el sabe mas que yo. Insisto, a mi solo me dio problemas.

AbaddonOrmuz escribió:
08 Nov 2019, 20:00

Pero aclaro que la utilidad del STK realmente es para la base de datos (database cleaner), lo realmente importante.

Aquí coincido con el compañero, pero asegúrate de tener una copia de la Base de Datos, por lo que pueda pasar.

Mis disculpas @AbaddonOrmuz por mi comentario erróneo.


Error de actualización

Publicado: 08 Nov 2019, 20:35
por ThE KuKa

No voy a cortar comunicación, solo "apunto" que damos soporte para actualizar... seguir con 3.0.x hoy día, es mala idea.

:wink:


Error de actualización

Publicado: 09 Nov 2019, 22:45
por AbaddonOrmuz

Nada que disculpar, porque es cierto lo que comentas, donde algo salga mal terminas con un sitio inaccesible y hasta con tablas corruptas.

Hay que tener cuidado con el STK y si se tiene dudas en algo, mejor saltarse algún paso de la herramienta para limpiar la base de datos.


Error de actualización

Publicado: 12 Nov 2019, 10:33
por Juan Manuel SUBM

Gracias por vuestras respuestas.
Seguiré vuestros consejos y a ver si todo va bien.

La verdad es que salvo el portal, que estaba bastante personalizado, lo único que me importa de esas Mod's es que desaparezcan. Maldito el día que se me ocurrió instalarlas ...

Si he entendido bien, voy a proceder como sigue:

1.- Copia de seguridad de la BdD actual (por si algo va mal)
2.- Ejecutar el STK para borrar las viejas MOD's.
3.- Actualizar de 3.0.x a 3.2

Tocaré madera.
Os cuento.
Gracias,


Error de actualización

Publicado: 12 Nov 2019, 13:15
por Juan Manuel SUBM

Pues ya he probado con STK y no consigo nada.
Al ejecutar la herramienta Database Cleaner me sale el siguiente error:

Parse error: syntax error, unexpected 'new' (T_NEW) in /homepages/45/d430510551/htdocs/phpBB3/includes/captcha/plugins/phpbb_captcha_qa_plugin.php on line 104

Supongo que esta herramienta será la principal que debo ejecutar de todo el paquete.
¿Qué me decís?
Gracias,


Error de actualización

Publicado: 12 Nov 2019, 17:51
por andares

Procede con la siguiente modificación:

Abrir archivo includes/captca/plugins/phpbb_captcha_qa_plugin.php

BUSCAR: (línea 104)

Código: Seleccionar todo

$instance =& new phpbb_captcha_qa();

REEMPLAZAR POR:

Código: Seleccionar todo

$instance = new phpbb_captcha_qa();

Vuelve a ejecutar la herramienta Database Cleaner.