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 :P

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

  • Lelale    

    Dejame adivinar: php fatal error cannot ´continue´ 2 levels

    Y eso que con MySQL 8 la pasión del desastre ¡No termina!

    • Responder
    • Citar
    • Comentado:
      • Lelale    

        ¿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

        • Citar
        • Comentado:
      • 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 😜

        • Citar
        • Comentado:
  • Norberto    

    Como anillo al dedo, justo una de las tareas que tengo pendientes

    • Responder
    • Citar
    • Comentado:
  • Por que no hacerlo con docker?

    • Responder
    • Citar
    • Comentado:
    • 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

      • Responder
      • Citar
      • Comentado:
    • 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.

      • Responder
      • Citar
      • Comentado:
  • 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!

    • Responder
    • Citar
    • Comentado:

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https
Para evitar bots, si se tardó mucho en leer la nota seguramente no sirva y tenga que intentar dos veces

Negrita Cursiva Imagen Enlace


comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador