Cómo instalar ownCloud en Rocky Linux
ownCloud es un 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. Y te permite sincronizar fácilmente eventos de calendario, almacenar archivos, imágenes y cualquier formato de archivo. Y también te permite organizar como tareas, libretas de direcciones, y muchos más. ownCloud es una aplicación extensible que te permite instalar la aplicación adicional en la parte superior de la misma.
En este tutorial, te guiaremos a través del proceso de instalación y configuración de un alojamiento de archivos de código abierto ownCloud en el servidor Linux Rocky. Este tutorial proporcionará las instalaciones completas de ownCloud, que incluyen la Pila LAMP, Redis, la configuración de SELinux y Firewalld.
Requisitos previos
Para empezar, necesitarás los siguientes requisitos para completar este tutorial:
- Un servidor Rocky Linux – Este ejemplo utiliza el Rocky Linux 8.x con el nombre de host‘owncloud-server‘ y una dirección IP‘192.168.5.100‘.
- Un usuario no root con privilegios de administrador sudo/root – o puedes utilizar el usuario root.
- Un nombre de dominio o subdominio apuntando a la dirección IP del servidor – Este ejemplo utiliza el nombre de dominio ‘hwdomain.io‘.
Instalación de las dependencias básicas
En el siguiente paso, configurarás repositorios e instalarás dependencias básicas para ownCloud. Instalarás el repositorio EPEL, configurarás el repositorio Redis e instalarás la última versión de Redis v6, después instalarás dependencias básicas como openssl, ImageMagick y herramientas zip.
Instala el repositorio EPEL mediante el siguiente comando dnf.
sudo dnf install epel-release
Cuando se te pida confirmación, introduce y y pulsa ENTER para continuar.
A continuación, ejecuta el siguiente comando para habilitar el repositorio para Redis v6. El repositorio Rocky Linux proporciona múltiples versiones de Redis, deberías habilitar la última para la instalación ownCloud.
sudo dnf module reset redis sudo dnf module enable redis:6
Introduce y cuando se te solicite y pulsa ENTER para continuar.
Ahora que los repositorios están configurados, ejecuta el siguiente comando dnf para instalar las dependencias básicas de los paquetes para ownCloud.
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick
Introduce y cuando se te solicite la configuración y pulsa INTRO.
Una vez instaladas las dependencias básicas de paquetes, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio‘redis’.
sudo systemctl enable redis sudo systemctl start redis
El servicio Redis debería estar ahora en ejecución y habilitado, lo que significa que se ejecutará automáticamente al arrancar el sistema.
Por último, verifica el servicio Redis mediante el siguiente comando systemctl. Deberías ver el servicio Redis en ejecución y habilitado.
sudo systemctl status redis
Instalación de paquetes y extensiones PHP 7.4
La última versión de ownCloud aún requiere PHP 7.4 para su instalación y aún no es totalmente compatible con PHP 8. Y para este tutorial, instalarás PHP 7.4 a través del repositorio de terceros REMI.
Ahora configurarás un repositorio REMI adicional e instalarás paquetes PHP 7.4 desde el repositorio REMI.
En primer lugar, ejecuta el siguiente comando para añadir el repositorio REMI para el servidor Rocky Linux 8.x.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Introduce y cuando se te solicite y pulsa INTRO para continuar.
A continuación, ejecuta el siguiente comando para habilitar el repositorio REMI para los paquetes PHP 7.4. Introduce y y pulsa INTRO para confirmar.
sudo dnf module reset php sudo dnf module enable php:remi-7.4
Ahora que el repositorio REMI está configurado, ejecuta el siguiente comando dnf para instalar PHP 7.4 con extensiones PHP adicionales para ownCloud.
sudo dnf install --enablerepo=remi php php-intl php-mysql php-mbstring \ php-imagick php-igbinary php-gmp php-bcmath \ php-curl php-gd php-zip php-imap php-ldap \ php-bz2 php-ssh2 php-common php-json \ php-xml php-devel php-apcu php-redis \ php-smbclient php-pear php-phpseclib
Cuando se te solicite, introduce y para confirmar, y pulsa INTRO.
Una vez instalados los paquetes PHP, ejecuta el siguiente comando para verificar la versión actual de PHP en tu sistema.
php --version
Deberías ver que PHP 7.4 está instalado en tu sistema.
Instalación del servidor web httpd
El alojamiento de archivos ownCloud puede ejecutarse en algunos servidores web populares como Apache/httpd, Nginx y Microsoft IIS. En este ejemplo, utilizarás Apache/Httpd para tu despliegue de ownCloud.
Por lo tanto, primero instalarás los paquetes Httpd en tu servidor Linux Rocky.
Los paquetes por defecto del servidor web httpd están disponibles en el repositorio appstream de Rocky Linux, instálalo mediante el comando dnf que aparece a continuación.
sudo dnf install httpd httpd-devel httpd-tools mod_ssl
Cuando se te pida la configuración, introduce y y pulsa ENTER para continuar.
Una vez instalado httpd, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio httpd. Ahora el servidor web httpd debería estar funcionando.
sudo systemctl enable httpd sudo systemctl start httpd
Comprueba el estado del servidor web httpd utilizando el siguiente comando.
sudo systemctl status httpd
Una vez que ejecutes el comando, se imprimirá lo siguiente en tu terminal: el servicio httpd está actualmente en ejecución y habilitado, lo que significa que el httpd se ejecutará automáticamente al arrancar el sistema.
Ahora que el servidor web httpd está en ejecución, debes configurar el firewalld y permitir el acceso a los servicios HTTP y HTTPS.
Ejecuta el siguiente comando para añadir los servicios HTTP y HTTPS al firewalld.
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent
Después, recarga el firewalld para aplicar los nuevos cambios y comprueba que los servicios HTTP y HTTPS se han añadido al firewalld.
sudo firewall-cmd --reload sudo firewall-cmd --list-services
La siguiente salida te muestra que los servicios HTTP y HTTPS se han añadido al firewalld. Y ahora puedes acceder a tu instalación httpd desde fuera de tu red.
Ahora que has instalado PHP 7.4 y el servidor web httpd, vas a verificar la instalación creando un archivo PHPINFO y accediendo a él a través del navegador web. Así comprobarás que tanto PHP 7.4 como httpd funcionan y obtendrás información detallada sobre tus configuraciones de PHP.
Ejecuta el siguiente comando para crear un nuevo archivo PHPINFO ‘/var/www/html/info.php‘.
cat <<EOF | sudo tee /var/www/html/info.php <?php phpinfo(); ?> EOF
Por último, abre el navegador web de tu ordenador y visita la dirección IP del servidor seguida de la ruta ‘/info.php’ (es decir: http: //192.168.5.100/info.php).
Deberías ver una página como la siguiente captura de pantalla – El servidor web PHP 7.4 y httpd está funcionando y también verás información detallada y configuraciones de PHP en tu pantalla.
Instalación y configuración del servidor MariaDB
ownCloud soporta múltiples bases de datos para su instalación. Soporta RDBMS como MariaDB/MySQL, PostgreSQL, base de datos Oracle y SQLite (la instalación por defecto). Para la producción, deberías ejecutar ownCloud con MySQL/MariaDB o PostgreSQL, que es más estable y te ofrece más rendimiento.
En este paso, instalarás el servidor de base de datos MariaDB, asegurarás MariaDB mediante la herramienta ‘mysql_secure_installation’, y crearás una nueva base de datos y un nuevo usuario para el despliegue de ownCloud.
El servidor de base de datos MariaDB por defecto está disponible en el repositorio de Rocky Linux, ejecuta el comando dnf que aparece a continuación para instalarlo.
sudo dnf install mariadb-server
Introduce y cuando se te pida la configuración y pulsa ENTER para instalarlo.
Una vez instalado MariaDB, inicia y habilita el servicio ‘mariadb’ mediante el comando systemctl que aparece a continuación.
sudo systemctl enable mariadb sudo systemctl start mariadb
El servidor MariaDB debería estar ejecutándose ahora, utiliza el siguiente comando para verificar el servicio y asegurarte de que se está ejecutando.
sudo systemctl status mariadb
En la siguiente salida, puedes ver que el servidor de bases de datos MariaDB se está ejecutando y está habilitado.
Después de instalar MariaDB, a continuación asegurarás tu despliegue mediante el comando «mysql-secure_installation» proporcionado por los paquetes MariaDB. Este comando te ayuda a asegurar tu despliegue de MariaDB configurando la contraseña de root, eliminando el usuario anónimo por defecto y la prueba de base de datos por defecto, deshabilitando el inicio de sesión de root de MariaDB de forma remota.
Ejecuta el siguiente comando para empezar a asegurar MariaDB.
sudo mysql_secure_installation
Te hará algunas preguntas sobre la configuración de MariaDB y deberás introducir y para confirmar o n para no.
- ¿Cambiar el método de autenticación para el usuario root a unix_socket? Introduce n.
- ¿Cambiar la contraseña raíz de MariaDB? Introduce y para confirmar, luego introduce la nueva contraseña y repite.
- ¿Prohibir el acceso remoto al usuario root? Introduce y para confirmar.
- ¿Eliminar el usuario anónimo por defecto de MariaDB? Introduce y para eliminar el usuario anónimo.
- ¿Borrar la prueba de base de datos por defecto de MariaDB? Introduce y para eliminar la prueba de base de datos.
- ¿Recargar privilegios de tablas? Introduce y para confirmar y MariaDB recargará todos los privilegios y aplicará los nuevos cambios.
Llegados a este punto, ya has instalado y asegurado la instalación de MariaDB. Ahora vas a configurar una nueva base de datos MariaDB y un nuevo usuario para ownCloud. Y esto se puede hacer a través del intérprete de comandos MariaDB/MySQL.
Accede al intérprete de comandos MariaDB con el usuario root mediante el comando‘mysql‘ que aparece a continuación.
sudo mysql -u root -p
Cuando te pida la contraseña, introduce la contraseña de tu usuario raíz MariaDB.
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 y un nuevo usuario‘owncloud‘ para la instalación de ownCloud. Además, asegúrate de sustituir la contraseña.
CREATE DATABASE owncloud; CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass'; GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
A continuación, ejecuta la siguiente consulta para verificar el privilegio del usuario ‘owncloud‘. A continuación, ejecuta la consulta‘quit‘ o‘exit’ para cerrar la sesión del intérprete de comandos MariaDB.
SHOW GRANTS FOR 'owncloud'@'localhost'; quit
En la siguiente captura de pantalla, verás que el usuario ‘owncloud‘ tiene acceso y privilegios a la base de datos‘owncloud‘.
Descargar el código fuente de ownCloud
Después de haber instalado MariaDB y creado la base de datos y el usuario para wonCloud. En el siguiente paso, descargarás el código fuente de ownCloud y establecerás el directorio de instalación en ‘/var/www/owncloud‘. En el momento de escribir esto, la última versión de ownCloud es la v10.11. y descargarás su código fuente.
Mueve el directorio de trabajo a ‘/var/www‘.
cd /var/www
Descarga la última versión del código fuente de ownCloud y el archivo SHA256 para verificar el código fuente.
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 verifica el código fuente de ownCloud mediante el siguiente comando sha256sum. Si el código fuente está verificado, deberías obtener el mensaje de salida«OK«.
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
A continuación, extrae el código fuente de ownCloud mediante el siguiente comando tar. Deberías obtener el nuevo directorio ‘/var/www/owncloud’, que se utilizará como instalación para ownCloud.
sudo tar -xvjf owncloud-complete-latest.tar.bz2
Por último, cambia la propiedad del directorio de instalación de ownCloud al usuario‘apache‘ mediante el siguiente comando.
sudo chown -R apache:apache /var/www/owncloud
Configurar el host virtual httpd
Tienes que crear una nueva configuración de host virtual httpd antes de acceder a tu instalación de wonCloud. Además, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP de tu servidor y certificados SSL generados para ese dominio.
Ahora crearás una nueva configuración de host virtual httpd para ownCloud. Además, habilitarás la conexión segura HTTPS para owncloud mediante certificados SSL de Letsencrypt.
Crea una nueva configuración de host virtual httpd para owncloud‘/etc/httpd/conf.d/owncloud.conf ‘ mediante el editor nano que aparece a continuación.
sudo nano /etc/httpd/conf.d/owncloud.conf
Añade la siguiente configuración al archivo y asegúrate de cambiar el dominio y la ruta de los certificados SSL. En este ejemplo, instalarás owncloud en el subdirectorio con el dominio principal‘hwdomain.io‘.
<VirtualHost *:80> ServerName hwdomain.io Redirect permanent / https://hwdomain.io/ </VirtualHost> <VirtualHost *:443> ServerName hwdomain.io DocumentRoot /var/www Protocols h2 http:/1.1 <If "%{HTTP_HOST} == 'www.hwdomain.io'"> Redirect permanent / https://hwdomain.io/ </If> ErrorLog /var/log/httpd/hwdomain.io-error.log CustomLog /var/log/httpd/hwdomain.io-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCompression off Header always set Strict-Transport-Security "max-age=63072000" 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 para verificar la configuración httpd y asegúrate de que no tienes ningún error. Si no hay ningún error, deberías obtener un mensaje de salida como‘Sintaxis OK‘.
sudo apachectl configtest
Ahora reinicia el servicio httpd para aplicar los nuevos cambios.
sudo systemctl restart httpd
En este punto, las configuraciones básicas de LAMP Stack para la instalación de ownCloud han finalizado. Puedes acceder a tu instalación de ownCloud a través de tu dominio, pero por último, tendrás que configurar SELinux si estás ejecutando ownCloud con el modo de aplicación de SELinux.
Configurar SELinux
En este paso, establecerás la configuración de SELinux para ownCloud. En primer lugar, instalarás la herramienta de gestión de SELinux, luego configurarás el etiquetado para el código fuente de ownCloud y permitirás que el servicio httpd acceda a otros servicios.
Ejecuta el siguiente comando para instalar el paquete«policycoreutils-python-utils» para la gestión de SELinux.
sudo dnf install policycoreutils-python-utils
Introduce y cuando se te pida la configuración y pulsa ENTER para continuar.
A continuación, ejecuta el siguiente comando para configurar el etiquetado del código fuente de ownCloud.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/data(/.*)?' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/config(/.*)?' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps(/.*)?' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps-external(/.*)?' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.htaccess' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.user.ini'
sudo restorecon -Rv ‘/var/www/owncloud/’
Ahora ejecuta el siguiente comando para permitir los servicios httpd para acceder a otros servicios de red.
sudo setsebool -P httpd_can_network_connect_db on sudo setsebool httpd_unified on sudo setsebool -P httpd_can_connect_ldap on sudo setsebool -P httpd_can_network_connect on sudo setsebool -P httpd_can_network_memcache on sudo setsebool -P httpd_can_sendmail on sudo setsebool -P httpd_use_cifs on sudo setsebool -P httpd_use_fusefs on sudo setsebool -P httpd_use_gpg on
Ahora que el SElinux está configurado, puedes iniciar la instalación de ownCloud a través del navegador web.
Proceso de instalación de ownCloud
Ahora que has terminado la configuración de LAMP Stack y añadido el host virtual para ownCloud, también has configurado el SELinux. Ahora puedes iniciar la instalación de ownCloud desde tu navegador web.
En este paso, iniciarás la instalación de ownCloud y aprenderás a crear un nuevo directorio y a subir archivos a través del panel de usuario de ownCloud.
Abre tu navegador web y visita el nombre de dominio de tu instalación de ownCloud siguiendo la ruta‘/owncloud‘ (es decir: https://hwdomain.io/owncloud/).
Ahora deberías acceder a la página de la instalación de ownCloud.
Introduce el nuevo usuario y contraseña de administrador para tu ownCloud. A continuación, selecciona el tipo de base de datos MySQL/MariaDB e introduce los detalles de la base de datos MariaDB que has creado y, por último, haz clic en el botón«Finalizar la instalación» para continuar e instalar.
Una vez instalado ownCloud, aparecerá la página de inicio de sesión de ownCloud.
Introduce el usuario administrador y la contraseña de tu ownCloud y haz clic en«Iniciar sesión«.
Si estás utilizando el usuario administrador y la contraseña correctos, deberías obtener la página del panel de usuario de ownCloud.
Desde el panel de control de usuario de ownCloud, ahora puedes crear un nuevo directorio y subir nuevos archivos a ownCloud.
Haz clic en el botón + de la parte superior para crear un nuevo directorio y subir nuevos archivos.
En la siguiente captura de pantalla, puedes ver que el nuevo directorio‘directorio-prueba‘ se ha creado con nuevos archivos subidos al directorio.
Finalizando: Configurar Cron para ownCloud
ownCloud proporciona varias formas de ejecutar el proceso en segundo plano. Deberías utilizar cron para ejecutar el proceso ownCloud en segundo plano.
Ejecuta el siguiente comando para cambiar el proceso ownCloud en segundo plano a cron.
sudo -u apache /var/www/owncloud/occ background:cron
Ahora crea un nuevo cron mediante el siguiente comando.
sudo crontab -u apache -e
Cuando se te pida que selecciones el editor, elige el que prefieras y añade al archivo la nueva configuración que aparece a continuación.
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora vuelve al panel de usuario de ownCloud y haz clic en el menú de usuario de la parte superior, luego selecciona«Configuración«.
A continuación, haz clic en el menú«General» de la izquierda y en la sección«Advertencias de seguridad y configuración«, deberías ver el mensaje«Todas las comprobaciones superadas«. Has finalizado la instalación de ownCloud en Rocky Linux sin ningún error.
Conclusión
En este tutorial, has instalado ownCloud en un servidor Rocky Linux. Has instalado el alojamiento de archivos autoalojado ownCloud con la pila LAMP (Linux, Apache2/httpd, MariaDB/MySQL y PHP). También has asegurado la instalación de ownCloud mediante certificados SSL y ejecutando ownCLoud con SELinux activado en un servidor Rocky Linux.
Con esta instalación de ownCLoud completada, ya puedes empezar a subir archivos a tu servidor ownCloud. O si quieres continuar, ahora puedes integrar ownCloud con aplicaciones de terceros que puedan aprovechar la funcionalidad de ownCloud, como por ejemplo, desde alojamiento de archivos a herramienta de colaboración.