Nextcloud - Construye tu propia nube
by Andoni A.
Una de las principales razones por las que decidí comprarme mi propio servidor fue para poder montar mi propio Dropbox, porque “la Nube no es más que el ordenador de otra persona”, y prefiero que esa persona, sea yo.
Como sistema operativo me he decantado por CentOS 7 Minimal porque quería una distribución que viniese solo con lo necesario y ademas quería probar algo de “la familia Red Hat”.
Dicho esto os dejo con los pasos a seguir:
sudo yum -y update && yum -y upgrade sudo yum install wget net-tools vim2. Después instalaremos PHP:
sudo yum install -y httpd php php-mysql sqlite php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-gd curl php-curl php55-php-mysqlnd php55 php55-php php55-php-gd php55-php-mbstring php-mcrypt php-pear wget bizp2
3. Copiamos los módulos de PHP 5.5 en la carpeta de Apache y reiniciamos:
cp /opt/rh/httpd24/root/etc/httpd/conf.d/php55-php.conf /etc/httpd/conf.d/ cp /opt/rh/httpd24/root/etc/httpd/conf.modules.d/10-php55-php.conf /etc/httpd/conf.modules.d/ cp /opt/rh/httpd24/root/etc/httpd/modules/libphp55-php5.so /etc/httpd/modules/ service httpd restart4. Como BBDD vamos a usar MariaDB:
sudo yum install mariadb mariadb-server -y5. Iniciamos el servicio de MariaDB y lo añadimos al arranque:
sudo systemctl start mariadb.service sudo systemctl enable mariadb.service6. Mejoramos la seguridad de la instalación de MariaDB:
sudo /usr/bin/mysql_secure_installation Enter current password for root (enter for none): Enter Set root password? [Y/n]: Y New password: <your-password> Re-enter new password: <your-password> 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]: Y7. Creamos la base de datos para NextCloud:
mysql -u root -pUna vez dentro ejecutamos:
CREATE DATABASE nextcloud; CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;8. Ahora debemos buscar la ultima versión de Nextcloud y descargarla:
cd /tmp wget https://download.nextcloud.com/server/releases/nextcloud-10.0.0.zip unzip nextcloud-10.0.0.zip sudo mv nextcloud /var/www/html/ sudo chown -R apache:apache /var/www/html/nextcloud/9. Permitimos el acceso a Nextcloud en el firewall:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload10. Configurar SELinux: Si tenemos SELinux activo puede darnos problemas con los permisos. Pero obviamente desactivarlo no es una buena opción. Usando los siguientes comandos deberíamos evitar cualquier problema a la hora de escribir en los archivos de Nextcloud:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps'11. Ahora tenemos Nextcloud descargado, pero falta instalarlo: Estos son los datos que puede variar a la hora de ejecutar la instalación:
-
database-name: nextcloud
-
database-user: nextclouduser
-
database-pass: yourpassword
-
admin-user: admin
-
admin-pass nextcloudadminpassword
cd /var/www/html/nextcloud sudo -u apache php occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" --database-pass "yourpassword" --admin-user "admin" --admin-pass "nextcloudadminpassword"Si se instala correctamente aparecerá el siguiente mensaje:
Nextcloud is not installed - only a limited number of commands are available ownCloud was successfully installed12. Debemos añadir la IP del servidor (p.e. 80.7.113.11) y el nombre de dominio (p.e. example.com) en la lista de confianza de NextCloud:
sudo vi /var/www/html/config/config.php 0 => 'localhost', 1 => '80.7.113.11', # Añadimos estas lineas. 2 => 'example.com',13. Por seguridad, podemos ejecutar este script que establecerá los permisos correctamente en las carpetas de Nextcloud:
#!/bin/bash ocpath='/var/www/html/nextcloud' htuser='apache' htgroup='apache' rootuser='root' printf "Creating possible missing Directoriesn" mkdir -p $ocpath/data mkdir -p $ocpath/assets mkdir -p $ocpath/updater printf "chmod Files and Directoriesn" find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf "chown Directoriesn" chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/assets/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/updater/ chmod +x ${ocpath}/occ printf "chmod/chown .htaccessn" if [ -f ${ocpath}/.htaccess ] then chmod 0644 ${ocpath}/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/.htaccess fi if [ -f ${ocpath}/data/.htaccess ] then chmod 0644 ${ocpath}/data/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fiSi se necesitasemos actualizar Nexcloud en un futuro se podemos:
#!/bin/bash # Sets permissions of the Nextcloud instance for updating ocpath='/var/www/html/nextcloud' htuser='apache' htgroup='apache' chown -R ${htuser}:${htgroup} ${ocpath}Y después volver a utilizar el script anterior. 15. Reiniciamos Apache para que cargue con todos lo cambios:
sudo systemctl restart httpd.service16. Y probamos a acceder a http://80.7.113.11
Dentro de la interfaz de Nexcloud encontrareis muchas opciones de configuración. Podéis consultar la documentación acerca de Nextcloud en su web
Aquí os dejo la ventana de login del mio:
Como siempre, espero que os sea útil y que os animéis a construir vuestra propia nube.
Saludos y que la fuerza os acompañe!
Suscríbete via RSS