Dejame adivinar: php fatal error cannot ´continue´ 2 levels
Y eso que con MySQL 8 la pasión del desastre ¡No termina!
Actualizar tu servidor a PHP 7.4
Así como hace dos años explicaba cómo hacerlo de 7.0 a 7.2 corresponde dar el salto a la última versión de PHP 7.4
Son esos updates que la gente se olvida de hacer porque "si total, anda", pero no, señores, nooo. Las diferencias de seguridad son notables. Además, de paso, mejora bastante la performance así que a continuación doy más razones y los pasos para hacerlo.
Si no tenés acceso a tu propio servidor es momento para que le pidas a tu proveedor la actualización porque toda versión más vieja de 7.3 es un PELIGRO tenerla instalada, no recibe soporte de seguridad.
En el sitio oficial de PHP está el cuadro de versiones soportadas. Los puristas del desarrollo dirán ¿Pero quién cojones programa con PHP? Los pragmáticos le contestarán: idiota, el 70% de los sitios usan PHP, cualquier sitio con Wordpress por ejemplo.
Mi blog no usa Wordpress y tampoco es tan complejo así que las actualizaciones no suelen romper nada pero es el mismo Wordpress el que, hace un tiempo y desde varias versiones, avisa y hasta bloquea actualizaciones si PHP no está en orden.
Empecemos con lo básico, yo posteo esto pensando en un server con Ubuntu como sistema operativo pero puede aplicarse (googleen para su distro en particular) en cualquier otra distribución sin demasiadas diferencias. No copypasteen sin saber qué estan haceiendo, no me hago cargo si son unos brutos
Agregar repo:
sudo add-apt-repository ppandrej/php
sudo apt-get update
Instalar núcleo de php 7.4:
sudo apt install php7.4 php7.4-common php7.4-cli
Recuerden que esto no borra la versión anterior, ahora estarían conviviendo dos versiones distintas de PHP, eso lo vemos más adelante.
Instalar extensiones:
sudo apt install php7.4-bcmath php7.4-bz2 php7.4-curl
php7.4-intl php7.4-mbstring php7.4-mysql php7.4-readline
php7.4-xml php7.4-zip php7.4-imagick
En caso de faltar recuerden de instalar la librería de Apache con PHP, a veces, no se por qué, puede llegar a faltar:
sudo apt install libapache2-mod-php7.4
Ver si el módulo está instalado, este paso lo omiten en casi todos los tutoriales y es posible que si no te das cuenta inicies el servidor y siga con el PHP viejo:
sudo a2query -m php7.4
Si no lo está se agrega así:
sudo a2enmod php7.4
Y reiniciamos el servicio
sudo service apache2 restart
Y ahora es momento de borrar el anterior: recomiendo tener el servicio de apache2 apagado mientras hacen esto para que nadie pueda ver errores, son unos segundos nada más.
apt purge php7.0 php7.0-common
apt purge php7.2 php7.2-common
Y fíjense bien si no es que se les quedó algún otro PHP perdido en el sistema, Linux suele mantener todo porque si no se le indica el borrado queda ahí.
Otros posts que podrían llegar a gustarte...
Comentarios
-
-
?
-
¿En serio no te apareció esa excepción con PHP 7.4?
Ahora para los continue hay que ponerle "continue 2", sino funciona como un break -
Lelale dijo:
¿En serio no te apareció esa excepción con PHP 7.4?
Ahora para los continue hay que ponerle "continue 2", sino funciona como un break
nopes, será que tengo todo perfectamente programado ?y jamás uso un fucking continue que en mi cabeza resuena más a error de diseño que otra cosa ?
-
Por que no hacerlo con docker?
-
por qué si? agregar más cosas a un VPS barato no ayuda para nada en costos, ya lo hice una vez con Docker, no sólo tenés un costo más alto de laburo sino que al final ¿para qué dos veces todo? Si el server es de un sólo uso (sólo web server, por ejemplo) ¿cuál es la ventaja? Todo este proceso lo vas a tener que hacer en tu dock personal, actualizar todo, probar que funcione ok y luego subirlo al servidor con docker ¿qué cambió?
Si tenés, en cambio, un servidor más grande y con muchos sitios y/o instalaciones independientes, ahí tiene sentido docker, porque cada cosa tiene su propia instancia, por ahí algunas ni tienen php, otras son python y así. Depende, entonces, en el contexto.
Lo que sí es cierto es que en todos los escenarios no podés quedarte con un PHP sin soporte :P
-
Luego de leer tu artículo, vi este otro, aparte de tener PHP siempre actualizado, pensas que usar estos módulos de seguridad es una buena práctica:
https://www.linuxadictos.com/snuffleupagus-un-excelente-modulo-para-bloquear-vulnerabilidades-en-aplicaciones-php.html -
El otro día a un cliente le pusieron eso en el servidor, configurado así como venía por default en modo "no dejo que pase nada".
A PHP no le permitía ni que funcionaran los include más o menos, el template de su sitio reventó por todos lados.
No está mal la idea pero a veces es demasiado draconiano. En el mismo manual de Snuffleupagus explican que hay que ir activando cosa por cosa para encontrar un equilibrio, pero nadie se toma ese trabajo parece.
Para mi como idea no está mal pero hay que entender mucho a tus sitios antes de mandarlo, ponerlo en un hosting es directamente una locura, pero si uno tiene acceso a configurarlo va perfecto.
-
Bueno, estoy de acuerdo que en un vps barato hay que pensarlo.
No creo que sea mas la laburo, cambiar entre versiones es solo cambiar una linea de del dockerfile.
No tenes todo dos veces, docker usa un modulo del kernel, cuando ves los procesos son los mismos.
Ventajas:
Varias, pero creo que una ventaja lo es cuando tenes la necesidad y quizás no te pasa y esta muy bien!
Enjoy!