Cómo instalar NextCloud en Debian 10

NextCloud es un servidor de alojamiento y compartición de archivos gratuito y de código abierto bifurcado del proyecto ownCloud. Es muy similar a otros servicios para compartir archivos como Google Drive, Dropbox e iCloud. NextCloud te permite almacenar archivos, documentos, imágenes, películas y vídeos desde una ubicación central. Con NextCloud, puedes compartir archivos, contactos y cualquier otro medio con tus amigos y clientes. NextCloud se integra con el correo, el calendario, los contactos y otras funciones que ayudarán a tus equipos a realizar su trabajo con mayor rapidez y facilidad. Puedes instalar el cliente NextCloud en un equipo de escritorio para sincronizar los archivos con tu servidor Nextcloud. Los clientes de escritorio están disponibles para la mayoría de los sistemas operativos, como Windows, macOS, FreeBSD y Linux.

En este tutorial, explicaremos cómo instalar NextCloud y asegurarlo con Let’s Encrypt SSL en Debian 10.

Requisitos previos

  • Un servidor con Debian 10.
  • Un nombre de dominio válido que apunte con la IP de tu servidor. en este tutorial, utilizaremos el dominio nextcloud.example.com.
  • Una contraseña de root configurada en tu servidor.

Instala Apache, MariaDB y PHP

NextCloud se ejecuta en el servidor web, escrito en PHP y utiliza MariaDB para almacenar sus datos. Así que tendrás que instalar Apache, MariaDB, PHP y otros paquetes necesarios en tu sistema. Puedes instalarlos todos ejecutando el siguiente comando:

apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y

Una vez instalados todos los paquetes, abre el archivo php.ini y modifica algunos ajustes recomendados:

nano /etc/php/7.3/apache2/php.ini

Cambia los siguientes ajustes:

memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300
date.timezone = Asia/Kolkata

Guarda y cierra el archivo cuando hayas terminado. A continuación, inicia el servicio de Apache y MariaDB y permite que se inicien tras el reinicio del sistema con el siguiente comando:

systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar la base de datos para NextCloud

A continuación, tendrás que crear una base de datos y un usuario de base de datos para NextCloud. Para ello, entra en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporciona tu contraseña de root cuando te la pidan y luego crea una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE nextclouddb;
MariaDB [(none)]> CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la nextclouddb con el siguiente comando:

MariaDB [(none)]> GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';

A continuación, elimina los privilegios y sal del intérprete de comandos de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Descarga NextCloud

Primero, visita la página de descarga de NextCloud y descarga la última versión de NextCloud en tu sistema. En el momento de escribir este artículo, la última versión de NextCloud es la 17.0.1. Puedes descargarla con el siguiente comando:

wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip

Una vez completada la descarga, descomprime el archivo descargado con el siguiente comando:

unzip nextcloud-17.0.1.zip

A continuación, mueve el directorio extraído al directorio raíz de la web de Apache:

mv nextcloud /var/www/html/

A continuación, da los permisos adecuados al directorio nextcloud con el siguiente comando:

chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Apache para NextCloud

A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para servir a NextCloud. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/nextcloud.conf

Añade las siguientes líneas:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/nextcloud/
     ServerName nextcloud.example.com

     Alias /nextcloud "/var/www/html/nextcloud/"

     <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Guarda y cierra el archivo cuando hayas terminado. A continuación, habilita el archivo de host virtual de Apache y otros módulos necesarios mediante los siguientes comandos:

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Por último, reinicia el servicio Apache para aplicar la nueva configuración:

systemctl restart apache2

Asegura NextCloud con Let’s Encrypt Free SSL

Ahora NextCloud está instalado y configurado. A continuación, se recomienda asegurarlo con Let’s Encrypt free SSL. Para ello, instala primero el cliente Certbot con el siguiente comando:

apt-get install python-certbot-apache -y

Una vez instalado, puedes ejecutar el siguiente comando para instalar el certificado Let’s Encrypt para tu dominio nextcloud.example.com.

certbot --apache -d nextcloud.example.com

Durante la instalación, se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

A continuación, escribe 2 y pulsa Intro para descargar e instalar un certificado SSL gratuito para tu dominio. Una vez que la instalación se haya completado con éxito. Deberías obtener la siguiente salida:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/
nextcloud-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://nextcloud.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a la interfaz web de NextCloud

Tu NextCloud está ahora configurado y protegido con Let’s Encrypt SSL. A continuación, abre tu navegador web y escribe la URL https://nextcloud.example.com. Serás redirigido a la siguiente página:

SiguienteInicio de sesión en la nube

Configurar la base de datos

Ahora, proporciona tu nombre de usuario y contraseña de administrador, la carpeta de datos, las credenciales correctas de la base de datos y haz clic en el botón Finalizar la configuración. Serás redirigido al panel de control de NextCloud en la siguiente página:

SiguienteTablero de la nube

Eso es todo por ahora.

Conclusión

Enhorabuena! has instalado y asegurado con éxito NextCloud con Let’s Encrypt Free SSL en Debian 10. Ahora puedes compartir fácilmente archivos, documentos y medios con otros usuarios utilizando la interfaz web de NextCloud.

También te podría gustar...