Cómo instalar ownCloud en Debian 12

ownCloud es una solución de software para crear servicios de alojamiento de archivos como Google Drive y DropBox. Es un software de alojamiento de archivos gratuito y de código abierto que te permite configurar un alojamiento de archivos propio en tu propio servidor. ownCloud ofrece la aplicación servidor (el componente principal de los trajes de software ownCloud), y aplicaciones cliente que se pueden instalar en múltiples sistemas operativos como Linux, Windows, macOS, Android e iOS.

ownCloud está escrito principalmente en PHP, JavaScript y Go. Te permite sincronizar eventos de calendario fácilmente y almacenar archivos, imágenes y ficheros. También te permite organizar tareas, libretas de direcciones, etc. ownCloud es una aplicación extensible que te permite instalar una aplicación adicional sobre ella.

Sigue esta guía para aprender a instalar ownCloud en Debian 12 paso a paso. Aprende a instalar ownCloud mediante la línea de comandos en la pila LAMP y a proteger ownCloud con certificados SSL/TLS de Letsencrypt.

Requisitos previos

Para comenzar el proceso, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con usuario administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

En la siguiente sección, instalarás las dependencias de los paquetes que necesita ownCloud. A continuación se muestran algunos paquetes que instalarás:

  • Servidor web Apache2.
  • Servidor de base de datos MariaDB.
    PHP 7.4 – La versión actual de PHP 8.x aún no está soportada por ownCloud, por lo que instalarás PHP 7.4 a través de un repositorio de terceros.
  • Servidor Redis.
  • Paquetes adicionales como ImageMagick, Certbot, Pear y extensiones PHP.

Primero, ejecuta el siguiente comando para instalar algunas dependencias en tu sistema.

sudo apt install lsb-release ca-certificates curl -y

instalar deps

Ahora ejecuta el siguiente comando para añadir la clave GPG de PHP y el repositorio a tu sistema Debian. Lamentablemente, ownCloud aún no soporta PHP 8.x, y debes instalar PHP 7.4 en tu máquina Debian a través de un repositorio de terceros.

sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

A continuación, ejecuta el siguiente comando para actualizar y refrescar tu repositorio Debian.

sudo apt update

añadir repositorio

A continuación, instala las dependencias para ownCloud ejecutando el siguiente comando apt install. Con esto, instalarás la Pila LAMP (Apache2, MariaDB y PHP 7.4), Certbot, Redis, extensiones PHP adicionales e ImageMagick.

sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 php7.4 php7.4-intl php7.4-mysql php7.4-mbstring php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json php7.4-xml php7.4-dev php7.4-apcu php7.4-redis libsmbclient-dev php-pear php-phpseclib

Escribe y para proceder con la instalación.

instalar dependencias

Una vez instaladas las dependencias, verifica cada una de ellas ejecutando el siguiente comando.

Ejecuta el siguiente comando para verificar el servicio apache2 y asegurarte de que se está ejecutando.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

La siguiente salida te muestra que apache2 está habilitado y en ejecución.

comprobar apache2

Verifica el servicio mariadb ejecutando el siguiente comando.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

La salida debería ser similar, la salida enabled confirma que mariadb está habilitado, y la salida active (running) confirma que mariadb está en ejecución.

comprobar mariadb

Ahora verifica Redis utilizando el siguiente comando.

sudo systemctl is-enabled redis
sudo systemctl status redis

El servidor Redis debería estar ejecutándose y habilitado como se muestra a continuación:

comprobar redis

A continuación, ejecuta el siguiente comando para configurar la versión de PHP por defecto en tu máquina Debian.

sudo update-alternatives --config php

Selecciona la versión de PHP por defecto a PHP 7.2.

configurar versión de php

Ejecuta el siguiente comando para configurar las herramientas PHP adicionales para que utilicen PHP 7.4.

sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4

Después, verifica la versión de PHP por defecto y algunas extensiones habilitadas utilizando el siguiente comando.

php -v
php -m

La siguiente salida confirma que PHP 7.2 está instalado y se ha convertido en la versión PHP por defecto en tu máquina Debian.

comprobar php

Por último, comprueba la ruta binaria de Certbot y su versión utilizando el siguiente comando.

which certbot
certbot --version

Deberías ver que Certbot 2.1. 0 está instalado en /usr/bin/certbot.

comprobar certbot

Actualizar PHP Pear

Tras instalar las dependencias, el siguiente paso es actualizar el paquete Pear a la última versión, lo que puede hacerse mediante la línea de comandos de Pear.

Ejecuta el siguiente comando para crear un nuevo directorio temporal /tmp/pear/cache y actualizar la versión de pear a 1.10.13.

