En el artículo de hoy vamos a tratar la instalación de Nextcloud sobre un sistema operativo GNU Linux. Una de mis distribuciones favoritas es Debian, pero, buscando la facilidad de instalación y siguiendo la recomendación del equipo de desarrollo, utilizaremos Ubuntu 16.04. Para ello usaremos un VPS en la llamada nube, aunque también sirve la guía para una máquina local o una virtual. Esta es la segunda parte sobre Nextcloud, si no sabéis muy bien de que va este producto, siempre podéis visitar el artículo introductorio.

Siguiendo la filosofía didáctica de la web, vamos a ir paso a paso en la instalación. En nuestro caso utilizaremos la plataforma DigitalOcean para crear la máquina virtual privada o VPS.

Una vez dentro de la plataforma, nos iremos a la parte superior derecha de la ventana, y marcamos sobre el botón “Crear droplet“:

En este apartado indicamos el sistema operativo, en nuestro caso “Ubuntu 16.04” en su versión de 64 Bits, la tarifa será la más básica de 5 USD, que nos incluye 512 MB, 1 CPU y 20 GB de disco. El centro de datos en mi caso será “Frankfurt” ya que está en Europa, y así se garantiza que tiene que seguir la ley de protección de datos de la Unión Europea (en principio). También podemos habilitar las copias de seguridad semanales, aunque esto nos conllevará un 20 % adicional en el coste.  En la última parte indicamos el nombre, que será “nextcloud.ochobitsunbyte.pw“.

Una vez creado nos aparecerá la siguiente imagen en el panel:

Además nos enviará un mensaje a nuestro correo con las credenciales de la nueva máquina privada virtual. Se observa en la imagen anterior el nombre del VPS y sus características, además de su IP pública. Que os muestro sin problema, ya que seguramente cuando acabe este artículo eliminaré la máquina.

Visitamos nuestro correo personal para encontrar las credenciales. Para acceder a nuestro nueva máquina debemos utilizar ssh desde la consola de comandos si utilizamos un sistema GNU Linux, FreeBSD o similar. En el caso de otros sistemas como Windows, se pueden utilizar programas como Putty.

Para la instalación voy a utilizar la documentación oficial, que os invito a consultar, ya que es muy extensa y de calidad; eso sí, está en inglés.

Vamos a empezar con los requisitos mínimos. Si leemos dicha documentación nos indica que el mínimo de memoria es de 512 MB, pero, ojo, cuanto más usuarios vayan a utilizar el producto más memoria necesitaremos. En lo que respecta al sistema operativo recomendado nos dice que los mejores son RHEL 7 y Ubuntu 16.04, aunque también soporta Debian, entre otros. En lo que toca a base de datos recomienda Mysql o MariaDB, la versión PHP 7 o superior y el servidor web Apache 2.4 con el módulo mod_php activo. Estas son las recomendaciones, Nextcloud puede utilizar otras bases de datos, servidores webs, etcétera.

Vamos al lío, una vez dentro de la consola de comandos, comenzamos la instalación. Al entrar en el VPS nos pedirá cambiar la contraseña. Lo hacemos y actualizamos.

sudo apt update

Lo primero que haremos es instalar el servidor web Apache, además del módulo de PHP correspondiente en su versión 5, ya que Debian no trae en sus repositorios la versión 7. En principio nos tendría que funcionar igualmente.

sudo apt install apache2 libapache2-mod-php7.0

Además instalaremos toda una serie de complementos, algunos gráficos, para PHP :

sudo apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring

Además de los siguientes:

sudo apt install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip zip

Una vez hecho esto vamos con la base de datos, en nuestro caso instalaremos MariaDB. Aquí voy a distanciarme de la instalación recomendada, que utiliza los repositorios de Ubuntu, en cambio vamos a utilizar los de MariaDB. Concretamente los recomendados en dicho proyecto para nuestra versión de sistema operativo, utilizando la propia guía del motor de base datos, aquí.

Para ello añadimos el repositorio:

sudo apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://tedeco.fi.upm.es/mirror/mariadb/repo/10.1/ubuntu xenial main'

 Una vez hecho esto actualizamos el sistema e instalamos:

sudo apt update
sudo apt install mariadb-server

Llegado el caso nos preguntará por una contraseña para el super usuario ‘root’ de la base de datos, recordad poner una que sea robusta.

Accedemos al motor de MariaDB, para así poder crear la base de datos y el usuario para nuestro proyecto:

mysql -u root -p

Y escribimos:

CREATE DATABASE nextcloud_db;
GRANT USAGE ON nextcloud_db.* TO nextcloud_user@localhost IDENTIFIED BY 'la-contraseña-que-quieras';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextcloud_user@localhost ;
FLUSH PRIVILEGES;

Para asegurar la instalación, usaremos el siguiente comando:

mysql_secure_installation

De esta manera ya tenemos la parte de la base de datos finiquitada. Es importante apuntar las credenciales, ya que más adelante las necesitaremos.

Ya hemos instalado todos los requisitos necesarios para el funcionamiento del producto. Nos vamos ahora a la página de descargas de Nextcloud. Desde la consola de comandos descargamos la última versión:

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.zip

Descomprimimos el fichero y el resultado lo movemos a la carpeta de proyectos web /var/www/:

unzip nextcloud-x.y.z.zip
cp -r nextcloud /var/www/

Con esto utilizaremos la ubicación principal. Si fuese el caso podemos escoger otro emplazamiento y después modificar la configuración del servidor Apache.

Sigamos, que ya queda menos. Ahora nos toca añadir la configuración del “Virtual Host” al servidor. Para ello creamos un fichero en /etc/apache2/sites-available/, llamado “nextcloud.ochobitsunbyte.pw.conf” Con la siguiente información:

Guardamos el fichero. Creamos el enlace simbólico correspondiente, para indicar que el proyecto está activo:

ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Todavía no hemos acabado esta parte, también tenemos que habilitar una serie de módulos necesarios en el servidor web:

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod setenvif

Una vez hecho todo esto reiniciamos el servidor web:

service apache2 restart

Ya tenemos lista esta parte. Ahora nos toca ir al navegador web. Eso sí, antes debemos añadir la IP al DNS del subdominio.

Una vez hecho todo esto, podemos acceder vía web al instalador:

Desde aquí debemos añadir los datos del proyecto, esto es, nombre de usuario, contraseña, correo electrónico,  usuario de base de datos y, muy importante, la ubicación de los datos.

En principio, si hemos seguido todas las instrucciones no deberíamos tener ningún problema. En mi caso me ha devuelto un error, ya que la contraseña que he añadido era sumamente larga. Para solventarlo, he seguido las instrucciones de una entrada en un foro [enlace].

Al finalizar la instalación ya podemos ver la página de bienvenida:

Espero que el artículo haya sido de vuestro interés. En la siguiente parte veremos su funcionamiento y administración. Estad atentos. Nos vamos leyendo 😉

avatar
15 Comment threads
12 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
13 Comment authors
Fredy Ruiz OndrediegoEdgardavid ochobitsthavoo Recent comment authors

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  Subscribe  
más nuevo más antiguo más votado
Notificarme de
trackback

[…] Visitar la fuente original […]

Beñat
Lector
Beñat

Muy buen post, solamente un apunte. Es muy recomendable hacer la instalación en una distro con PHP7, la diferencia de rendimiento y desahogo para el servidor es muy grande. Si queremos instalarlo en Debian, no es mal momento para hacerlo en testing, ya están congelando paquetes y la estabilidad es grande (para entornos no críticos, claro).

Jose Salazar
Lector
Jose Salazar

Gracias por el post, caí en tu web por Google, estoy buscando como montar es colabora suite co el nextcloud pero no he visto tutos claros y q no impliquen usar docker

Beñat
Lector
Beñat

Por desgracia, Collabora Online Development Edition solo está disponible en un container docker. Todavía le queda mucho para ser usable.
Más información en: https://www.collaboraoffice.com/code/
saludos

Fredy Ruiz Ondre
Lector
Fredy Ruiz Ondre

Usa Onlyoffce

