Paso 1. Instalamos Apache2 HTTP
Antes que todo debemos instalar el Servidor Web Apache2 HTTP, el cual es el más popular y por lo mismo el más utilizado. Así que abrimos nuestra Terminal de nuestro Sistema basado en Linux y tecleamos la siguiente linea de código:
sudo apt update
Una vez hemos ingresado nuestra contraseña veremos algo como esto en nuestra terminal:

Una vez nuestro sistema a terminado de actualizar las dependencias de nuestro sistema, ahora si estamos listos para instalar nuestro primer componente para tener un entorno de desarrollo confiable para CakePhp en nuestro sistema y esto es la instalación de Apache2 HTTP desde nuestra Terminal, así que teclamos la siguiente linea de comandos:
sudo apt install apache2
Ahora veremos como nuestro sistema comienza con la instalación del Servidor:

Cuando el sistema te pregunte si deseas continuar; teclea la letra “S” y dale “enter” para seguir con la instalación.
Una vez el sistema concluya con la instalación, vamos a verificar el estado de funcionamiento de Apache2 teclenado la siguente linea de comandos:
sudo systemctl status apache2.service
Nos debe aparecer una pantalla como la siguiente:

En este caso podemos observar el estatus de Apache2 que nos aparece como “active”. Por otro lado, también podemos teclear la siguiente URL en nuestro explorador para confirmar que el modulo de Apache2 está funcionando correctamente:
http://localhost/
Te debe aparecer una pantalla como la siguiente:

En el caso de que el Servidor Apache2 no esté inicializado correctamente te agrego unos comandos que te serviran para tener control sobre el funcionamiento de este Servidor:
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
sudo systemctl status apache2.service
Realmente no entro en detalles respecto de los comandos anteriores porque en su contenido son muy descriptivos. Así que continuamos con el siguiente paso y este es: Instalación del Sistema de Base de Datos MariaDB el cual lo podrás ver en el siguiente artículo dando click aqui mismo.
Cómo bien lo sabemos, todo entorno de desarrollo profesional debe contener un sistema de Base de Datos que nos permita guardar, editar, eliminar o acceder a esos datos. Para este fin vamos a instalar nuestra Base de Datos MariaDB.
Lo primero que vamos a hacer es teclear la siguiente linea de comandos en nuestra Terminal:
sudo apt install mariadb-server mariadb-client
Una vez ingresas tu contraseña y el sistema inicia la instalación, te va aparecer en tu Terminal la opción: ¿desea continuar?, sólo escribe la letra “s” y le das “enter” para continuar. Veras algo como esto:

Una vez concluido la instalación, vamos a verificar el estado de funcionamiento de MariaDB tecleando la siguiente linea en tu Terminal:
sudo systemctl status mariadb.service
Si todo está funcionando correctamente veremos algo como lo siguiente:

A continuación te dejo algunos comandos que te serán de utilidad cuando trabajes con este sistema:
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
sudo systemctl status mariadb.service
Muy bien, ahora vamos a crear una contraseña “root” y evitar acceso remoto de “root” tecleando el siguiente comando:
sudo mysql_secure_installation
Una vez ingresada tu contraseña te aparecerá una pantalla como la siguiente. Sólo le das “Y” en el apartado “Set root password?”.

Para las siguientes opciones te dejo la siguiente configuración:
- New password: Ingresas una contraseña
Re-enter new password: Reingresas tu contraseña
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Te debe quedar algo como lo que ves en la siguiente pantalla:

Una vez nuestra configuración esté completada debemos reinciar nuestra Base de Datos MariaDB con la siguiente linea de codigo:
sudo systemctl restart mariadb
Una vez hecho esto, vamos a verificar que el sistema este activo por medio de la siguiente linea de comandos:
sudo systemctl status mariadb
En tu pantalla veras algo como esto:

Hasta éste punto hemos instalado correctamente nuestro sistema de Base de Datos MariaDB.
Ahora vamos al siguiente paso y éste será la instalación de PHP 8, vamos a ello dando click aquí mismo.
Hasta este punto ya tenemos un Servidor instalado y una Base de Datos, ahora vamos a instalar una de las últimas versiones de PHP, la cual es la versión 8.0. Para ello vamos a acceder a los repositorios de terceros, ya que los repositorios de Ubuntu no los trae por defecto. Así que para ello tecleamos la siguiente linea de comandos:
sudo apt-get install software-properties-common
Veremos algo como esto en tu Terminal:

