Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para ello, abrimos el Oracle Virtual Box, le damos a “Nuevo” y creamos la máquina
virtual. En este caso le pondremos el nombre que queramos y seleccionamos el Tipo de
sistema Linux y la versión de Ubuntu de 64 bits.
Ahora debemos configurar nuestra máquina virtual, para ello, tendremos que hacer click
en “Configuración” para, a continuación, acceder a “Almacenamiento” y seleccionamos
el CD que esté vacío.
Idioma español.
Disposición del teclado en español.
En “Conexiones de red” dejamos la configuración por defecto.
El proxy lo dejamos vacío.
El repositorio de Ubuntu, lo dejamos por defecto.
La configuración del disco la dejamos por defecto.
En la configuración del perfil:
o Nombre: el nombre del perfil que queramos darle.
o Servidor: el nombre del servidor que identifique el proyecto.
o Nombre de usuario: el nombre del usuario que queramos darle.
o Contraseña de acceso al perfil.
Ubuntu token: lo dejamos en blanco.
Instalamos servidor OpenSSH.
De momento, no instalamos ningún complemento extra.
Esperamos que toda la configuración se termine de instalar y esperamos que
finalice.
Una vez ha finalizado la instalación, apagamos la máquina y le quitamos el disco de
instalación que le hemos asignado. Para ello, tendremos que acceder a Configuración >
Almacenamiento y seleccionamos el disco; le damos al icono del disco y lo eliminamos.
Iniciamos sesión con las credenciales que hemos puesto durante la instalación.
Para ello, en otra consola (la del equipo con la que te vas a conectar), debemos utilizar
el comando ssh-keygen y aceptamos todo hasta que nos vuelva a salir la línea de
escritura.
Se deben subir las claves al servidor para que éste reconozca al usuario y no nos pida
más la clave, de forma que podamos acceder directamente sin necesidad de introducir la
contraseña. Para ello, deberemos escribir lo siguiente:
scp .ssh/id_rsa.pub nombre_usuario@IP_máquina:~
Debemos irnos ahora a la conexión SSH que ya teníamos abierta para mover el archivo
de clave pública a la carpeta .ssh del servidor, renombrándolo como authorized_keys y
cambiándole los permisos para que solo el propietario pueda leer y modificar el fichero,
para ello, tendremos que introducir los siguientes comandos:
mv id_rsa.pub .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
Ahora solo queda conectarse de nuevo al servidor utilizando SSH; para ello tendremos
que acceder utilizando el usuario y la IP de la máquina.
Utilizamos el comando sudo ufw app list para ver el perfil de aplicaciones.
Con el comando sudo ufw allow OpenSSH permitimos conectarnos por SSH,
ya que el Firewall viene desactivado por defecto.
Tenemos que agregar una regla al Firewall para permitir el acceso a través del puerto
que vayamos a designar, haciendo lo siguiente:
Con esto, ya podremos conectarnos al servidor por SSH utilizando otro puerto.
Para ello utilizamos el comando ssh nombre_usuario@IP_máquina
-p Número_puerto.
Si hemos tenido éxito en la conexión por SSH al nuevo puerto, eliminamos los
puertos OpenSSH, dejando solo el que hemos designado:
sudo ufw delete posición_que_ocupa_en_la_lista
Volvemos a comprobar: sudo ufw status
Eliminamos el otro puerto que queremos para dejar solo aquel que hemos
designado: sudo ufw delete posición_que_ocupa_en_la_lista
Comprobación de que todo ha quedado como queremos: sudo ufw status
Nota: En el caso de que existan más puertos que no queramos usar, debemos hacer los
pasos anteriores, teniendo en cuenta la posición que ocupa el puerto que queramos
eliminar en ese momento.
Instalación del LAMP (Apache, MySQL y PHP)
Instalación de Apache
Creamos un host virtual para poder acceder a nuestro dominio. Antes hay que
crear una carpeta para poder guardar todos los archivos referentes al PHP, es
donde se alojará el sitio web.
o sudo mkdir /var/www/DOMINIO.es
El único parámetro que hay que modificar es el de DOMINIO.es.
Además, se cambia el propietario de la carpeta para poder administrarla.
o sudo chown -R $USER:$USER /var/www/DOMINIO.es
El único parámetro que hay que modificar es el de DOMINIO.es.
Se crea un fichero de configuración para el sitio web.
o sudo nano /etc/apache2/sites-available/DOMINIO.es.conf
El único parámetro que hay que modificar es el de DOMINIO.es.
Se edita el fichero que se ha creado y se deben escribir las siguientes líneas:
<VirtualHost *:80>
ServerName DOMINIO.es
ServerAlias www.DOMINIO.es
ServerAdmin admin@DOMINIO.es
DocumentRoot /var/www/DOMINIO.es
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Una vez realizados los cambios, se guarda con Ctrl+O y se cierra con Ctrl+X.
Habilitamos el sitio web: sudo a2ensite DOMINIO.es
Deshabilitamos el sitio web por defecto: sudo a2dissite 000-default
Recargamos la configuración de Apache: sudo systemctl reload apache2
Se crea un archivo de index para la página web que hemos creado para probar
que la web funciona correctamente: nano /var/www/DOMINIO.es/index.html
Se actualiza la prioridad para que los archivos .php sean más prioritarios que
cualquier otro tipo de archivo, para ello, escribimos:
sudo nano /etc/apache2/mods-enabled/dir.conf
Para crear el archivo WordPress, debemos, en primer lugar, crear una base de datos con
MySQL. Para ello, accedemos al CMD e introducimos:
sudo mysql -h localhost -u root -p
Se pueden descargar e instalar las extensiones más comunes de PHP para nuestro
WordPress:
<Directory /var/www/DOMINIO.es/>
AllowOverride All
</Directory>
Reiniciamos Apache para que se guarden los cambios: sudo systemctl restart apache2
Descarga de WordPress
Procedemos con la descarga de WordPress, para ello, abrimos la carpeta de nuestro sitio
web: cd /var/www/DOMINIO.es/
Designamos el método para que no sea necesario el uso de ningún servidor FTP
a la hora de crear los ficheros de WordPress.
En primer lugar, configuramos los parámetros para poder habilitar el uso de HTTPS,
utilizaremos para ello la siguiente línea de comandos:
sudo nano /etc/apache2/conf-available/ssl-params.conf
SSLCipherSuite
ECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off
Copiamos el archivo de configuración original de nuestra página web y lo modulamos
de forma que también sea compatible con HTTPS. Para poder llevar a cabo esto,
utilizaremos el siguiente comando:
sudo cp /etc/apache2/sites-available/DOMINIO.es.conf /etc/apache2/sites-
available/DOMINIO.es-secure.conf
<VirtualHost *:443>
ServerName DOMINIO.es
ServerAlias www.DOMINIO.es
ServerAdmin admin@DOMINIO.es
DocumentRoot /var/www/DOMINIO.es
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/DOMINIO-server.crt
SSLCertificateKeyFile /etc/ssl/private/DOMINIO-server.key
<Directory /var/www/DOMINIO.es>
AllowOverride All
</Directory>
</VirtualHost>
Vamos a proceder a redireccionar todas las solicitudes de conexión a la web que pasen
por el puerto 80 (HTTP) y que, automáticamente, lo hagan a través del 443 (HTTPS),
de forma obligatoria. Utilizaremos, para ello, el siguiente comando:
sudo nano /etc/apache2/sites-available/DOMINIO.es.conf
Donde tendremos que añadir la siguiente línea:
Redirect permanent “/” “https://DOMINIO.es/”
Habilitar los cambios en Apache
A continuación, procedemos a habilitar todos los cambios para que podamos utilizar el
protocolo HTTPS en nuestro dominio. Escribiremos las siguientes líneas de código:
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite DOMINIO.es-secure.conf
sudo a2enconf ssl-params
sudo apache2ctl configtest
sudo systemctl restart apache2
Deshabilitar Apache
Una vez detenido el servicio, actualizamos los repositorios para poder instalar Nginx:
sudo apt update e instalamos, a continuación, Nginx: sudo apt install nginx.
Habilitamos el firewall para que permita el uso de Nginx: sudo ufw allow in “Nginx
Full”
Instalamos la extensión php7.4-fpm para que Nginx pueda trabajar con código en PHP:
sudo apt install php7.4-fpm
Procedemos a configurar nuestro dominio de Nginx:
Cambiamos el directorio: cd /etc/nginx/sites-available/
Creamos el siguiente fichero de configuración: sudo nano DOMINIO.es-
secure
Introducimos la contraseña.
Añadimos lo siguiente:
server {
listen 80;
listen [::]:80;
root /var/www/DOMINIO.es;
index index.php index.html;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.pho$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Habilitamos el sitio web:
sudo ln -s /etc/nginx/sites-available/DOMINIO.es-secure /etc/nginx/sites-enabled/
Configuración de HTTPS
Para configurar nuestro dominio con el protocolo HTTPS, debemos hacer lo siguiente:
Creamos un nuevo archivo en /etc/nginx/sites-available/ con el fin de
redireccionar al usuario al sitio web, utilizando el protocolo HTTPS: sudo
nano /etc/nginx/sites-available/DOMINIO.es
server {
listen 80;
listen [::]:80;
root /var/www/DOMINIO.es;
index index.php index.html;
ssl_certificate /etc/ssl/certs/DOMINIO.es-server.crt;
ssl_certificate_key /etc/ssl/private/DOMINIO.es-server.key;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Habilitamos el nuevo archivo de configuración que hemos creado para el sitio web:
sudo ln -s /etc/nginx/sites-available/DOMINIO.es /etc/nginx/sites-enabled/
Reiniciamos el servicio de Nginx para que se guarden todos los cambios producidos y
se puedan aplicar: sudo systemctl reload nginx.service