Solo para visitantes de nuestro blog Obtenga 3 meses adicionales gratis + 10% de descuento en el plan trianual YSBLOG10
Agarra el trato

Instalar NextCloud desde la línea de comandos en 2026

Para instalar Nextcloud desde la línea de comandos, prepare una pila LEMP o LAMP, cree una base de datos, descargue la versión de Nextcloud, configure su servidor web y TLS, luego ejecute el comando no interactivo “occ maintenance:install”.

Finalmente, habilite cron, el almacenamiento en caché de Redis y la configuración de seguridad. Los pasos a continuación cubren Ubuntu/Debian (Nginx/Apache), Snap y opciones de Docker. Si desea una nube privada y autogestionada, instalar Nextcloud desde la línea de comandos es el método más rápido y controlable.

Esta guía muestra cómo instalar NextCloud desde la línea de comandos en Ubuntu/Debian usando Nginx (LEMP) o Apache (LAMP), además de alternativas rápidas con Snap y Docker, totalmente optimizadas, seguras y listas para producción.


Lo que necesitarás (prerrequisitos)

Antes de comenzar, asegúrese de que se cumplan los siguientes requisitos:

  • Un servidor nuevo Ubuntu 22.04/24.04 o Debian 12 (VPS o dedicado)
  • Acceso sudo o root vía SSH
  • Un dominio (por ejemplo, cloud.example.com) con DNS Registros A/AAAA que apuntan a su servidor
  • Puertos abiertos: 80 (HTTP) y 443 (HTTPS)
  • Al menos 2 GB RAM (Se recomiendan 4 GB o más para equipos grandes), almacenamiento SSD
  • Hora sincronizada (systemd-timesyncd o chrony)

Consejo: Para un rendimiento fiable, un VPS con v dedicadoCPU y la unidad SSD NVMe ayuda. YouStableLos planes VPS SSD de proporcionan recursos estables y plantillas de sistema operativo sencillas, ideales para Nextcloud.

Rutas de instalación rápida (elija su método)

  • LEMP (Nginx + PHP-FPM + MariaDB/PostgreSQL): Máximo rendimiento, endurecimiento flexible.
  • LÁMPARA (Apache + PHP + MariaDB/PostgreSQL): Más sencillo para Apache usuarios
  • Paquete Snap: Todo en uno rápido, se necesita un ajuste mínimo
  • Docker/Compose: Implementaciones portátiles y reproducibles

A continuación, profundizamos en LEMP en Ubuntu/Debian y luego mostramos... ApacheVariantes de , Snap y Docker.


Instalar Nextcloud desde la línea de comandos (Ubuntu/Debian, Nginx) – Paso a paso

1) Actualizar el sistema e instalar los paquetes principales

sudo apt update && sudo apt -y upgrade
sudo apt -y install nginx mariadb-server redis-server unzip wget curl gnupg2 ufw software-properties-common
sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full"
sudo ufw enable

2) Instalar PHP-FPM y extensiones requeridas

sudo apt -y install php-fpm php-cli php-mysql php-gd php-curl php-xml php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-apcu php-redis php-ldap

Asegúrese de que PHP-FPM se está ejecutando y observe la ruta del socket, por ejemplo, /run/php/php8.2-fpm.sock.

3) Asegure MariaDB y cree la base de datos de Nextcloud

sudo mysql_secure_installation
sudo mysql -u root -p
# Inside the MariaDB shell:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'ncuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Como alternativa, puede usar PostgreSQL para una mayor escalabilidad. El instalador "occ" es compatible con ambos.

4) Descargue y verifique Nextcloud

wget https://download.nextcloud.com/server/releases/latest.zip
wget https://download.nextcloud.com/server/releases/latest.zip.asc
wget https://nextcloud.com/nextcloud.asc
gpg --import nextcloud.asc
gpg --verify latest.zip.asc latest.zip  # verify signature (recommended)
unzip latest.zip
sudo mv nextcloud /var/www/nextcloud
sudo mkdir -p /var/www/nextcloud-data
sudo chown -R www-data:www-data /var/www/nextcloud /var/www/nextcloud-data
sudo find /var/www/nextcloud/ -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud/ -type f -exec chmod 640 {} \;

5) Configurar Nginx bloque de servidor

sudo nano /etc/nginx/sites-available/nextcloud
server {
    listen 80;
    server_name cloud.example.com;
    root /var/www/nextcloud;
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-XSS-Protection "1; mode=block";
    add_header Referrer-Policy no-referrer;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    index index.php index.html /index.php$request_uri;

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

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; }

    location / {
        try_files $uri $uri/ /index.php$request_uri;
    }

    location ~ \.php(?:$|/) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
        try_files $uri /index.php$request_uri;
        add_header Cache-Control "public, max-age=15778463";
        access_log off;
    }

    location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
        try_files $uri /index.php$request_uri;
        access_log off;
    }
}
sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
sudo nginx -t && sudo systemctl reload nginx

6) Obtén una cuenta de Let's Encrypt. SSL certificado