Ahora vamos a completar la instalación con la siguiente linea:
sudo add-apt-repository ppa:ondrej/php
Cuando el sistema te pregunte si deseas agregar las adiciones del repositorio, sólo dale “ENTER” para continuar con la instalación, al final debes ver algo como lo siguiente:

Ahora sólo vamos a actualizar nuestros repositorios con el comando que ya conoemos:
sudo apt update
Perfecto, ahora a instalar PHP en su versión 8.0 junto con las dependencias que vamos a requerir para trabajar correctamente con CakePhp, para ello ingresa toda la linea de comandos que es a continuación:
sudo apt install php8.2 libapache2-mod-php8.2 php8.2-common php8.2-gmp php8.2-curl php8.2-intl php8.2-mbstring php8.2-xmlrpc php8.2-mysql php8.2-gd php8.2-imap php8.2-ldap php-cas php8.2-bcmath php8.2-xml php8.2-cli php8.2-zip php8.2-sqlite3
Cuando el sistema te pregunte si confirmas que vas a requerir espacio adicional después de la instalación, sólo escribe “s” y le das “enter” para seguir con la instalación, así como lo puedes ver en la siguiente captura:

En este punto es importante saber que ésta NO es la versión que por defecto se utilizará ya que descargará esta versión y la última, en caso de que tu desees utilizar otra versión de PHP ó simplemente utilizar otra versión, debes teclear la siguiente linea de comandos:
update-alternatives --set php /usr/bin/php8.2
Despues de esto debemos decirle a Apache2 que vamos a utilizar otra versión distinta a la que actualmente reconoce y para ello vamos a teclear lo siguiente en tu Terminal. La primera linea es para dicerle a Apache que versión utilizar y la segunda linea es para decirle a Apache que ignore la version 8.2 de PHP.
sudo a2enmod php8.2
sudo a2dismod php8.3
systemctl restart apache2.service
Hasta aquí cierro el parentesis y continuamos con la instalación de nuestro entorno de desarrollo para CakePHP.
Pues bien, ahora es momento de verificar las directivas del archivo php.ini de nuestro Apache2, para ello vamos a abrir el archivo por medio del siguiente programa y ruta:
sudo nano /etc/php/8.2/apache2/php.ini
En mi caso voy a cambiar la Zona Horaria por la que me acomoda mejor que sería la de America/Mexico_City, por lo cual vamos a buscar la linea date.timezone y hacemos el cambio:

Damos “CONTROL + O” para guardar, luego “ENTER” y finalmente “CONTROL + X” para salir.
Ya en este punto vamos a crear el archivo phpinfo.php para tener una mejor visión de las directivas con las que contamos, pues nos será de bastante utilidad cuando encontremos algunos malos funcionamientos al instalar nuestro entorno por primera vez. Para ello vamos a escribir la siguiente linea de comandos:
sudo nano /var/www/html/phpinfo.php
Aquí puedes ver un ejemplo de pantalla:

Damos “CONTROL + O” para guardar, luego “ENTER” y finalmente “CONTROL + X” para salir.
Ahora puedes teclear la siguiente URL para ver las directivas que por defecto nos aparece en nuestro archivo de PHP.
http://localhost/phpinfo.php
Veras una pantalla como la que tienes a continuación:

Hasta aquí todo parece funcionar correctamente, sin embargo, cuando realizar una primera instalación para trabajar con CakePHP, seguramente nos vamos a encontrar con algunos detalles que nos pueden ocasionar algunos dolores de cabeza batante serios. Pero dejemos ésto para más adelante.
Ahora vamos a instalar el organizador de dependencias de PHP llamado Composer, el cual nos ayudará a descargar una copia limpia de CakePhp, para ello vamos al sitio oficial de Composer dando click en el siguiente enlace:
https://getcomposer.org/download/
En ésta sección vamos a encontrar un recuadro en el cual aparecen varias lineas de comandos, tal y como lo observas a continuación:

Vamos a agregar linea por linea en nuestra Terminal, tal como lo vas a observar en la siguiente captura:

Hecho esto, vamos a mover el composer.par a un directorio para tener acceso global escribiendo la siguiente linea en tu Terminal:
sudo mv composer.phar /usr/local/bin/composer
Aquí tienes una captura de pantalla para que vayas siguiendo correctamente todo el proceso:

