Post

Nextcloud en Ubuntu Server

Aprende a asignar una IP privada fija en Linux de manera fácil y segura.

Nextcloud en Ubuntu Server

Configurar una IP privada fija en Linux permite que tu servidor o equipo tenga siempre la misma dirección en la red local, facilitando el acceso remoto, la gestión de servicios y la asignación de reglas en routers o firewalls.

1. Instalar NGINX

En este caso usaremos el servidor web NGINX

1
sudo apt update && sudo apt upgrade -y
1
sudo apt install nginx -y

2. Descargar Nextcloud y descomprimir

Primero, dirígete al directorio /tmp para descargar los archivos de instalación de Nextcloud:

1
cd /tmp

Una ven en el directorio descarga la ultima versión

1
curl --output nextcloud-latest.zip https://download.nextcloud.com/server/releases/latest.zip

Extrae el archivo, mueve la carpeta a /var/www/nombre_dominio (que actúa como directorio raíz), elimina el .zip y establece los permisos de los archivos.

1
unzip nextcloud-latest.zip && sudo mv nextcloud /var/www/nombre_dominio && sudo rm -rf nextcloud-latest.zip && sudo chown -R www-data:www-data /var/www/nombre_dominio

Buenas practicas:
Una buena práctica es nombrar el directorio raíz donde se alojará una página web o aplicación web con el mismo nombre que el dominio correspondiente.

3. Instalar y Configurar MariaDB

En este caso usaremos la base de datos MariaDB

1
sudo apt install -y mariadb-server mariadb-client

3.1 Iniciar y habilitar el servicio

1
2
sudo systemctl enable mariadb
sudo systemctl start mariadb

3.2 Asegurar la instalación

1
sudo mysql_secure_installation

Pasos importantes:

  • Configurar contraseña de root
  • Activar Switch Unix Socket -> [Y]
  • Cambiar la contraseña de root -> [N]
  • Eliminar usuarios anónimos -> [Y]
  • Prohibir que root se conecte desde cualquier IP -> [Y]
  • Eliminar BD de prueba -> [Y]
  • Aplicar cambios -> [Y]

3.3 Crear la BD

Inicia sesión como usuario root en la base de datos:

1
sudo mysql -u root -p

Crea la BD de Nextcloud:

1
CREATE DATABASE nombre_bd;

Crea un usuario para que administre la BD:

1
CREATE USER 'nombre_usuario'@'localhost' identified BY 'contrasena_usuario';

Otorga todos los permisos de la base de datos al usuario:

1
GRANT ALL PRIVILEGES ON nombre_bd.* TO 'nombre_usuario'@'localhost';

Actualiza los permisos:

1
FLUSH PRIVILEGES;

Sal de la consola:

1
EXIT;

4. Instalar y Configurar PHP

Nextcloud requiere PHP con ciertas extensiones y ajustes específicos para funcionar correctamente:

Ubuntu no siempre incluye PHP 8.4 (Versión de PHP que usaremos) en sus repositorios por defecto, así que usamos el PPA mantenido por Ondřej Surý.

1
sudo apt install -y software-properties-common ca-certificates lsb-release && sudo add-apt-repository ppa:ondrej/php && sudo apt update && sudo apt upgrade -y
1
2
3
4
5
sudo apt install -y \
php8.4 php8.4-fpm php8.4-cli \
php8.4-mysql php8.4-curl php8.4-gd php8.4-mbstring \
php8.4-intl php8.4-xml php8.4-zip php8.4-bcmath php8.4-gmp \
php8.4-opcache php8.4-imagick

Editar el php.ini de PHP‑FPM (ajusta la versión si es diferente):

1
sudo nano /etc/php/8.4/fpm/php.ini

Modifica o añade los siguientes valores:

1
2
3
4
5
6
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 360
max_input_vars = 5000
date.timezone = Europe/Madrid

Después de cambiar configuraciones, reinicia PHP y NGINX

1
sudo systemctl restart php8.4-fpm && sudo systemctl restart nginx

Ver la versión y extensiones activas:

php -v
php -m

5. Configurar NGINX

Antes de nada hay que configurar el cortafuegos para permitir las conexiones HTTP y HTTPS, en el caso de que tengas configurado un cortafuegos.

1
sudo ufw allow 'Nginx Full'

Una vez configurado debemos asegurarnos de que no exista ningún archivo de configuración que pueda interferir con la instalación:

1
sudo rm /etc/nginx/sites-enabled/default

Creamos el nuevo archivo de configuración:

1
sudo nano /etc/nginx/sites-available/nombre_dominio.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
server {
    listen 80;
    server_name nombre_dominio ip_privada_fija;

    root /var/www/nombre_dominio;
    index index.php index.html /index.php$request_uri;

    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Seguridad básica
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Frame-Options "SAMEORIGIN";

    # Redirigir todas las rutas a index.php (URLs amigables)
    location / {
        try_files $uri $uri/ /index.php$request_uri;
    }

    # PHP-FPM
    location ~ \.php(?:$|/) {
        include snippets/fastcgi-php.conf;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    }

    # Bloquear archivos ocultos y sensibles
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console|config|lib|3rdparty|templates|data)/ {
        deny all;
    }

    # robots.txt
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Archivos estáticos (CSS, JS, imágenes, fuentes)
    location ~ \.(?:css|js|woff|svg|gif|png|jpg|jpeg)$ {
        try_files $uri /index.php$request_uri;
    }
}

Activar el sitio:

1
sudo ln -s /etc/nginx/sites-available/nombre_dominio.conf /etc/nginx/sites-enabled/

Verificar configuración:

1
sudo nginx -t

Salida esperada:

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciar NGINX

1
sudo systemctl reload nginx

6. Instalar Nextcloud

Si todo se ha configurado correctamente, ahora podrás acceder al panel de Nextcloud desde tu navegador:

  • Usando tu dominio: http://nombre_dominio
  • O, si estás en la misma red local que el servidor, usando la IP privada: http://ip_privada_fija

Al abrirlo, verás la pantalla de instalación de Nextcloud. Solo tendrás que completar los campos solicitados (usuario administrador, base de datos, etc.) y seguir los pasos indicados.

Una vez finalizada la instalación, tu Nextcloud estará totalmente operativo y listo para usar.

7. Recomendaciones extra

Optimizar Nextcloud

Solucionar Avisos de Seguridad y Configuración en Nextcloud

This post is licensed under CC BY 4.0 by the author.