| DAW/DWES Tema2 |
|:-----------:|
|
|
| INSTALACIÓN, CONFIGURACIÓN Y DOCUMENTACIÓN DE ENTORNO DE DESARROLLO Y DEL ENTORNO DE EXPLOTACIÓN |
Este documento es una guía detallada del proceso de instalación y configuración de un servidor de aplicaciones en Ubuntu Server utilizando Apache, con soporte PHP y MySQL
Nombre de la máquina: daw-used\
Memoria RAM: 2G\
Particiones: 150G(/) | 350G (/var)\
Configuración de red interface: enp0s3 \
Dirección IP 10.199.9.104/22\
GW: 10.199.8.1/22\
DNS: 10.151.123.21
10.151.126.21
Nombre de la máquina: hostnamectl\
Memoria RAM: free -h\
Particiones: df -h\
Configuración de red interface: ip a\
Dirección IP ip a\
GW: ip r\
DNS: resolvectl
Editar el fichero de configuración del interface de red /etc/netplan,
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
addresses:
- 10.199.9.104/22
nameservers:
addresses:
- 10.151.123.21
- 10.151.126.21
search: [educa.jcyl.es]
routes:
- to: default
via: 10.199.8.1
version: 2
Aplicamos la configuración de red con:
sudo netplan apply
sudo apt update
sudo apt upgrade
Establecer fecha, hora y zona horaria
sudo timedatectl set-timezone Europe/Madrid
- root(inicio)
- miadmin/paso
- miadmin2/paso
- adminsql/paso
- operadorweb/paso
cat /etc/passwd | grep nombreCuenta
id nombreCuenta
groups nombreCuenta
sudo useradd -m -G [grupos,grupos] -s /bin/bash miadmin3
Como activar cortafuegos
sudo ufw enable
Abrir el puerto del ssh(22)
sudo ufw allow 22
Comprobamos el estado del cortafuegos y puertos
sudo ufw status
Para borrar el puerto v6
sudo ufw status numbered
sudo ufw delete [numeroRegla]
sudo apt install apache2
sudo service apache2 start
sudo systemctl status apache2
sudo ufw allow 80
Los ficheros de log de apache se almacenan en “/var/log/apache2”.
Así funciona HTTPS:

En primer lugar habilitamos el modulo “ssl”
sudo a2enmod ssl
Después crearemos el certificado autofirmado:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private amn-used.key -out /etc/ssl/certs/amn-used.crt
Comprobamos que se ha creado correctamente con:
sudo ls /etc/ssl/certs | grep amn-used
sudo ls /etc/ssl/private | grep amn-used
Reiniciamos el servicio de apache:
sudo systemctl restart apache2
Nos dirigiremos al directorio “/etc/apache2/sistes-available” y haremos una copia del fichero “default-ssl.conf”
sudo cp default-ssl.conf amn-used.conf
Dentro de la copia cambiaremos el nombre del certificado y de la clave por los que indicamos al crearlo:
Después activaremos el nuevo sitio:
sudo a2ensite amn-used.conf
Reiniciamos el servicio de apache:
sudo systemctl restart apache2
Y por último habilitaremos el puerto 443 en el cortafuegos:
sudo ufw allow 443
Comprobamos:
Para redireccionar apache HTTP a HTTPS deberemos de editar el fichero “/etc/apache2/sites-available/000-default.conf” y añadiremos la linea “Redirect” con la URL a la que queremos que redireccione:
Comprobamos:
Cuando damos intro:
Creamos una cuenta para la publicación de contenidos en nuestra web:
sudo adduser --home /var/www/html --ingroup www-data --shell /bin/bash operadorweb
sudo chown -R operadorweb:www-data /var/www/html
sudo chmod -R 775 /var/www/html
sudo apt install php8.3-fpm php8.3 -y
sudo a2enmod mpm_event proxy_fcgi
Configuramos el sitio activo:
cd /etc/apache2/sites-enabled/
sudo nano 000-default.conf
ProxyPassMatch ^/(.*\.php)$ unix:/run/php/php8.3-fpm.sock|fcgi://127.0.0.1/var/www/html
sudo service php8.3-fpm status
En primero lugar actualizaremos nuestro servidor con:
sudo apt update
Luego instalaremos el servicio “mariadb-server”:
sudo apt install mariadb-server
Al instalarlo iniciaremos el servicio:
sudo service mariadb start
Y comprobaremos el estado con:
sudo service mariadb status
Comprobaremos la version de mariadb con:
sudo mariadb --version
Entraremos en el fichero de configuracion de mariaDB y cambiaremos el apartado “bind-address” por “0.0.0.0”:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Comprobamos el puerto por defecto que utiliza mariaDB (3306):