Ahora puedes verificar que Composer se instaló correctamente llamando al programa tecleando únicamente “composer”, tal como lo puedes ver en la captura de pantalla:

Como puedes observar en la captura, nos aparece que el programa funciona correctamente y está disponible.
Ahora vamos con la Parte 4 de este tutorial que es la Instalación de una copia limpia de CakePHP, puedes acceder a el dando click aqui mismo.
Hasta aqui y en teoría ya tenemos todo listo para descargar una copia limpia de CakePhp, sin embargo, antes de esto vamos a crear una base de datos y un usuario para esta base de datos. Para ello vamos a acceder a nuestra Base de Datos desde nuestra Terminal ingresando la siguiente linea de comandos:
sudo mysql -u root -p
Aqui vas a ingresar primeramente la contraseña de administrador del sistema Linux y a continuación te pedirá la contraseña que elegiste para tu base de datos. Aquí un ejemplo de como debe quedar:

Muy bien, ahora vamos a crear nuestra base de datos y un usuario por medio de la siguientes ordenes:
CREATE DATABASE pruebas;
CREATE USER 'alex'@'localhost' IDENTIFIED BY '12345';
FLUSH PRIVILEGES;
EXIT;
Te dejo una captura de todo el proceso anterior para que tengas una idea clara de como debe lucir tu Terminal:

He omitido un paso y es la de decirle a MariaDB que el usuario que hemos creado va a servir para cualquier Base de Datos que tengamos, para ello vamos a teclear la siguiente orden en nuestra terminal sin salir de nuestra Base de Datos:
GRANT ALL ON *.* TO 'alex'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Aqui te dejo un ejemplo completo de lo anterior:

Ahora si, por fin, vamos a descargar una copia limpia de CakePhp, para éste ejemplo se trata de la version 4.2.7, así que vamos a dar “CONTROL + C” para salir de la Base de Datos y vamos a ir a la siguiente ruta dentro de nuestro sistema de archivos de nuestro Sistema Operativo:
cd ..
cd ..
cd var/www/html
En tu Terminal debe verse algo como ésto:

Sin embargo, no podemos descargar una copia de CakePhp debido a que no tenemos los permisos suficientes para escribir en la carpeta “html”, así que vamos a subir un nivel y generar los permisos necesarios tecleando lo siguiente:
cd ..
sudo chmod 777 html
ls
cd html
Aqui una nueva captura de pantalla para darte una idea de como debe lucir tu Terminal:

Ahora si, vamos a descargar una copia limpia de CakePhp, en mi caso le voy a poner como nombre del proyecto “pruebas”:
composer create-project --prefer-dist cakephp/app:~4.0 pruebas
Cuando el sistema te pregunte si deseas darle permisos a una carpeta, solo teclea “Y” y luego “ENTER” y continuamos con la instalación:

Una vez descargado el archivo y para efectos de este tutorial le vamos a dar permisos de lectura y escritura a todo el proyecto por medio de las siguientes lineas:
ls
sudo chmod 777 pruebas
ls
cd pruebas
Ahora ya debemos estar dentro de la carpeta del proyecto, en este caso del proyecto “pruebas”:

Para comprobar que todo funciona correctamente vamos a ir a la siguiente URL del proyecto:
http://localhost/pruebas
Seguramente te va a aparecer una pantalla como la que puedes observar en la imagen, ésto es porque no tenemos habilitado el mod_rewrite en nuestro sistema.

Para corregir éste inconveniente vamos a realizar los siguientes pasos. Primero vamos a abrir una nueva Terminal y teclear lo siguiente:
sudo a2enmod rewrite
sudo systemctl restart apache2.service
sudo nano /etc/apache2/sites-available/000-default.conf
sudo apt-get install php8.1-intl
sudo systemctl restart apache2.service
Hasta éste punto tu Terminal debe lucir así:

Una vez agregada la última linea vamos a agregar la siguiente linea de código:

Guardamos y salimos. Ahora tenemos que reiniciar Apache2 con la siguiente sentencia que hemos visto anteriormente:
sudo systemctl restart apache2.service
Te dejo una captura para que vayas siguiendo el proceso:

Y éso es todo, si vuelves a la URL de tu proyecto, podemos ver que ya se descargan los estilos correctamente:
