RECOMENDACIONES ANTES DE COMENZAR
Utiliza una conexión mediante Terminal o Putty para realizar la instalación, asi podrás copiar/pegar los comandos desde esta web hacia tu computadora virtual 

Todos los tutoriales han sido probados en Ubuntu Server 18.04, te recomendamos utilizar esta distrubución


¿Qué es NEXTCLOUD ?

Nextcloud es actualmente el software para crear una nube privada más completo y seguro que hay. El equipo de desarrollo de Nextcloud se ha centrado específicamente en la seguridad y privacidad de su software, dotándole de funciones avanzadas de autenticación y cifrado de datos. Con Nextcloud podremos sincronizar archivos, carpetas, calendarios e incluso contactos, y todo ello sin depender de un tercero, todo quedaría en casa o allí donde coloquemos el servidor Nextcloud.

Inciamos actualizando repositorios

online site builder
sudo apt update

Ahora instalamos MySql, que es un software que maneja base datos. En él usaremos claves de alta seguridad, ya que ahí se almacenará toda la información de nuestra nube

sudo apt install mysql-server

Una vez instalado MySql, creamos la contraseña de administración de MySQL

sudo mysql_secure_installation

Primero te preguntará si usarás contraseñas seguras o contraseñas simples, en este caso recomendamos usar contraseñas seguras, por lo cuál ante la primera pregunta, respondemos si:

Mobirise
Y

A continuación MySQL te preguntará que nivel de seguridad deseas para tu contraseña, selecciona la opción 1 (Medium):

Mobirise

Luego te pedirá escribir la contraseña que desees para MySQL dos veces, recuerda utilizar una con letras, números, símbolos y altas y bajas.

Mobirise

Ahora te hará varias preguntas, responde a todas ellas con un sí (Y)

Mobirise


Finalizada esa configuración, Ingresamos a MySQL, te pedirá una contraseña, escribes la que acabas de inventar en el paso anterior:

sudo mysql -u root -p

Mobirise

Ahora estamos dentro de MySQL y lo primero que haremos, será crear una base de datos para nuestro Nextcloud, aquí se almacenará toda la información contenida en el servicio. En este ejemplo llamaremos a la base de datos  nextcloud_db, pero tu base de datos puede tener el nombre que desees.

Entocnes:

CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Poseriormente crearemos un usuario de MySql, le daremos una contraseña y le daremos acceso a nuestra base de datos nextcloud_db, todo en una sola línea de comando:

GRANT ALL ON nextcloud_db.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'C0ntr4s3ñ4Segura!';

En este comando la palabra nextcloud_db es un ejemplo, este debe ser reemplazado por el nombre de la base de datos que creaste anteriormente. De la igual manera nextclouduser es un ejemplo, aquí podemos colocar un nombre de usuario de nuestra preferecia, recordemos que lo estamos creando. C0ntr4s3ñ4Segura! también es un ejemplo, aquí coloca la contraseña que quieres asignarle al usuario de MySql que estamos creando, recuerda debe tener números, letras en altas y bajas y caracteres especiales.


Ahora actualizamos los privilegios de los usuarios de MySql:

FLUSH PRIVILEGES;

y salimos de MySql

QUIT

Ahora instalaremos Apache, servidor web que sostiene toda la interface de trabajo de Nextcloud

sudo apt install apache2 php7.2 php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php7.2-imagick php7.2-xml php7.2-zip libapache2-mod-php7.2

Le decimos al Firewall de linux que de acceso a Apache2

sudo ufw allow 'Apache Full'

Descargamos Nextcloud 

wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip -P /tmp

E instalamos unzip para descomprimir el archivo que descargamos

sudo apt install unzip

descomprimimos nextcloud en la carpeta /var/www

sudo unzip /tmp/nextcloud-18.0.4.zip -d /var/www

Damos los permisos para que el servidor web Apache pueda tener acceso completo a los archivos y directorios de Nextcloud

sudo chown -R www-data: /var/www/nextcloud

Ahora abrimos el editor de texto nano y creamos un archivo de configuracion de Apache, que activará la interfaz web de Nextcloud

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

Nos abrirá un documento en blanco, en el copiamos la siguiente configuración:

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>

Cerramos el documento con crtl + X y aceptamos guardar las modificaciones


Habilitamos cada una de las nuevas configuraciones adicionadas y modulos requeridos del Apache 

sudo a2enconf nextcloud


sudo a2enmod rewrite


sudo a2enmod headers


sudo a2enmod env


sudo a2enmod dir


sudo a2enmod mime

Despues de ejecutar todos esos comandos, reiniciamos Apache

sudo systemctl reload apache2


Ya tenemos nuestro Nexcloud casi listo, solo nos falta realizar la configuración inicial del servicio, para ello vamos a un explorador web de una computadora en la misma red local del servidor y en su barra de direcciones anotamos la ip de la computadora donde instalamos Nextcloud, por ejemplo:


http://192.168.1.102/nextcloud


y debería ver la pantalla de bienvenida, donde crearemos el usuario de administrador de Nextcloud, completamos ambos campos

Mobirise


Nos deslizamos hacia abajo y completamos usando el nombre de la base de datos, el usuario y la clave que hemos creado dentro de MySql

Mobirise

Des-seleccionamos la instalación de paquetería adicional y damos a 

TERMINAR CONFIGURACIÓN


Luego de esto hay que esperar un tiempo en que se active todo el sistema, al finalizar ya tendremos nuestro nuestro Nextcloud en pleno funcionamiento.




Comandos de Control

sudo nano /var/www/nextcloud/config/config.php

sudo systemctl stop vsftpd

sudo systemctl start vsftpd

sudo systemctl restart vsftpd

IMPORTANTE
Esta información es para uso personal. En ningún caso se pretende dar conocimientos, consejos, formaciones, herramientas, ni soluciones técnicas de ámbito comercial ni profesional. Simplemente es información que se ha recopilado, organizado y redactado con la finalidad promover la creación y uso de servicios de comunicación digitales con software libre. 

Si usted no está seguro de la fiabilidad de la información, no cumple con sus expectativas o no es de su agrado, le ruego que abandone este sitio web.