jairogarcíarincón

Instalación de Apache, MySQL y PHP


955

Introducción



Una vez lanzada nuestra instancia y con acceso a ella, estamos listos para instalar desde la consola nuestro servidor LAMP. Más concretamente, vamos a instalar Apache2, MySQL 5 y PHP8.

Para instalar todo, utilizaremos el gestor de paquetes mantenido por ubuntu apt, que nos facilita la tarea de instalar nuevo software desde sus repositorios.

Instalación de Apache2



Para instalar Apache ejecutamos secuencialmente los siguientes comandos:

sudo apt-get update
sudo apt-get install apache2
sudo systemctl restart apache2


Ya está, hemos actualizado el índice de paquetes, instalado y reiniciado Apache2. Si accedemos en el navegador a la dirección: http://my-public-dns deberíamos acceder a una ventana similar a ésta:

Inicio Apache


El document root de apache2 default vhost se encuentra en /var/www/html de Ubuntu y el archivo de configuración principal es /etc/apache2/apache2.conf.

Instalación de MySQL5



Para instalar MySQL ejecutamos el comando:

sudo apt-get install mysql-server

Al introducir este comando se nos mostrará una lista de los paquetes a instalar y pulsaremos Y para continuar.

Durante la instalación debemos crear la contraseña para el usuario root de MySQL, con las consideraciones descritas anteriormente respecto a la seguridad de las contraseñas.

Cuando la instalación haya terminado, ejecutaremos el siguiente script interactivo que nos permitirá borrar algunas configuraciones peligrosas para la seguridad:

sudo mysql_secure_installation

Nos pedirá que introduzcamos la contraseña de usuario root de MySQL creada anteriormente, y nos preguntará si queremos configurar el VALIDATE PASSWORD PLUGIN o Plugin de Validación de Contraseñas, que para esta actividad no vamos a utilizar, así que pulsaremos cualquier tecla distinta de Y para continuar.

Para el resto de las preguntas, hay que introducir Y y pulsar Enter. Esto eliminará el usuario de ejemplo y la base de datos de prueba y desactivará las conexiones root remotas.

Podemos ver que la instalación y configuración se ha completado correctamente y que está activa con los comandos:

mysql --version
sudo service mysql status


Por último, para poder acceder posteriormente a la base de datos mediante el usuario root desde PHP y crear una base de datos de prueba, realizaremos las siguientes acciones:

sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
exit
sudo mysql -u root -p
Introducimos la password
exit


CREATE DATABASE pruebas CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'usuariopruebas'@'localhost' IDENTIFIED BY 'password’;
GRANT INSERT,SELECT,UPDATE,DELETE,CREATE,DROP,ALTER ON site.* TO 'usuario-pruebas'@'localhost';
exit


NOTA: Ten en cuenta que, donde pone password entre comillas, debes introducir la password que desees para tu usuario.

Instalación de PHP8



Para instalar PHP8 y todos los paquetes necesarios, primero añadiremos el repositorio de Ondrej mediante los comandos:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php


A continuación, instalamos PHP 8 y las librerías necesarias:

sudo apt update
sudo apt install php8.0 libapache2-mod-php8.0 php8.0-mbstring php8.0-dom php8.0-zip php8.0-curl
sudo apt install zip unzip
sudo systemctl restart apache2


sudo apt install php8.0-mysql
sudo systemctl restart apache2



Una vez hecho esto, ya tenemos instalado PHP8 y el soporte para MySQL, podemos comprobar que funciona correctamente creando un archivo que muestre la configuración PHP:

sudo nano /var/www/html/info.php

Con el siguiente texto:



Si pulsamos Ctrl+X, luego Y para salvar los cambios y Enter para confirmar el nombre del archivo, podremos acceder en el navegador a la dirección http://my-public-dns/info.php y comprobar que funciona correctamente si obtenemos un resultado similar a éste:

Captura 23


Como mejoras opcionales a esta instalación, es recomendable habilitar el soporte para SSL/TLS (capa de seguridad para el encriptado de la conexión entre el navegador y el servidor), que utilizaremos más adelante:

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2


NOTA: Antes de poner el servidor en producción, es importante eliminar el archivo info.php una vez utilizado, pues contiene detalles sensibles del servidor accesibles a cualquier visitante. El código para hacerlo sería:

sudo rm -f /var/www/html/info.php

Por último, también es importante otorgar permisos de escritura al usuario ubuntu en la carpeta /var/www/html, ya que de otro modo no podremos crear ni modificar archivos en ella posteriormente:

sudo chown -R ubuntu:ubuntu /var/www/html

Con esto tendríamos configurado completamente nuestro entorno LAMP remoto. En el próximo capítulo aprenderás a realizar la Configuración de phpStorm para poder acceder a los archivos de tu instancia.


Publicado el 21 de Octubre de 2021

programaciónservidorapacheubuntumysqlamazonawsdominiosnetbeans