Desde hace varios años, el almacenamiento en nuestras computadoras personales pasó a segundo plano ante las posibilidades que la nube puso a nuestro alcance. Entre otras cosas, el poder guardar archivos y acceder a ellos desde cualquier ubicación y tipo de dispositivo ha simplificado nuestras vidas y trabajo. A pesar de la existencia de servicios como Google Drive o Dropbox, muchas personas o empresas prefieren tener más control sobre la privacidad de su contenido y eligen otras alternativas. En esta guía aprenderás cómo instalar ownCloud con Nginx en Ubuntu 20.04 para administrar tu propia solución de almacenamiento en la nube.
Al instalar ownCloud en un servidor propio, podrás realizar todas las tareas que seguramente ya te resultan familiares (y otras más):
- Crear, editar, subir y borrar archivos y carpetas
- Compartir contenido con otros usuarios de la plataforma y también con terceros
- Modificar la apariencia de la interfaz para adaptarla a tus necesidades o gustos
Requisitos previos
- Disponer de un servidor Ubuntu 20.04 con Nginx, PHP y MySQL instalados. Si necesitas ayuda para hacerlo, puedes recurrir a la guía: Cómo instalar un stack LEMP (Linux, Nginx, MySQL y PHP) en Ubuntu 20.04.
- Registrar un dominio a tu nombre y, opcionalmente, crear un subdominio para apuntar a tu instancia de ownCloud. En esta guía utilizaremos own.cloudme.fun a modo de ejemplo.
Paso 1: Descarga e instalación de ownCloud
Para comenzar, visita el sitio de descargas de ownCloud para acceder al archivo más reciente:
Copia el link de owncloud-complete-latest.tar.bz2 para descargarlo con wget
.
Antes de continuar, asegúrate que el directorio donde se alojará la aplicación esté creado. Si no lo está puedes crearlo con el siguiente comando:
sudo mkdir /var/www/cloudme.fun
Recuerda que nosotros utilizaremos el directorio «cloudme.fun» para alojar la aplicación ownCLoud pero tu puedes colocarle el nombre que quieras. Una buena práctica es utilizar el nombre de dominio que apuntarás a la aplicación.
Ahora es el turno de descargar el archivo de ownCloud, descomprimirlo en /var/www/cloudme.fun/ y asignar al usuario www-data como propietario del directorio:
wget https://download.owncloud.org/download/community/owncloud-complete-latest.tar.bz2
sudo tar xjf owncloud-complete-latest.tar.bz2 -C /var/www/cloudme.fun/
sudo chown -R www-data:www-data /var/www/cloudme.fun/
Quizás reparaste en el hecho de que el primer comando de la lista generó un directorio llamado owncloud dentro de /var/www/cloudme.fun. En el próximo paso lo utilizaremos como la raíz de nuestro subdominio.
Paso 2: Configuración de Nginx
En este ejemplo, vamos a crear un bloque de servidor para el subdominio own.cloudme.fun. Para ello vamos a crear y editar el archivo /etc/nginx/conf.d/own.cloudme.fun.conf
.
sudo touch /etc/nginx/conf.d/own.cloudme.fun.conf
sudo nano /etc/nginx/conf.d/own.cloudme.fun.conf
Luego copia las siguientes líneas en el archivo y guárdalo.
server {
listen 80;
listen [::]:80;
root /var/www/cloudme.fun/owncloud;
index index.php index.html index.htm;
server_name own.cloudme.fun;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
}
Después de guardar el archivo, asegúrate de que la configuración sea correcta:
sudo nginx -t && sudo nginx -s reload
Si el comando anterior indica que la prueba fue exitosa, continúa con el siguiente paso. De otra forma, utiliza cualquier mensaje de error para identificar el problema y corregirlo antes de proseguir.
Paso 3: Creación de una base de datos para ownCloud
Mediante los siguientes comandos crearemos una base de datos para ownCloud y un usuario con las credenciales de la cuenta que utilizará la herramienta internamente:
sudo mysql
En el comando para crear el usuario de la base de datos reemplaza 0wncloudAdmin
por tu propia contraseña.
CREATE DATABASE owncloud;
CREATE USER 'owncloudadmin'@'localhost' IDENTIFIED BY '0wncloudAdmin!';
También necesitarás otorgar los accesos correctos al usuario:
GRANT ALL ON owncloud.* TO 'owncloudadmin'@'localhost';
Para regresar a la línea de comandos de Linux, escribe \q
o exit
y presiona Enter.
Paso 4: Asegurar el subdominio con Let’s Encrypt
Tener un certificado SSL/TLS aumentará la confianza de los usuarios de tu solución de almacenamiento en caso de que lo utilices en tu empresa. Además, hará posible que el tráfico de datos desde y hacia el servidor esté encriptado. Let’s Encrypt provee una herramienta llamada certbot que permite gestionar certificados de una forma sencilla.
Para instalar certbot
ejecuta el siguiente comando:
sudo apt install certbot python3-certbot-nginx -y
A continuación, genera el certificado:
sudo certbot --nginx -d own.cloudme.fun
El comando anterior modificará el archivo de configuración /etc/nginx/conf.d/own.cloudme.fun.conf con los datos del certificado. Para completar este paso, reinicia Nginx.
sudo systemctl restart nginx
Paso 5: Instalación de los módulos de PHP
Para que ownCloud funcione correctamente, es necesario instalar una serie de módulos de PHP:
sudo apt install php-imagick php7.4-common php7.4-curl php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-ldap php7.4-mbstring php7.4-mysql php7.4-xml php7.4-zip
En este punto deberías verificar que el subdominio se encuentra funcionando:
En esta misma pantalla ingresarás los datos de tu instalación de ownCloud en el próximo paso.
Paso 6: Ingreso de datos de configuración
Una vez que la solución está instalada, ingresa los datos de configuración:
- Creación de una cuenta de administrador. Elige un usuario y una contraseña con un alto nivel de seguridad:
- Elección de un directorio para almacenar archivos. Si deseas, puedes cambiar la ubicación por defecto (/var/www/cloudme.fun/owncloud/data) o dejarla:
- Conexión a la base de datos usando las credenciales que generaste en el paso 3. En el caso del puerto, ingresa 3306 por MySQL:
Haz clic en Finish setup para finalizar. A continuación, verás el formulario de inicio de sesión con la cuenta de administrador:
¡Felicitaciones! Ya tienes tu nube privada funcionando con ownCloud:
Conclusión
En esta guía aprendiste a instalar ownCloud con Nginx en Ubuntu 20.04. Ahora puedes utilizar esta herramienta para almacenar tus archivos de forma segura y totalmente bajo tu control. Si en algún momento olvidas la contraseña de administrador, puedes resetearla desde la línea de comandos de Linux siguiendo las instrucciones de la documentación oficial.