sudo apt -y install certbot python3-certbot-nginx
sudo certbot --nginx -d cloud.example.com --redirect --agree-tos -m admin@example.com -n
sudo systemctl reload nginx

Esto agrega HTTPS con redirecciones automáticas y temporizadores de renovación.

7) Ejecute el instalador no interactivo de Nextcloud (occ)

sudo -u www-data php /var/www/nextcloud/occ maintenance:install \
  --database "mysql" \
  --database-name "nextcloud" \
  --database-user "ncuser" \
  --database-pass "StrongPasswordHere" \
  --admin-user "ncadmin" \
  --admin-pass "AnotherStrongPassword" \
  --data-dir "/var/www/nextcloud-data"

Para PostgreSQL, utilice “–database pgsql” y proporcione un usuario y una base de datos de PostgreSQL.

8) Habilite el almacenamiento en caché, los dominios confiables y la configuración de seguridad

# Set the trusted domain and URL
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=cloud.example.com
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwrite.cli.url --value=https://cloud.example.com

# Enable APCu (local cache) and Redis (file locking/memcache)
sudo -u www-data php /var/www/nextcloud/occ config:system:set memcache.local --value='\OC\Memcache\APCu'
sudo -u www-data php /var/www/nextcloud/occ config:system:set memcache.locking --value='\OC\Memcache\Redis'
sudo -u www-data php /var/www/nextcloud/occ config:system:set redis --value='{"host":"127.0.0.1","port":6379}' --type=json

# Set recommended defaults
sudo -u www-data php /var/www/nextcloud/occ background:cron
sudo -u www-data php /var/www/nextcloud/occ config:system:set default_phone_region --value=US
sudo -u www-data php /var/www/nextcloud/occ config:system:set logtimezone --value=UTC

9) Configurar cron para trabajos en segundo plano

sudo crontab -u www-data -e
*/5 * * * * php -f /var/www/nextcloud/cron.php >/dev/null 2>&1

Los trabajos en segundo plano manejan vistas previas, limpiezas y tareas de federación de manera eficiente.

10) Verificar la instalación

sudo -u www-data php /var/www/nextcloud/occ status
sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Abra https://cloud.example.com en su navegador. Debería ver el inicio de sesión de Nextcloud.

Apache Variante (LAMP) en resumen

Utilice Apache? Reemplazar Nginx pasos con los siguientes elementos esenciales.

sudo apt -y install apache2 libapache2-mod-php
sudo a2enmod rewrite headers env dir mime ssl http2 proxy_fcgi setenvif
sudo a2dismod php*   # use PHP-FPM with Apache for performance
sudo a2enconf php8.2-fpm
sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
  ServerName cloud.example.com
  DocumentRoot /var/www/nextcloud

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>

  <FilesMatch "\.php$">
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
  </FilesMatch>

  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  ErrorLog ${APACHE_LOG_DIR}/nextcloud-error.log
  CustomLog ${APACHE_LOG_DIR}/nextcloud-access.log combined
</VirtualHost>
sudo a2ensite nextcloud
sudo a2dissite 000-default
sudo systemctl reload apache2
sudo apt -y install certbot python3-certbot-apache
sudo certbot --apache -d cloud.example.com --redirect -m admin@example.com --agree-tos -n

Luego ejecute los mismos comandos “occ maintenance:install” y de endurecimiento que se mostraron anteriormente.


Opcional: Snap o Docker desde la línea de comandos

Snap (instalación de nodo único más rápida)

sudo apt -y install snapd
sudo snap install core
sudo snap install nextcloud
# Create admin:
sudo nextcloud.manual-install ncadmin "AnotherStrongPassword"
# Add domain and TLS:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=cloud.example.com
sudo nextcloud.enable-https lets-encrypt

Docker Compose (portátil)

mkdir -p ~/nextcloud && cd ~/nextcloud
nano docker-compose.yml
services:
  db:
    image: mariadb:11
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=RootPass
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=ncuser
      - MYSQL_PASSWORD=StrongPasswordHere
    volumes:
      - db:/var/lib/mysql

  redis:
    image: redis:7-alpine
    restart: unless-stopped

  app:
    image: nextcloud:latest
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - db
      - redis
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=ncuser
      - MYSQL_PASSWORD=StrongPasswordHere
    volumes:
      - nextcloud:/var/www/html
    links:
      - redis

volumes:
  db:
  nextcloud:
docker compose up -d
# Access via http://server-ip:8080 and finalize setup. Add a proper reverse proxy and TLS (e.g., Caddy/Traefik/Nginx) for production.

Ajuste y fortalecimiento del rendimiento

PHP y límites de carga

sudo nano /etc/php/8.2/fpm/php.ini
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
expose_php = Off
sudo systemctl restart php8.2-fpm

Nginx Encabezados de seguridad y HSTS

Agregue o confirme estos en su bloque de servidor para obtener mejor seguridad y control de almacenamiento en caché.

add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy no-referrer;

