Php
-
Cambiar de version de php en apache local
Cambiar la versión de PHP en Apache (mod_php y PHP-FPM)
Dependiendo de la versión de Debian y de PHP instalada, Apache puede usar PHP de dos formas:
- mod_php: PHP integrado directamente en Apache (clásico).
- PHP-FPM: PHP como servicio independiente, comunicado por FastCGI (recomendado).
Algunas versiones modernas de PHP (como PHP 8.3 desde repositorios externos o experimentales) no incluyen mod_php, por lo que es obligatorio usar PHP-FPM. Sin embargo, versiones como PHP 7.x, 8.0, 8.1 o 8.2 sí pueden tener mod_php si el paquete existe en el repositorio.
Método 1: Cambiar la versión de PHP usando mod_php (cuando existe)
Este es el método tradicional y funciona sólo si tienes instalados paquetes como:
libapache2-mod-php7.4 libapache2-mod-php8.1 libapache2-mod-php8.2Si quieres instalar varios modulo de php, puede hacerlo por ejemplo:
apt install php8.4-{intl,mysql,xml,zip,mbstring,curl,mcrypt}Estos son los modulos que necesito en nuestro proyecto TPVFOX
Para cambiar la versión:
1. Desactivar la versión antigua
sudo a2dismod php7.42. Activar la versión nueva
sudo a2enmod php8.13. Reiniciar Apache
sudo systemctl restart apache2Con esto Apache pasa a usar la nueva versión de PHP vía mod_php.
Nota importante: mod_php no existe para algunas versiones modernas como PHP 8.3 (según repositorio utilizado). Si no existe la carpeta/etc/php/8.3/apache2/, es que NO tienes mod_php y debes usar PHP-FPM.
Método 2: Cambiar la versión de PHP usando PHP-FPM (válido para todas las versiones)
PHP-FPM es el sistema recomendado y funciona con cualquier versión de PHP, incluso cuando no existe mod_php.
1. Instalar la versión deseada de PHP-FPM
sudo apt install php8.3 php8.3-fpm2. Activar en Apache los módulos necesarios
sudo a2enmod proxy_fcgi setenvif3. Asignar la versión de PHP-FPM al VirtualHost
En tu archivo del sitio web (por ejemplo
/etc/apache2/sites-available/misitio.conf), añade:<FilesMatch "\.php$"> SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/" </FilesMatch>Cambia php8.3-fpm.sock por la versión que quieras usar (php7.4-fpm.sock, php8.1-fpm.sock, etc.).
4. Reiniciar servicios
sudo systemctl restart php8.3-fpm sudo systemctl restart apache2
Cómo comprobar la versión de PHP en Apache
Si usas mod_php
ls /etc/apache2/mods-enabled/php*Si usas PHP-FPM
systemctl status php8.3-fpmO bien crea un
phpinfo().
Ventaja: Puedes tener varias versiones a la vez
Con PHP-FPM puedes instalar varias versiones (7.4, 8.1, 8.2, 8.3…) y asignar cada una a un VirtualHost distinto simplemente cambiando el socket:
/run/php/php7.4-fpm.sock /run/php/php8.1-fpm.sock /run/php/php8.3-fpm.sockEste método es ideal para servidores con múltiples proyectos.
-
Enviar correo de PHP con la librería PHPMailer
PHPMailer es una biblioteca de php para enviar correos electrónicos de forma segura y fácil a través de un código PHP desde un servidor web..
Estas son algunas de las funciones que trae son:
- Envíos a varios remitentes, con CC, CCO, etc.
- Soporta 8bits, base64 y binarios
- Autenticación por SMTP en puertos 25 sin encriptar, 587 TLS, 465 SSL
- Envíos con HTML
- Envíos de emails con adjuntos
- Inclusión de imágenes en el correo, etc
-
Herramientas para : Copias, migraciones, diferencias estructuras, llenar ...
Herramienta para trabajar con Bases de datos (MySQL o MariaDB)
Alguna de la siguiente herramientas que utilizamos cuando trabajamos con bases de datos de mysql o MariaDB.
Herramientas con las que podrás copiar, hacer migraciones de versiones, ver diferencias estructuras y incluso llenar con script automatizados.
Mysql - Recuperar respaldos de base de datos de mysql o maria-db
El programa que utiliza para hacer copias de seguridad es mysqldump es un programa que forma parte de los "MySQL Client Programs" de MySQL, que puede ser utilizado para generar respaldos de bases de datos y ser usados o incluso para ser transferidos a otro servidor de base datos SQL .
Para poder importar la base datos comprimida (xz) lo hacemos desde terminal con la siguiente instrucción.
mysql -u usuario -p base_datos < <(xz -cd < copia_de_base_datos_comprimida.dump.xz)