sudo mkdir -p /tmp/pear/cache
sudo pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.13

Durante la instalación, deberías obtener una salida como la siguiente:

mejora pera

A continuación, ejecuta los siguientes comandos de pear para borrar la caché, actualizar los canales y actualizar todos los paquetes.

sudo pear clear-cache
sudo pear update-channels
sudo pear upgrade --force
sudo pear upgrade-all

Una vez terminado, verifica la versión de PEAR utilizando el siguiente comando.

pear version

Deberías ver que Pears está actualizado a v1.10.13.

comprueba la versión de pera

Configurar el servidor MariaDB

En la siguiente sección, crearás y asegurarás tu instalación de MariaDB Server mediante la utilidad mariadb-secure-installation. A continuación, crearás una nueva base de datos y un nuevo usuario que utilizará ownCloud.

Para asegurar el Servidor MariaDB, ejecuta el siguiente comando en tu terminal.

sudo mariadb-secure-installation

Durante el proceso, se te preguntará por algunas configuraciones de MariaDB. Introduce Y para aceptar la configuración o n para rechazarla. A continuación se indican algunas de las configuraciones de MariaDB que se te pedirán:

  • ¿Cambiar a autenticación unix_socket? Introduce n y pulsa ENTER. El usuario raíz por defecto de MariaDB ya está protegido. opcionalmente, también puedes habilitarlo escribiendo y para sí.
  • ¿Cambiar la contraseña de root? Introduce y para confirmar y establecer tu nueva contraseña de root de MariaDB.
  • ¿Eliminar usuario anónimo? Introduce y para confirmar.
  • ¿Deshabilitar el inicio de sesión de root de forma remota? Introduce y para confirmar. Sólo se permitirá la conexión local si utilizas el usuario raíz de MariaDB.
  • ¿Quitar la base de datos de prueba y el acceso a ella? Introduce y para confirmar y eliminar la base de datos por defecto «test».
  • Por último, introduce y de nuevo para recargar todos los privilegios de las tablas en tu servidor MariaDB y aplicar los nuevos cambios.

Después de asegurar MariaDB, crearás una nueva base de datos y un nuevo usuario que utilizará ownCloud. Para ello, debes iniciar sesión en el servidor MariaDB a través del cliente mariadb.

Ejecuta el siguiente comando para iniciar sesión en el Servidor MariaDB. Introduce tu contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

Ahora ejecuta las siguientes consultas MariaDB para crear una nueva base de datos y un nuevo usuario para ownCloud. En este ejemplo, crearás una nueva base de datos owncloud, un usuario owncloud, con la contraseña password.

CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

crear base de datos

Por último, verifica los privilegios del usuario owncloud ejecutando la siguiente consulta.

SHOW GRANTS FOR 'owncloud'@'localhost';

Deberías ver que el usuario owncloud puede acceder a la base de datos owncloud, que se utilizará para tu instalación de ownCloud.

verificar privilegios de usuario

Ahora escribe quit para salir del Servidor MariaDB.

Descargar el código fuente de ownCloud

Después de configurar el servidor MariaDB, descargarás el código fuente de ownCloud y configurarás el directorio DocumentRoot para tu instalación de ownCloud con su permiso y propiedad adecuados.

Primero, cambia tu directorio de trabajo a /var/www.

cd /var/www

A continuación, ejecuta los siguientes comandos wget para descargar el código fuente de ownCloud y el correspondiente archivo de suma de comprobación en tu sistema.

wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256

Ahora ejecuta el siguiente comando para asegurar la integridad del código fuente de ownCloud. Si tiene éxito, deberías obtener la salida«owncloud-complete-latest.tar.bz2: OK«.

sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

A continuación, ejecuta el siguiente comando para extraer el código fuente de ownCloud. El código fuente de ownCloud se extraerá al directorio /var/www/owncloud, que alose utilizará como directorio DocumentRoot.

tar -xf owncloud-complete-latest.tar.bz2

descargar owncloud

Por último, ejecuta el siguiente comando para cambiar la propiedad del directorio /var/www/owncloud al usuario www-data.

sudo chown -R www-data:www-data /var/www/owncloud

Configuración del host virtual Apache2

En esta sección, crearás una nueva configuración de host virtual que se utilizará para ejecutar ownCloud. También generarás certificados SSL/TLS desde Letsencrypt a través de Certbot. Así que antes de empezar, asegúrate de que tienes el nombre de dominio apuntando a la dirección IP de tu servidor.

Para empezar, ejecuta el siguiente comando para habilitar algunos módulos de Apache2 que utilizará ownCloud.

sudo a2enmod rewrite env dir mime unique_id headers ssl

activar módulos apache2

Ahora crea un nuevo archivo de host virtual /etc/apache2/sites-available/owncloud.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/apache2/sites-available/owncloud.conf

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio dentro del parámetro ServerName.

<VirtualHost *:80>
  ServerName hwdomain.io
  ServerAlias www.hwdomain.io
DocumentRoot /var/www/owncloud

ErrorLog ${APACHE_LOG_DIR}/hwdomain.io-error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io-access.log combined

Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud

</Directory>

</VirtualHost>

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando a2ensite para activar el archivo de host virtual owncloud.conf y verifica tu sintaxis de Apache2 mediante el comando apachectl. Si tu sintaxis es correcta, deberías obtener la salida«Sintaxis OK«.

sudo a2ensite owncloud.conf
sudo apachectl configtest

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios que has realizado.

sudo systemctl restart apache2

configurar vhost

Por último, ejecuta el siguiente comando certbot para generar certificados SSL/TLS para tu nombre de dominio ownCloud. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando con tu información.

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io

Una vez finalizado el proceso, tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/hwdomain.io. Además, tu archivo owncloud.conf de host virtual se configurará automáticamente con HTTPS.

Instalar ownCloud a través de la línea de comandos

En este punto, ya has instalado y configurado todas las dependencias necesarias para ownCloud. Puedes iniciar el paso de instalación a través de un navegador web o de la línea de comandos. En este ejemplo, instalarás ownCloud a través de la línea de comandos.

Mueve tu directorio de trabajo a /var/www/owncloud.

cd /var/www/owncloud

Ejecuta el siguiente comando para instalar ownCloud a través de la línea de comandos. Asegúrate de cambiar los detalles de la base de datos MariaDB y el nuevo usuario y contraseña de administrador para ownCloud.

sudo -u www-data /var/www/owncloud/occ maintenance:install \
   --database "mysql" \
   --database-name "owncloud" \
   --database-user "owncloud"\
   --database-pass "password" \
   --admin-user "admin" \
   --admin-pass "adminpassowncloud"

Una vez finalizada la instalación, deberías obtener la siguiente salida.

instalar owncloud mediante línea de comandos

A continuación, abre el script config.php de ownCloud utilizando el siguiente comando del editor nano.

sudo nano /var/www/owncloud/config/config.php

Añade el nombre de tu dominio ownCloud a trusted_domains como se muestra a continuación.

  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'hwdomain.io',
  ),

Guarda y cierra el archivo cuando hayas terminado.

Ahora abre tu navegador web y visita tu nombre de dominio ownCloud, como http://hwdoamin.io/. Serás redirigido a una conexión HTTPS segura y obtendrás la página de inicio de sesión de ownCloud.

Introduce tu usuario y contraseña de administrador y haz clic en Iniciar sesión.

página de inicio de sesión de owncloud

Si todo va bien, deberías ver tu panel de control de ownCloud como el siguiente.

panel owncloud

Ajuste del rendimiento de ownCloud

Ahora que ya has instalado ownCloud, en la última sección añadirás una nueva configuración para mejorar tu instalación de ownCloud. Crearás un nuevo crontab para ownCloud e integrarás Redis en tu instalación de ownCloud.

Crea un nuevo cron para ownCloud ejecutando el siguiente comando.

sudo crontab -u www-data -e

Selecciona tu editor de texto preferido e introduce la siguiente configuración. Con esto, ejecutarás el comando«/usr/bin/php -f /var/www/owncloud/occ system:cron» cada 15 minutos.

*/15  *  *  *  * /usr/bin/php -f /var/www/owncloud/occ system:cron

Guarda y cierra el archivo cuando hayas terminado.

A continuación, abre de nuevo el archivo ownCloud config. php utilizando el comando editor nano.

sudo nano /var/www/owncloud/config/config.php

Añade tu servidor Redis como memcache.locking de la siguiente forma:

<?php>
....
....
'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],

....
....
);

Guarda y sal del archivo cuando hayas terminado.

Ahora vuelve al panel de control de ownCloud, haz clic en el icono de usuario y selecciona Configuración.

menú ajustes

Haz clic en el menú General y comprueba la sección Advertencias de seguridad y configuración para obtener recomendaciones detalladas para tu instalación de ownCloud.

ajustes de seguridad

Conclusión

¡Enhorabuena! Has terminado la instalación de ownCloud en el servidor Debian 12 paso a paso. Has instalado ownCloud con la pila LAMP (Apache2, MariaDB y PHP), has asegurado ownCloud con certificados SSL/TLS de Letsencrypt y has integrado el servidor Redis en tu instalación de ownCloud.

También te podría gustar...