Guía paso a paso para implementar Nextcloud en DreamCompute

Generalidades

Este artículo explica cómo instalar Nextcloud en dos instancias de DreamCompute. Una instancia es para la propia aplicación y la otra instancia para la base de datos que utiliza.

Paso 1 — Agregar un grupo de seguridad

Primero, crea un grupo de seguridad para la instancia de la base de datos. Esto es para que permita TCP en el puerto 3306, el puerto MySQL/MariaDB. Consulta los dos artículos siguientes para obtener más instrucciones:

Paso 2 — Lanzar una instancia

A continuación, inicia dos instancias de Ubuntu 16.04 LTS.

  • La primera instancia será solo para la base de datos.
  • La segunda instancia es para el servidor web en el que se ejecutará NextCloud.

Ve la siguiente categoría de artículos para conocer las diferentes formas de hacer esto:

Al iniciar la instancia de la base de datos, asegúrate de asignar el Grupo de Seguridad que acabas de crear en el paso 1 anterior. Si olvidaste agregarlo mientras creabas la instancia, aún puedes agregarlo más tarde.

Usar una instancia basada en volumen

Se recomienda reiniciar una instancia respaldada por volumen ya que son permanentes en contraposición a los discos efímeros y puede tener un tamaño superior a 80 GB si se almacenan grandes cantidades de datos. Esto se puede hacer en el panel de DreamCompute o con el cliente de línea de comandos de OpenStack.

 

Paso 3 — Instalar MariaDB en la instancia #1

Para instalar MariaDB en tu instancia de base de datos, primero, inicia sesión en la instancia con tu usuario predeterminado y la llave de seguridad:

A continuación, cambia a tu usuario root para que pueda instalar MariaDB:

[user@dbinstance]$ sudo su - 
[root@dbinstance]# 

Como tu usuario root, instala mariadb corriendo:

[root@dbinstance]# apt update
[root@dbinstance]# apt install mariadb-server

Durante la instalación, el usuario raíz de la base de datos se configurará sin contraseña, pero un complemento de autenticación evitará el inicio de sesión de cualquier persona que no sea el usuario raíz del sistema operativo. Se puede establecer una contraseña si se desea.

 

Paso 4 — Configurar MariaDB

Cambiar la dirección de enlace

Editar el archivo 50-server.cnf localizado en /etc/mysql/mariadb.conf.d/50-server.cnf. Mostrará lo siguiente:

[user@dbinstance]$ vim /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address            = 127.0.0.1

Edita esto para cambiar la IP de la base datos de tu instancia.

bind-address            = $IP

donde $IP es la dirección IP de la base de datos de la instancia.

Si tienes una red privada habilitada, esta será la dirección IP privada y no la IP flotante si tu instancia de base de datos tiene una.

Esto hace que la base de datos escuche las conexiones desde su dirección IP en lugar de solo escuchar en 127.0.0.1 (el localhost).

Permitir el inicio de sesión de root desde una dirección IP extranjera

La base de datos ahora escuchará las conexiones de otras instancias, pero debes permitir que los usuarios inicien sesión desde otra dirección IP. Haz esto iniciando sesión en la base de datos como root.

[root@dbinstance]# mysql -u root

Luego corre los siguientes comandos para crear una base de datos llamada 'nextcloud'.

MariaDB [(none)]> create database nextcloud;

En el siguiente comando, cambia $IP a la dirección IP de la segunda instancia que creaste para el servidor web.

No agregues la dirección IP de la instancia de la base de datos, ya que esto provocará que no se conecte.

Asegúrate de dejar las comillas simples alrededor del nombre de usuario, IP y contraseña. Por ejemplo, si tu contraseña es Xhd379s, ingrésala así

  • 'Xhd379s'
MariaDB [(none)]> GRANT ALL ON nextcloud.* TO 'nextclouduser'@'$IP' IDENTIFIED BY '$PASSWORD';

Marca para confirmar que se agregó el usuario:

MariaDB [(none)]> selecciona el usuario de la mysql.db donde db='nextcloud';
+---------------+
| user          |
+---------------+
| nextclouduser |
+---------------+

Elimina todos los privilegios cuando hayas terminado.

MariaDB [(none)]> flush privileges;

