Cómo instalar PHP
Debian+PHP+MySQL8

Instalación de PHP

Esta imagen viene equipada con la versión de PHP 8.1, sin embargo, puede ser instalada otra versión diferente. Las diferentes versiones de PHP son gestionadas a través del repositorio packages.sury.org/php .

Para modificar la version, debemos instalar los siguientes paquetes:

  • libapache2-mod-php[php_version]
  • php[php_version]
  • php[php_version]-zip
  • php[php_version]-bz2
  • php[php_version]-mysql
  • php[php_version]-mbstring

Por ejemplo, para instalar la versión de PHP 5.6, debemos acceder al contenedor remoto y ejecutar el siguiente comando:

### Acceder al contenedor llamada "debian-web"
$ incus exec debian-web bash   
### Instalar versión de PHP 5.6
$ sudo apt install -y libapache2-mod-php5.6 php5.6 php5.6-zip php5.6-bz2 php5.6-mysql php5.6-mbstring

Las extensiones de PHP especificadas anteriormente, son dependencias usadas en el phpMyAdmin que hay incluido en la imagen. Se pueden instalar todas las extensiones que sean necesarias.

root@debian-web:~# sudo apt install -y libapache2-mod-php5.6 php5.6 php5.6-zip php5.6-bz2 php5.6-mysql php5.6-mbstring
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libpcre3 php5.6-cli php5.6-common php5.6-json php5.6-opcache php5.6-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php5.6 libpcre3 php5.6 php5.6-bz2 php5.6-cli php5.6-common php5.6-json php5.6-mbstring php5.6-mysql php5.6-opcache php5.6-readline php5.6-zip
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/4443 kB of archives.
After this operation, 16.7 MB of additional disk space will be used.

A continuación, ejecutamos el siguiente comando para desactivar el módulo que viene por defecto de php8.1 de apache2 y activamos el módulo php5.6.

$ a2dismod php8.1
Module php8.1 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
$ a2enmod php5.6
root@debian-web:~# a2enmod php5.6
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Enabling module php5.6.
To activate the new configuration, you need to run:
  systemctl restart apache2

Si desea modificar la versión de PHP CLI, ejecuta el siguiente comando y selecciona la versión deseada:

$ sudo update-alternatives --config php
root@debian-web:~# sudo update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.1   81        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php8.1   81        manual mode

Press <enter> to keep the current choice[*], or type selection number: