Instalación de PHP 8.2
🐘 Instalación de PHP 8.2 en Xubuntu 24.04 con Apache2 para Laravel y Symfony
En este artículo te comparto el proceso completo y documentado de cómo instalé PHP 8.2 en Xubuntu 24.04, con Apache2, listo para desarrollar con Laravel y Symfony. Además, explico dónde se instala PHP, qué módulos usé y por qué.
📦 1. Requisitos previos
Ya tenía instalado Apache2, así que empecé por agregar los repositorios actualizados y confiables para obtener versiones más recientes de PHP.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
El PPA de Ondrej Sury es uno de los más utilizados y confiables para PHP en Ubuntu.
🧩 2. Instalación completa de PHP 8.2 y sus módulos necesarios
Una sola línea para instalar todo lo que necesitás para trabajar con Symfony y Laravel:
sudo apt install php8.2 libapache2-mod-php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-pgsql php8.2-sqlite3 php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip php8.2-gd php8.2-bcmath php8.2-intl php8.2-readline php8.2-xdebug php8.2-imap php8.2-soap php8.2-tokenizer unzip curl composer
📘 ¿Qué hace cada paquete?
📦 Paquete | 🧠 ¿Para qué sirve? | 🧱 Usado por |
---|---|---|
php8.2 | Núcleo del lenguaje PHP 8.2 | Todo proyecto PHP |
libapache2-mod-php8.2 | Permite que Apache ejecute .php | Apache |
php8.2-cli | PHP desde la terminal (línea de comandos) | Composer, Laravel (artisan ), Symfony (console ) |
php8.2-common | Archivos comunes para extensiones PHP | Base para todo |
php8.2-mysql | Conexión con bases de datos MySQL/MariaDB | Laravel, Symfony |
php8.2-pgsql | Conexión con bases de datos PostgreSQL | Symfony, Laravel (opcional) |
php8.2-sqlite3 | Soporte para SQLite | Laravel y Symfony (útil para testing rápido) |
php8.2-xml | Soporte XML, DOM, etc. | Symfony, Composer |
php8.2-mbstring | Soporte para UTF-8 y cadenas multibyte | Laravel, Symfony |
php8.2-curl | Acceso HTTP a APIs, servicios externos | Laravel, Symfony, Composer |
php8.2-zip | Soporte para archivos .zip | Composer, Laravel Mix |
php8.2-gd | Manipulación de imágenes (resize, crop, etc) | Laravel, bibliotecas de imágenes |
php8.2-bcmath | Cálculos precisos de punto flotante | Laravel (pagos, colas, etc) |
php8.2-intl | Localización, traducción, fechas, números | Symfony, Laravel (multi-idioma) |
php8.2-readline | Mejora del uso interactivo en CLI | Laravel Artisan, Symfony Console |
unzip | Descomprimir archivos ZIP | Composer, instaladores |
curl | Herramienta de línea de comandos para HTTP | Composer, Symfony installer |
composer | Gestor de dependencias de PHP | Laravel, Symfony, paquetes |
🎁 BONUS: Extras que podrías instalar luego (opcional)
-
php8.2-xdebug
→ para depurar código PHP. -
php8.2-imap
→ si trabajás con correo electrónico. -
php8.2-soap
→ para consumir APIs SOAP. -
php8.2-tokenizer
→ requerido por Laravel internamente (a veces incluido encommon
).
📂 3. ¿Dónde se instala todo esto?
Linux organiza bien sus archivos. Acá te muestro dónde van las cosas cuando instalás PHP desde APT:
Elemento | Ruta | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ejecutables (php , php8.2 , etc.) | /usr/bin/ | ||||||||||||||
Configuración para Apache | /etc/php/8.2/apache2/php.ini | ||||||||||||||
Config. global de PHP (cli) | /etc/php/8.2/cli/php.ini | ||||||||||||||
Módulos habilitados | /etc/php/8.2/mods-available/ | ||||||||||||||
Módulos cargados | /etc/php/8.2/apache2/conf.d/ (symlinks) | ||||||||||||||
Archivos PHP compartidos | /usr/share/php/ | | | ||||||||||||
Documentación de paquetes | /usr/share/doc/php* |
| | | | | | | | | | | | |
Document root de Apache | /var/www/html/ |
📁 4. Entendiendo permisos y enlaces
Al explorar /usr/bin/
encontré muchos comandos que en realidad son enlaces simbólicos (symlinks
), como:
php -> /etc/alternatives/php
Esto permite cambiar fácilmente la versión de PHP activa. Usando readlink -f /usr/bin/php
podés ver a dónde apunta realmente.
También repasamos cómo se leen los permisos de archivos y directorios, como por ejemplo:
-rwxr-xr-x 1 root root ...
rwx
(usuario) → puede leer, escribir y ejecutar-
r-x
(grupo) → puede leer y ejecutar -
r-x
(otros) → puede leer y ejecutar -
1
→ número de enlaces al archivo (como en los hard links)
📦 5. ¿Qué tengo instalado ahora?
Para ver qué tenés instalado de PHP:
dpkg -l | grep php8.2
✅ Conclusión
Ya tengo listo mi entorno de desarrollo para trabajar con Laravel y Symfony sobre PHP 8.2 y Apache2, todo correctamente organizado y compatible. En el próximo post, probablemente documente la instalación de MariaDB o MySQL, y la creación de un proyecto Symfony paso a paso.
Comentarios
Publicar un comentario