Conceptos básicos de bases de datos

  • Utilice utf8mb4 para compatibilidad total con Unicode
  • Ejecute mysql_secure_installation y limite el acceso root remoto
  • Programar copias de seguridad (volcado lógico + copia externa)

Copias de seguridad y actualizaciones

# Files backup (example)
rsync -Aax /var/www/nextcloud/ /backup/nextcloud-app/
rsync -Aax /var/www/nextcloud-data/ /backup/nextcloud-data/

# MariaDB backup
mysqldump -u root -p nextcloud > /backup/nextcloud_$(date +%F).sql

Pruebe los procedimientos de restauración con regularidad. Mantenga el sistema operativo y PHP Paquetes actualizados.


Errores comunes y correcciones desde la CLI

  • 403 o 404 después de la instalación: Comprobar Nginx/Apache Ruta raíz del vhost y reglas try_files.
  • El tamaño de carga del archivo es demasiado pequeño: Aumenta upload_max_filesize y post_max_size, recarga PHP/Nginx.
  • “No se puede escribir en el directorio de configuración”: Corregir la propiedad de los datos www y corregir los permisos.
  • Trabajos en segundo plano que no se ejecutan: Asegúrese de que crontab para los datos www esté configurado para ejecutarse cada 5 minutos.
  • Redis no se utiliza: Confirme que php redis esté instalado y que la configuración de Redis esté establecida a través de occ.
  • SELinux (basado en RHEL): Establecer contextos adecuados o temporalmente permisivos para la prueba.

Actualice Nextcloud de forma segura desde la línea de comandos

  • Crear copias de seguridad de aplicaciones, datos y bases de datos
  • Poner Nextcloud en modo de mantenimiento
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
sudo -u www-data php /var/www/nextcloud/occ upgrade
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Para actualizaciones importantes, lea el registro de cambios oficial y actualice paso a paso en las versiones compatibles.

¿Por qué alojar Nextcloud en? YouStable

  • VPS con respaldo SSD o NVMe con v dedicadoCPU para mas rapido PHP y rendimiento de la base de datos
  • Fácil IPv4, centros de datos modernos y plantillas de sistema operativo rápidas (Ubuntu/Debian)
  • Soporte experto 24×7 que comprende el alojamiento web, WordPress y plataformas autoalojadas como Nextcloud

Si desea un rendimiento predecible y un escalamiento simple, YouStableServidores VPS y dedicados de Son una excelente opción para implementaciones de Nextcloud de cualquier tamaño.


Preguntas Frecuentes

1. Es Nginx or Apache ¿Mejor para una instalación de Nextcloud mediante CLI?

Ambos funcionan bien. Nginx con PHP-FPM suele ofrecer un mejor uso de los recursos y un mejor rendimiento, mientras que Apache puede ser más sencillo de configurar para algunos administradores. Para instancias grandes, Nginx + PHP-FPM + Redis es una opción popular.

2. ¿Cuáles son los mínimos? PHP ¿Módulos para Nextcloud?

Como mínimo: php-fpm, php-cli, php-mysql o php-pgsql, php-xml, php-zip, php-gd, php-curl, php-mbstring, php-intl. Para un mejor almacenamiento en caché y bloqueo de archivos, añada php-apcu y php-redis, y php-imagick para las vistas previas.

3. ¿Cómo habilito HTTPS durante una instalación desde la línea de comandos?

Utilice Certbot con el Nginx or Apache Plugin para emitir certificados Let's Encrypt, que luego configura automáticamente las redirecciones y la renovación. Ejemplo: “certbot –nginx -d cloud.example.com –redirect -n”. Para Docker, finalice TLS en su proxy inverso.

4. ¿Puedo instalar Nextcloud con PostgreSQL desde la CLI?

Sí. Instale PostgreSQL, cree una base de datos y un usuario, y luego ejecute el instalador con “–database pgsql” y las credenciales correctas. Muchas implementaciones grandes prefieren PostgreSQL por su concurrencia y estabilidad.

5. ¿Cuál es la forma más rápida de implementar Nextcloud para realizar pruebas?

Snap es el método de nodo único más rápido. Ejecute “snap install nextcloud”, configure el usuario administrador y habilite Let's Encrypt. Para una portabilidad de nivel de producción, Docker con un proxy inverso (Caddy/Traefik/Nginx) también es rápido y reproducible.
Con estos pasos, puede instalar NextCloud desde la línea de comandos con confianza, optimizar el rendimiento y reforzar la seguridad desde el primer día. A medida que su almacenamiento y usuarios crezcan, considere escalar. YouStable VPS or servidor dedicado para un rendimiento consistente y confiable.

Compartir via:

Sanjeet Chauhan

Sanjeet Chauhan es bloguero y experto en SEO, dedicado a ayudar a los sitios web a crecer orgánicamente. Comparte estrategias prácticas, consejos prácticos y conocimientos para impulsar el tráfico, mejorar el posicionamiento y maximizar la presencia online.

Deja Tu Comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Ir al Inicio