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 [email protected] IDENTIFIED BY 'la-contraseña-que-quieras';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO [email protected] ;
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
17 Comment threads
14 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
15 Comment authors
david ochobitsNestdavidochobitsPabloFredy Ruiz Ondre 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

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?…

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?,

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?

Pablo
Lector
Pablo

hola, segui al pie de la letra el tutorial, pero al querer aceder comletando todos los datos requeridos me sale el siguiente error:

Error while trying to create admin user: An exception occurred while executing ‘INSERT INTO oc_migrations (app,version) SELECT ?,? FROM oc_migrations WHERE app = ? AND version = ? HAVING COUNT(*) = 0′ with params [«core», «13000Date20170705121758», «core», «13000Date20170705121758»]: SQLSTATE[HY000]: General error: 1665 Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTE

tengo ubuntu 16 server
desde ya muchas gracias

Nest
Lector
Nest

Hola, muchas gracias por el artículo, te faltó decir una cosa muy importante que para poder instalar nextcloud tienes que cambiar de propietario a la carpeta nextcloud que se ha descomprimido en el directorio del servidor apache, osea antes de instalar tipear como root:
sudo chown -R www-data:www-data /var/www/nextcloud

Luego activar Opcache en php.
en mi caso uso php7.2 y la ruta es:
sudo nano /etc/php/7.2/apache2/php.ini

ahí descomenta las líneas
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
opcache.huge_code_pages=1

reinicias el apache
systemctl restart httpd

y lo último quedaría añadirle un certificado https gratuito de Let’s Encrypt pero eso ya lo buscan en googel que es fácil y hay mucha info