A continuacion deberemos de crear un usuario “adminsql” de contraseña “paso”.
Para ello entraremos en la consola de MariaDB con “sudo mariadb” y los siguientes comandos:
Creación del usuario:

Configuración de permisos de administrador:

Mysql tiene un modo de instalación seguro para evitar brechas de seguridad, lo ejecutaremos con “sudo mysql_secure_installation” y responderemos a las preguntas en función de nuestras preferencias:


Una de las preguntas ha sido si queriamos que el usuario “root” tubiera contraseña, lo comprobamos con el siguiente comando:

Deberemos de instalar el módulo que integra mysql con php8.3-fpm con:

Comprobaremos que se ha instalado correctamente con:

En primer lugar deberemos de ir al apartado de “Services” y hacer clic derecho en “Databases”. Deberemos de entrar en “New Connection…”:

A continuación deberemos de elegir el driver que queremos utilizar, en este caso MariaDB (MySQL-compatible) y indicarle el archivo del driver que hemos bajado de internet:

Deberemos de indicar la IP de nuestro servidor, el puerto, la base de datos a la que queremos conectarnos, y el usuario y password que hemos creado anteriormente:

Como podemos comprobar nos hemos conectado correctamente:

Para ejecutar un script deberemos de hacer click derecho en la conexión y entraremos en “Execute Command”:

Para crear un proyecto en NetBeans deberemos de clicar en “File/New Project”.

Después clicaremos en la categoría de “PHP” y el tipo “PHP Application from Remote Server”.

Le daremos un nombre a nuestro proyecto y indicaremos la URL en la que se almacenará el proyecto.

Indicaremos también la URL con la que buscaremos la página en el navegador (IP dek servidor) y el directorio de publicación.

Mediante SFTP crearemos un archivo “index.html” dentro del directorio de publicación.

Confirmaremos los archivos que queramos sincronizar.

Y comprobaremos que cuando cambiamos algo en NetBeans se ejecutan los cambios en la web del servidor.

En primer lugar deberemos de dirigirnos a nuestro repositorio de GitHub y copiaremos la URL del repositorio clicando en “<> Code” y en el apartado HTTPS.

En NetBeans en el apartado “Team” deberemos de clicar en la opcion de “Git” y en la opción “Clonar…”

Pegaremos la URL de nuestro repositorio y indicaremos el usuario y la contraseña de la cuenta de GitHub. Tmbién deberemos de indicar la carpeta de destino.

Podremos a su vez indicar que ramas queremos de las que tiene el repositorio. (Si tubiera más aparecerían aquí).

Indicaremos el directorio padre y el nombre de la clonacion.

Al finalizar nos dirá si queremos crear un proyecto a partir del repositorio.

Indicaremos el tipo de proyecto.

Le pondremos un nombre y le indicaremos un directorio.

Indicaremos la URL del servidor y su directorio de publicación.

Confirmaremos los archivos.

Y como podemos ver en el Repository Browser tenemos toda la información sobre la clonación.

Al hacer clic derecho en “Source Files” de nuestro proyecto, en el apartado de “Git” podremos administrar todo, por ejemplo hacer un commit, merge etc.

Nombre y Apellidos
Alberto Méndez Núñez
Curso: 2025/2026
2º Curso CFGS Desarrollo de Aplicaciones Web
Despliegue de aplicaciones web