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«:
Una vez creado nos aparecerá la siguiente imagen en el panel:
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:
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:
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:
Ver comentarios (30)
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).
Buenas! Cierto, de hecho en el artículo instalamos esa versión en Ubuntu 16.04. No lo he probado todavía con Debian Testing. Saludos!!
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
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
Usa Onlyoffce
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?
Hola Jair,
Me alegro que la guía te haya servido. Respecto a tu pregunta tienes que acceder desde otro equipo de la red utilizando la IP asignada al dispositivo. También puedes modificar la DNS del router que tengas para asignar a la IP un nombre amigable.
Saludos
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.
Hola Fanta,
Gracias por pasarte por aquí y dejar tu comentario. El tema de las aplicaciones para NextCloud lo trataré más adelante, esta es la segunda parte sobre el producto, pero habrá más.
Salu2!
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.
Sí, es cierto, en Debian también se puede instalar, utilicé Ubuntu porque es la distribución recomendada por los creadores, igualmente me alegro que para Debian parte del artículo te haya servido. El tema de MariaDB es una manía personal, siempre utilizo los repositorios del producto. Saludos!!
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?
Hola,
Primero de todo, disculpa la demora en contestar. Tienes que ir a la web de la compañía que te gestiona los DNS, desde allí tienes que añadir el nombre de subdominio que desees y la IP relacionada (la del VPS donde esté NextCloud)
Saludos
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.
Hola colega,
¿Has seguido correctamente la guía?
Te falta configurar la contraseña de 'root' de la base de datos con 'mysql_secure_installation'
Saludos
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.
Esto es porque la carpeta del proyecto no tiene permisos de escritura. Los puedes modificar utilizando el comando "chmod" sobre la ubicación, por ejemplo:
chmod 775 /var/www/html/pagina-web-ejemplo -R
Además debes asignar propietario y grupo con:
chown www-data:www-data /var/www/html/pagina-web-ejemplo -R
Sólo te faltará reiniciar el servidor web.
Saludos
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?
La creacion de droplet tiene un costo de 5$ mensuales?? es obligatorio ese pago?
Hola, sí, es obligatorio. Igualmente puedes probar NextCloud en casa, utilizando una máquina virtual.