Cómo instalar Nextcloud 15 en Debian 9
NextCloud es un código abierto gratuito y una alternativa a otra solución de alojamiento de archivos de código abierto OwnCloud. La principal diferencia entre NextCloud y OwnCloud es que NextCloud es completamente de código abierto. NextCloud es un servidor de aplicaciones para compartir archivos autohospedado que le permite almacenar sus contactos, imágenes y documentos personales desde una ubicación centralizada. NextCloud elimina la necesidad de utilizar un software de alojamiento en la nube de terceros como Dropbox para almacenar sus documentos.
NextCloud viene con muchas características, algunas de ellas se enumeran a continuación:
- Permítanos administrar usuarios y grupos usando OpenID o LDAP.
- Permítanos acceder, sincronizar y compartir sus datos existentes en Dropbox, FTP y NAS.
- Enumere los navegadores/dispositivos conectados en la página de configuración personal. Permite al usuario desconectar navegadores/dispositivos.
- Admite el sistema de complementos de autenticación de dos factores.
- Permitirnos compartir archivos con otros usuarios, crear y enviar enlaces públicos protegidos con contraseña.
- Notificarle por teléfono y escritorio cuando alguien en el servidor comparta archivos directamente con usted.
- Admite capacidades de monitoreo, búsqueda de texto completo, autenticación Kerberos y conferencias de audio/video.
- Sincronice archivos con el servidor Nextcloud desde clientes de escritorio y clientes móviles.
En este tutorial, explicaremos cómo instalar y configurar NextCloud en Debian 9 y asegurarlo con un certificado SSL Let’s encrypt gratuito.
Requisitos
- Un servidor que ejecuta Debian 9 en su sistema.
- Una configuración de dirección IP estática en su sistema.
- Configuración de la contraseña de root en su sistema.
- El nombre de dominio o subdominio que desea usar para Nextcloud debe apuntar a la dirección IP para poder usarlo para Nextcloud y obtener un certificado Let’s encrypt SSL gratuito.
Empezando
Primero, inicie sesión en su servidor como usuario root. Comencemos por actualizar su sistema con la última versión estable. Puede hacer esto ejecutando el siguiente comando:
apt-get update -y apt-get upgrade -y
Después de actualizar el sistema, reinicie su sistema para aplicar estos cambios:
reboot
A continuación, inicie sesión con el usuario raíz y continúe con el siguiente paso.
1 Instalación del servidor LAMP
NextCloud se ejecuta con Apache, MySQL y PHP. Por lo tanto, deberá instalar todos estos componentes en su sistema.
Primero, instale el servidor Apache y MariaDB con el siguiente comando:
apt-get install apache2 mariadb-server apt-transport-https -y
Una vez que se complete la instalación, inicie el servicio Apache y MariaDB y habilítelos para que se inicien en el momento del arranque ejecutando el siguiente comando:
systemctl start apache2 systemctl enable apache2 systemctl start mariadb systemctl enable mariadb
A continuación, también deberá instalar PHP y otros módulos necesarios en su sistema. Instalaré una versión PHP 7.2 reciente del Repositorio de Ondrej.
Agregue el repositorio Ondrej Debian:
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/ondrej.list apt-get update
Puede instalarlos todos ejecutando el siguiente comando:
apt-get install libapache2-mod-php php7.2 php7.2-xml php7.2-curl php7.2-gd php7.2 php7.2-cgi php7.2-cli php7.2-zip php7.2-mysql php7.2-mbstring wget unzip -y
Después de instalar todos los paquetes, abra el archivo php.ini y realice algunos cambios en su interior.
sudo nano /etc/php/7.2/apache2/php.ini
Realice los siguientes cambios:
memory_limit = 512M upload_max_filesize = 200M max_execution_time = 360 post_max_size = 200M date.timezone = Europe/Berlin
2 Configurar MariaDB
Por defecto, la instalación de MariaDB no es segura, por lo que deberá protegerla. Puede hacer esto ejecutando el siguiente comando:
mysql_secure_installation
Responda todas las preguntas de la siguiente manera:
# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Una vez que MariaDB esté protegido, inicie sesión en la consola de MariaDB con el siguiente comando:
mysql -u root -p
Ingrese su contraseña de root cuando se le solicite, luego cree una base de datos para Nextcloud:
CREATE DATABASE nextclouddb;
A continuación, cree un nombre de usuario y una contraseña para Nextcloud con el siguiente comando:
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'mypassword';
Reemplace ‘mypassword’ con su propia contraseña segura. A continuación, otorgue privilegios a la base de datos de Nextcloud con el siguiente comando:
GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';
A continuación, ejecute el comando FLUSH PRIVILEGES para que MariaDB vuelva a cargar la tabla de privilegios:
FLUSH PRIVILEGES;
Finalmente, salga del shell de MariaDB con el siguiente comando:
quit
Una vez que su base de datos esté configurada correctamente, puede continuar con el siguiente paso.
3 Instalar NextCloud
Usaré el instalador web de Nextcloud para una fácil instalación. Primero, tendremos que crear un directorio para la instalación de Nextcloud:
mkdir /var/www/nextcloud chown www-data:www-data /var/www/nextcloud chmod 750 /var/www/nextcloud
Y un directorio de datos donde Nextcloud almacenará sus archivos cargados.
mkdir -p /var/nextcloud/data chown www-data:www-data /var/nextcloud/data chmod 750 /var/nextcloud/data
A continuación, deberá crear un archivo de host virtual apache para NextCloud. Puede hacer esto creando el archivo nextcloud.conf de la siguiente manera:
nano /etc/apache2/sites-available/nextcloud.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/nextcloud" ServerName example.com <Directory "/var/www/nextcloud/"> Options MultiViews FollowSymlinks AllowOverride All Order allow,deny Allow from all </Directory> TransferLog /var/log/apache2/nextcloud_access.log ErrorLog /var/log/apache2/nextcloud_error.log </VirtualHost>
Reemplace el nombre de dominio ejemplo.com con su nombre de dominio deseado. Guarde y cierre el archivo, luego habilite el archivo de host virtual de NextCloud y deshabilite el archivo de host virtual predeterminado con el siguiente comando:
a2dissite 000-default a2ensite nextcloud
Para habilitar SSL con Let’s encrypt, instalaremos el cliente certbot de Let’s encrypt.
apt-get install certbot python3-certbot-apache -y
Y habilite el módulo Apache SSL con el comando:
a2enmod ssl
Finalmente, reinicie el servicio de apache para aplicar estos cambios:
systemctl restart apache2
Ahora podemos solicitar un certificado SSL gratuito de let’s encrypt y dejar que el programa certbot configure apache vhost para SSL. Tenga en cuenta que su nombre de dominio de Internet debe ser accesible desde Internet y apuntar a su servidor que ya tiene un registro A de DNS para usar Let’s encrypt. Ejecute el comando certbot para solicitar el nuevo certificado SSL:
certbot -d example.com --apache --agree-tos -m [email protected]
Reemplace example.com con el nombre de dominio o subdominio de su servidor Nextcloud (vhost).
Elija aquí si desea compartir su dirección de correo electrónico con la EFF. Personalmente, no me gusta compartir mi correo electrónico, así que elegí ‘N’ aquí.
Si se debe acceder al servidor de Nextcloud solo mediante HTTPS (lo cual se recomienda por razones de seguridad), seleccione ‘2’ aquí. Cuando desee poder acceder a Nextcloud con HTTP y HTTPS, elija ‘1’.
El certificado SSL gratuito Let’s encrypt se ha emitido con éxito.
Descargue el instalador web de Nextcloud en el directorio raíz del sitio web y configure los permisos apropiados para el archivo descargado.
cd /var/www/nextcloud wget https://download.nextcloud.com/server/installer/setup-nextcloud.php chown www-data:www-data setup-nextcloud.php
4 Acceder a la interfaz web de NextCloud
Una vez que todo esté configurado correctamente, deberá permitir el puerto 80 a través del firewall UFW.
Para hacerlo, primero instale ufw con el siguiente comando:
apt-get install ufw -y
A continuación, habilite el puerto 80 y 443 a través de UFW y también el puerto 22 SSH con el siguiente comando:
ufw allow 80 ufw allow 443 ufw allow 22
Abra más puertos en el cortafuegos si los necesita. Luego habilite el Firewall:
ufw enable
Elija ‘y’ cuando el comando le pregunte si se debe habilitar el Firewall.
Finalmente, abra su navegador web y navegue hasta la URL:
https://ejemplo.com/setup-nextcloud.php
Reemplace example.com con su propio nombre de dominio. Debería ver la siguiente pantalla:
Reemplace la palabra ‘nextcloud’ con un punto (.) en el campo de entrada, ya que queremos instalar nextcloud en el directorio actual y presione el botón ‘Siguiente’.
El primer paso de instalación se completó con éxito. Haga clic en ‘Siguiente’ para continuar.
Ingrese el nombre de usuario y la contraseña deseados para el usuario administrador de Nextcloud y establezca la ruta de datos en ‘/var/nextcloud/data’.
Proporcione toda la información requerida, como el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos, luego haga clic en el Finalizar configuración botón. Debería ver el panel de NextCloud en la siguiente pantalla:
5 Configurar el cliente de NextCloud
Aquí, instalaremos el cliente NextCloud en Ubuntu Desktop y lo conectaremos al servidor NextCloud.
Para instalar el cliente de NextCloud, deberá agregar el repositorio de NextCloud a su sistema. Puede hacer esto ejecutando el siguiente comando:
add-apt-repository ppa:nextcloud-devs/client
apt-get update -y apt-get install nextcloud-client -y
Una vez que el cliente NextCloud esté instalado, inícielo desde su Ubuntu Dash, debería ver la siguiente pantalla:
Aquí, proporcione la dirección de su servidor y haga clic en el próximo botón, debería ver la siguiente pantalla:
Proporcione su credencial de servidor NextCloude y haga clic en el próximo botón, debería ver la siguiente pantalla:
Ahora, haga clic en Conectar botón, debería ver la siguiente pantalla:
Aquí, haga clic en Carpeta localdebería ver la siguiente pantalla:
¡Felicidades! su servidor y cliente NextCloud están instalados y configurados. Ahora puede sincronizar fácilmente sus datos desde su cliente local de NextCloud al servidor de NextCloud.