Si deseas permitir el inicio de sesión de root desde cualquier dirección IP, puedes cambiar $IP a '%'. Sin embargo, esto no se recomienda, especialmente si la instancia de tu base de datos tiene una dirección IP pública (porque entonces cualquiera puede intentar acceder a ella).

Cierra sesión de la base de datos:

MariaDB [(none)]> quit
Bye

A continuación, reinicia el servicio mariadb para que las nuevas configuraciones se carguen corriendo:

[root@dbinstance]# service mysql restart

Esto completa la instalación de la instancia de la base de datos.

 

Paso 5 — Instalar la aplicación Nextcloud en la instancia #2

Instalar dependencias

Ahora debes implementar la aplicación frontend. Inicia sesión en la segunda instancia que craste. Esta es la instancia en la que instalarás Nextcloud. Una vez que hayas iniciado sesión, cambia de nuevo al shell raíz corriendo:

[user@instance]$ sudo su - 
[root@instance]# 

Luego, corre los siguientes comandos para instalar Nextcloud y sus dependencias.

[root@instance]# apt update
[root@instance]# apt-get install apache2 libapache2-mod-php7.0 unzip
[root@instance]# apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl \
php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

El carácter de barra invertida \ se usa al ingresar un comando largo. Cuando ingresas \, el comando de terminal continúa a la siguiente línea hasta que termine de ingresarlo.

También puedes eliminar el carácter \ y poner cada parámetro en una sola línea.

 

Paso 6 — Descargar Nextcloud

Ahora necesitamos descargar la aplicación Nextcloud real.

  1. Navega a https://nextcloud.com/install/#instructions-server en un buscador.
  2. Da clic derecho en el botón Download Nextcloud. Del menú desplegable da clic en copy link address.
  3. En tu shell raíz, corre lo siguiente (cambia la versión al enlace que acabas de copiar).
    [root@instance]# wget https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
    
  4. Esto descargará una copia comprimida de la aplicación Nextcloud.
  5. Descomprime el archivo corriendo lo siguiente (cambia el número de versión a la versión que estás usando).
    [root@instance]# unzip nextcloud-12.0.3.zip
    
Esto crea un directorio llamado nextcloud en tu directorio actual.

Configurar el directorio nextcloud

Ahora debes copiar Nextcloud al directorio /var/www/nextcloud. Corre lo siguiente:

[root@instance]# cp -R nextcloud /var/www/

Cambia los permisos del directorio nextcloud para que el usuario web, www-data en este caso, pueda acceder a él. Corre lo siguiente:

[root@instance]# chown -R www-data:www-data /var/www/nextcloud
 

Paso 7 — Configurar Apache

Ahora debes configurar Apache para usar Nextcloud. Crea un archivo en el directorio/etc/apache2/sites-available llamado nextcloud.conf.

[root@instance]# touch /etc/apache2/sites-available/nextcloud.conf

Agrega el siguiente contenido a este archivo:

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

<Directory /var/www/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Luego, enlace simbólico /etc/apache2/sites-enabled/nextcloud.conf a /etc/apache2/sites-available/nextcloud.conf corriendo lo siguiente:

[root@instance]# ln -s /etc/apache2/sites-available/nextcloud.conf \
/etc/apache2/sites-enabled/nextcloud.conf

Nextcloud también necesita ciertos módulos de Apache para funcionar correctamente. Habilítalos corriendo:

[root@instance]# a2enmod rewrite

También debes usar SSL con Nextcloud para proteger la información y los datos de inicio de sesión. Apache instalado en Ubuntu viene con un certificado autofirmado. Para habilitar SSL con ese certificado, corre:

[root@instance]# a2enmod ssl
[root@instance]# a2ensite default-ssl
[root@instance]# service apache2 restart
 

Paso 8 — Finalizar la Instalación

Ahora que todo está configurado en la instancia, abre un navegador y visita https://IP/nextcloud donde IP es la dirección IP de tu instancia de aplicación.

Ingrese un usuario y contraseña de administrador para esta instalación.

Luego, desplázate hacia abajo e ingresa las credenciales de tu base de datos:

  • El usuario de la base de datos es 'nextclouduser'
  • La contraseña es la contraseña configurada para ese usuario
  • El nombre de la base de datos que creaste está en el Paso#4 arriba
  • El host es la dirección IP de la instancia de tu base de datos con :3306 al final

Da clic en Finish Installation y tienes una instalación funcional de Nextcloud.

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?