Desde el 28 de Noviembre tenemos disponible la versión 7.4 de PHP, el cual trae muchas mejoras (que las pueden ver en este articulo). En esta guía vamos a ver como instalar PHP 7.4 tanto en Apache como en Nginx.
Esta guía es perfecta para tus servidores que tengan Ubuntu como sistema operativo. Así que asumo que ya tienes instalado Apache o Nginx.
Primero veremos los pasos para instalar en Apache y luego en Nginx. Comencemos!
Paso 1: Agregar y actualizar los repositorios.
Primero vamos a agregar los repositorios de terceros por si PHP 7.4 todavía no se encuentra en los oficiales. Así que, vamos a ejecutar los siguientes comandos:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:ondrej/php
Y luego actualizamos los repos:
$ sudo apt update
Paso 2: Instalar PHP 7.4 con las extensiones para Laravel.
Ahora instalaremos PHP 7.4 con las extensiones necesarias que necesita Laravel:
$ sudo apt install php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-mysql php7.4-sqlite3 php7.4-gd php7.4-imagick php7.4-tidy php7.4-xml php7.4-xmlrpc php7.4-bcmath php7.4-mbstring
Para verificar que se instaló PHP correctamente, puedes ejecutar el comando:
$ php -v
Paso 3: Configurar PHP 7.4 en Apache2
Ahora que ya tenemos instalado PHP 7.4, seguramente debas configurar Apache2 para sacarle jugo a PHP. Para esto, debemos editar el archivo llamado php.ini que se encuentra en /etc/php/7.4/apache2/php.ini
Entonces, para modificar el archivo php.ini debemos hacer:
$ sudo nano /etc/php/7.4/apache2/php.ini
Y creo que lo mas importante a considerar son las siguientes configuraciones que debes establecer los valores según el ambiente:
upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 300 max_input_vars = 3000 max_input_time = 1000
También puede que sea necesario que descomenten las lineas que pertenecen a las extensiones pdo. Para eso, deben quitar el punto y coma de las extensiones que necesiten, por ejemplo:
extension=pdo_mysql extension=pdo_sqlite
Y reiniciamos Apache para que tome la nueva configuración:
$ sudo service apache2 restart
Listo! Eso es todo para tener disponible PHP 7.4 en Apache. Ahora veamos como se instala en Nginx.
Paso 1: Agregar y actualizar los repositorios.
En este paso debemos hacer lo mismo que hicimos en el paso 1 de la instalación en Apache.
Paso 2: Instalar PHP 7.4-FPM en Nginx con las extensiones para Laravel.
En Nginx necesitamos instalar PHP 7.4-FPM y, también instalaremos las extensiones necesarias para Laravel.
$ sudo apt install php7.4-fpm php7.4-cli php7.4-mysql php7.4-sqlite3 php7.4-gd php7.4-imagick php7.4-tidy php7.4-xml php7.4-xmlrpc php7.4-bcmath php7.4-mbstring
Paso 3: Configurar PHP 7.4-FPM en Nginx
Ahora que ya tenemos instalado PHP 7.4 en Nginx, debemos tener en cuenta algunas configuraciones. Para esto debemos editar el archivo php.ini.
$ sudo nano /etc/php/7.4/fpm/php.ini
Y debemos modificar los siguientes parámetros según el ambiente donde te encuentres:
upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 300 max_input_vars = 3000 max_input_time = 1000
También puede que sea necesario que descomenten las lineas que pertenecen a las extensiones pdo. Para eso, deben quitar el punto y coma de las extensiones que necesiten, por ejemplo:
extension=pdo_mysql extension=pdo_sqlite
Guarde y cierre el archivo. Y por ultimo, reiniciamos Nginx y PHP-FPM.
sudo systemctl restart nginx.service sudo systemctl restart php7.4-fpm
Y eso es todo! Ya puedes disfrutar de PHP 7.4 con Laravel 😉.
Conclusión
Con unos pasos muy simples ya tenemos instalado PHP 7.4 en nuestro proyecto Laravel.
Esta versión de PHP 7.4 no interrumpe la ejecución si has utilizado alguna función que se ha quitado del soporte, solamente te muestra un warning. Pero igualmente, te recomiendo que ejecutes tus tests automatizados para saber si tienes un warning y solucionarlo porque en PHP 8 si removerá definitivamente del core de PHP.
Yo ya empece a jugar con esta nueva versión en Laravel y se ve muy interesante. Te animo a que vos también lo pruebes y me cuentes que te ha parecido. Nos vemos en la próxima.
cuando hago
sudo add-apt-repository ppa:ondrej/php
me sale:
sudo add-apt-repository ppa:ondrej/php
cuando hago
sudo add-apt-repository ppa:ondrej/php
me sale:
‘Error reading https://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&exact=on&search=0x14AA40EC0831756756D7F66C4F4EA0AAE5267A6C: Internal Server Error’
gracias amigo me funciono para laravel 7.30.4 con php fpm7.4 y mysql en un servidor NGINX