Jair
Lector
Jair

Hola,
ya he logrado instalarla y desde la raspberry todo se ve bien, pero como puedo acceder desde otro computador? que debo poner como direccion?

fanta
Lector

Me ha gustado mucho y me ha venido muy bien tu articulo. Gracias.
Es cierto que no tocas el tema de como montar aplicaciones sobre nextcloud como por ejemplo collabora online para poder trabajar con hojas de calculo, documentos odt, … pero eso supongo es algo más tedioso ya que quizás requiera de montarlo sobre una maquina física con dockers o compilar. De todos modos me ha venido guay y tenia que decirlo.

Saludos.

fanta
Lector

Tambien ya de paso comentar que yo lo instalé en un vps con debian 8. El articulo sirve para casi todo con algún problema que quizas pueda surgir.

Por un lado ahora mismo nextcloud va por la 11.0.1
https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip

Por otro lado al instalar “php-imagick” da fallo, se ha de instalar: php7.0-imagick . Salvo esas tonterias el resto vale. Tambien comentar que se puede tirar del mariadb que está en los repos de debian y aunque no es la ultima versión si que te permite tener unos años ese soporte a golpe de apt-get upgrade.

Saludos cordiales.

corredordefondo
Suscriptor
corredordefondo

De antemano perdona si la pregunta es muy básica. He seguido el tutorial hasta el punto en el que dices “Ya tenemos lista esta parte. Ahora nos toca ir al navegador web. Eso sí, antes debemos añadir la IP al DNS del subdominio.”
Dado mis conocimientos limitados no sé como hacerlo. Por favor, ¿me podrías ayudar?

khone
Lector
khone

Buenas, intento realizar la instalacion de mariadb, parece que se instala sin problemas, pero en ningun momento me pide para poner la contraseña y cuando intento inciar la base de datos me pide una contraseña que no se cual es y no es la de administrador del equipo.

Nicolas
Lector
Nicolas

buenas tardes, llego a ver el nextcloud pero me tira este error “Can’t write into config directory!
This can usually be fixed by giving the webserver write access to the config directory.” cual seria el directorio que no me deja escribir.

Antonio
Lector
Antonio

Buenas e estoy leyendo tu tutorial y me gustaría hacer una nube privada y algo ando perdido con el tema me podríais ayudar?

thavoo
Suscriptor
thavoo

La creacion de droplet tiene un costo de 5$ mensuales?? es obligatorio ese pago?

Fredy Ruiz Ondre
Lector
Fredy Ruiz Ondre

Nextcloud tiene un cliente para poder ver los archivos desde el Escritorio. Pero este sincroniza toda la información del servidor, y si la información en el servidor pesa 1TB y el espacio en Disco local de la PC es 200GB, no se podría hacerlo ello. Se puede montar como unidad de red, pero es muy lenta la conexión, y te pide clave cada ves que abres un archivo. Alguien ha tenido el mismo requerimiento? es decir, manejar la data en la PC como la clásica unidad de red de un servidor de archivos Windows y no solo por la web. Si es así, como lo están manejando?…

Fredy Ruiz Ondre
Lector
Fredy Ruiz Ondre

Bueno, por ahora estoy agregando la unidad de red de la siguiente manera:

https://nc.dominio.com/remote.php/webdav/

Edgar
Lector
Edgar

Excelente, ahora tengo una duda, existe la posibilidad de trabajar en la nube un documento word o de cualquier otro tipo, sin tener que descargarlo y que se guarden los cambios?,

Fredy Ruiz Ondre
Lector
Fredy Ruiz Ondre

Claro que si, instala la aplicación Onlyoffice

diego
Lector
diego

Como se accede desde el navegador ? por localhost da error

Fredy Ruiz Ondre
Lector
Fredy Ruiz Ondre

Buenas,

Alguien ha agregado como unidad de red mediante webdav y luego cuando intenta acceder no se visualiza ningún archivo, es mas, crea una carpeta y “desaparece” pero si está cuando se ve por web. Con ese mismo usuario accedo desde otro windows y si se muestra. Que podría ser?