En este tutorial veremos cómo instalar NextCloud 11.0.3 en un VPS con un sistema operativo CentOS 7. ¡Tan sencillo que hasta yo lo conseguí!
Continuo con la serie de artículos relacionados con la instalación de servicios en mi VPS de Clouding.io. En esta serie he escrito antes sobre:
Y hoy veremos cómo instalar NextCloud en el VPS. Un servicio que tenía ganas de probar.
Como ya he escrito en algún artículo anterior, NextCloud es un “fork” de OwnCloud. Un software que crea una “nube privada” que gestionas tu mismo. Puedes instalarla en un VPS (como ha hecho yo) o puedes instalarlo en tu propio servidor privado.
NextCloud está desarrollado y mantenido por la comunidad. Está licenciado bajo software libre y tiene un montón de aplicaciones que complementan y dan nuevas funcionalidades, lo que lo hace algo más que un “servicio de nube” como pudiera ser DropBox o similares.
NextCloud ofrece la posibilidad de sincronizar no sólo tus documentos, también contactos, trabajar en documentos de manera colaborativa, acceder a tu correo, reproducir audio y vídeo, llamadas de vídeo, y mucho mucho más!
Así que veamos qué pasos he seguido para instalarlo en mi VPS de Clouding.io. Y como no soy experto en estas lides, también hubo contratiempos que están solucionados. Veamos cómo lo hice.
Para instalarlo y configurarlo he seguido la web oficial de NextCloud y algún otro enlace:
Los primeros pasos son similares a los que realicé instalando Tiny Tiny RSS, podéis leer esa entrada, así que no fue necesario repetirlos, por tanto no entraré en detalle, en resumen:
- Actualizar el sistema.
- Instalar Apache y hacerlo que se arranque al inicio de nuestro sistema.
Aquí ya viene algo esencial que causó un contratiempo.
Deberemos instalar PHP (tal como hicimos para Tiny Tiny RSS) pero esta vez la versión 5.6 que es la que necesita NextCloud 11. Y yo tenía instalado PHP 5.4. Por tanto primero tuve que eliminar los paquetes obsoletos para que los nuevos no entraran en conflicto:
yum erase php php-common php-gd php-mbstring php-process php-pgsql php-xml php-cli
Hecho esto hay que añadir lo necesario para después instalar PHP 5.6 (lo que nos provocará un problema en nuestro servicio Tiny Tiny RSS después):
wget https://centos7.iuscommunity.org/ius-release.rpm
rpm -Uvh ius-release.rpm
yum install php56u php56u-common php56u-xml php56u-gd php56u-mbstring php56u-process php56u-mysqlnd php56u-intl php56u-mcrypt php56u-imap php56u-cli -y
Para poder manejar archivos, deberemos aumentar el tamaño de subida a nuestro servidor
sudo cp /etc/php.ini /etc/php.ini.bak
sudo sed -i "s/post_max_size = 8M/post_max_size = 50M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/" /etc/php.ini
Para que estos cambios sean tenidos en cuenta deberemos reiniciar Apache
systemctl restart httpd.service
NextCloud utiliza MariaDB como base de datos. Así que la instalaremos y haremos que el servicio arranque automáticamente en el inicio:
yum install mariadb mariadb-server -y
systemctl start mariadb.service
systemctl enable mariadb.service
Ahora lo instalaremos y nos hará unas cuantas preguntas que deberemos contestar de la siguiente manera:
/usr/bin/mysql_secure_installation
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <tu_contraseña>
Re-enter new password: <tu_contraseña>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Ahora deberemos crear la base de datos que utilizará NextCloud. Para ello arrancamos MySQL
mysql -u root -p
Metemos la contraseña que habíamos establecido en el paso anterior y ahora una vez dentro de la shell de mysql creamos la base de datos y el usuario admin que la controlara. Deberemos cambiar “nextcloud_BDD”, “usuario” y “contraseña” por aquellos nombres que queramos utilizar
CREATE DATABASE nextcloud_BDD;
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON nextcloud_BDD.* TO 'usuario'@'localhost' IDENTIFIED BY 'contraseña' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Es hora ya de descargar e instalar NextCloud, para ello lo haremos desde la dirección de sus servidores, mediante wget en un directorio que queramos. Esta es la versión que yo instalé, si quieres otra escoge la que quieras. Y si no quieres formato zip escoge otro.
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.3.zip
Descomprimido el archivo, deberemos ubicar los archivos en el sitio correcto, para ello:
mv nextcloud/* /var/www/html && sudo chown apache:apache -R /var/www/html
Y ahora instalaremos NextCloud:
cd /var/www/html/
sudo -u apache php occ maintenance:install --database "mysql" --database-name "nextcloud_BDD" --database-user "usuario" --database-pass "contraseña" --admin-user "admin" --admin-pass "contraseña_admin"
Reemplazando los datos, por aquellos que nosotros hayamos establecido. Si después de eso todo ha ido bien veremos el siguiente mensaje:
Nextcloud is not installed - only a limited number of commands are available
ownCloud was successfully installed
Ahora deberemos establecer a nuestro servidor como de confianza, por lo que editando el archivo: /var/www/html/config/config.php deberemos añadir debajo de la línea: 0 => ‘localhost’ el siguiente texto:
1 => '203.0.113.1'
Por cuestiones de seguridad es recomendable cambiar los permisos de los siguientes directorios:
sudo find /var/www/html -type f -print0 | sudo xargs -0 chmod 0640
sudo find /var/www/html -type d -print0 | sudo xargs -0 chmod 0750
sudo chown -R root:apache /var/www/html
sudo chown -R apache:apache /var/www/html/apps
sudo chown -R apache:apache /var/www/html/config
sudo chown -R apache:apache /var/www/html/data
sudo chown -R apache:apache /var/www/html/themes
sudo chown -R apache:apache /var/www/html/updater
sudo chmod 0644 /var/www/html/.htaccess
sudo chown root:apache /var/www/html/.htaccess
sudo chmod 0644 /var/www/html/data/.htaccess
sudo chown root:apache /var/www/html/data/.htaccess
Ya sólo queda reiniciar Apache para que los cambios sean tenidos en cuenta, y modificar el cortafuegos:
systemctl restart httpd.service
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
En un navegador ya podremos acceder a nuestro servidor (p.ej: 30.345.456.567) y se nos presentará la pantalla de bienvenida de nuestro NextCloud. Tendremos que acceder con el usuario “admin” y contraseña que hayamos establecido y después si queremos podremos crear usuarios normales sin esos privilegios.
También podremos después instalar un cliente de sincronización para NextCloud en nuestro equipo personal. Seguro que en tu distribución de GNU/Linux existe. Lo que hará será crear una carpeta en nuestro /home que estará sincronizada con nuestro NextCloud. Todo lo que guardemos en ella automáticamente se subirá a nuestro servidor y viceversa.
¿Y tiny Tiny RSS dejó de funcionar?
Pues en principio sí. Pero conseguí revivirlo, creando una nueva base de datos en MySQL (de manera similar a como lo hemos hecho en NextCloud, pero con datos distintos) y creando también un nuevo usuario. Por tanto mejor instalar primero NextCloud y después tt-rss
Cierto es que tuve que volver a suscribirme a los feeds que tenía configurados. Por tanto una buena práctica es ir exportándolos de vez en cuando para en caso de problemas simplemente importar la lista y ya está.
Espero que os haya sido útil. Yo sigo explorando lo nuevo que trae NextCloud y configurándolo poco a poco…
Enlaces de interés:
———————————————-