Cómo instalar Nextcloud en Rocky Linux
Nextcloud es un software gratuito y de código abierto que te permite crear servicios de alojamiento de archivos como Dropbox, Google Drive o Mega.nz. Está creado por el desarrollador original de Owncloud, Frank Karlitschek. En 2016, bifurca el proyecto Owncloud y crea un nuevo proyecto con el nombre de«Nextcloud«.
En ese momento, el proyecto Nextcloud crece rápidamente y se convierte en algo más que un software de alojamiento de archivos. Con el apoyo de muchos plugins, Nextcloud se convierte en un software de colaboración. Puedes instalar plugins para la gestión de proyectos, videoconferencia, edición colaborativa, toma de notas, cliente de correo electrónico, etc.
En esta guía, aprenderás a instalar Nextcloud en Rocky Linux 8.4. Instalarás Nextcloud bajo la pila LAMP (Linux, Apache2/httpd, MySQL/MariaDB y PHP).
Requisitos previos
- Un servidor Rocky Linux. Asegúrate de que todos los paquetes están actualizados a la última versión.
- Un usuario con privilegios de root. Este usuario obtendrá los privilegios de root a través del comando sudo.
Instalar el servidor web Apache/Httpd
Al principio, instalarás el servidor web Apache o httpd en el servidor Rocky Linux.
1. Ejecuta el siguiente comando dnf para instalar el servidor web httpd.
sudo dnf install httpd
Escribe«y» y pulsa«Enter» para confirmar e instalar los paquetes httpd.
2. Si la instalación se ha completado, habilita e inicia el servicio httpd con el siguiente comando.
sudo systemctl enable httpd
sudo systemctl start httpd
El comando«systemctl enable» permitirá que el servicio se inicie en cada arranque.
3. Después, ejecuta el siguiente comando para verificar el servicio httpd.
sudo systemctl status httpd
Y obtendrás un resultado similar al de abajo.
Como se ve en la captura de pantalla superior, el httpd está activo y funcionando.
Instalación de PHP en Rocky Linux
Por ahora, Nextcloud necesita PHP 7.4 o superior para la instalación. Ahora vas a instalar PHP 7.4 desde el repositorio remi.
1. Ejecuta el siguiente comando para añadir el repositorio epel y remi
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Escribe«y» y pulsa«Enter» para añadir el repositorio de epel y remi.
2. Una vez finalizada la instalación, verifica el repositorio epel y remi con el siguiente comando.
sudo dnf repolist
Verás el repositorio epel y remi en la lista de repositorios.
2. A continuación, restablece el módulo por defecto del repositorio PHP. A continuación, habilita el módulo para PHP 7.4 del repositorio remi.
Ejecuta el siguiente comando para restablecer el repositorio del módulo php por defecto.
sudo dnf module reset php
En el proceso, escribe«y» y pulsa«Enter» para añadir la clave gpg del repositorio remi.
Después, ejecuta el siguiente comando para habilitar el módulo php desde el repositorio remi.
sudo dnf module enable php:remi-7.4
Escribe«y» para confirmar y pulsa «Enter» para continuar. Ahora estás listo para instalar PHP y todas las extensiones para la instalación de WordPress.
3. Ejecuta el siguiente comando para instalar php con algunas extensiones necesarias.
sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu
4. Una vez completada la instalación de PHP, edita la configuración«php.ini» utilizando el editor nano.
nano /etc/php.ini
Cambia el valor por defecto con la configuración que aparece a continuación.
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam
Pulsa«Ctrl+x» y escribe«Y» para guardar la configuración y salir.
La configuración importante que debes conocer:
- Para la producción de Nextcloud, necesitas el «memory_limit» más de 512MB.
- La opción «upload_max_filesize» te permite configurar el tamaño máximo de subida a tu servidor Nextcloud.
- La opción «post_max_size» debe ser mayor que la opción «upload_max_filesize«.
- La opción «date.timezone» debe coincidir con la hora local del sistema«/etc/localtime«.
- Aumenta el «max_execution_time» en función de la carga de tu servidor.
5. A continuación, cambia el directorio de trabajo a«/etc/php.d/» y edita la configuración«10-opcache.ini» utilizando el editor nano.
cd /etc/php.d/
nano 10-opcache.ini
Añade la siguiente configuración para habilitar el plugin PHP opecache.
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
Pulsa el botón«Ctrl+x» y escribe«Y» para guardar la configuración y salir.
6. Para aplicar la nueva configuración de PHP, reinicia el servicio httpd con el siguiente comando.
sudo systemctl restart httpd
Instalación y configuración de MariaDB
En esta etapa, instalarás el servidor de bases de datos mariadb, asegurarás la implementación de mariadb y crearás una nueva base de datos y un usuario para Nextcloud.
1. Para instalar el servidor de bases de datos mariadb, ejecuta el siguiente comando.
sudo dnf install mariadb mariadb-server
Espera a que se instale mariadb.
2. 3. Una vez completada la instalación, habilita e inicia el servicio mariadb con el siguiente comando.
sudo systemctl enable mariadb
sudo systemctl start mariadb
4. El mariadb estará activo y en funcionamiento, ejecuta el siguiente comando para verificar el servicio mariadb.
sudo systemctl status mariadb
Si el servicio mariadb se está ejecutando, obtendrás una salida similar a la siguiente.
5. A continuación, tienes que asegurar tu despliegue de mariadb estableciendo la contraseña de root para mariadb y eliminando alguna configuración por defecto. Para ello, puedes utilizar la herramienta de línea de comandos«mysql_secure_installation«, que se incluye en la instalación por defecto de mariadb.
Ejecuta el comando «mysql_secure_installation» que aparece a continuación.
mysql_secure_installation
Al principio, se te pedirá que configures la contraseña de root de mariadb.
Escribe tu contraseña fuerte de root de mariadb y repítelo, luego presiona «Enter» para continuar.
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Ahora escribe«Y» y pulsa«Enter» para eliminar el usuario anónimo por defecto del servidor mariadb.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Después, desactiva el inicio de sesión remoto para el usuario«root» por defecto. Escribe«Y» y pulsa«Enter» para continuar.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
Escribe«Y» de nuevo para eliminar la base de datos por defecto «test» y pulsa«Enter».
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Y por último, escribe «Y« de nuevo para recargar todos los privilegios de las tablas para aplicar una nueva configuración.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Ahora el proceso se ha completado y verás la siguiente salida.
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Creación de la base de datos para Nextcloud
1. Entra en el shell de mariadb utilizando el comando mysql que aparece a continuación.
mysql -u root -p
2. Ahora ejecuta la siguiente consulta mysql para crear una nueva base de datos «nextcloud_db».
CREATE DATABASE netxcloud_db;
3. Ejecuta la siguiente consulta para crear un nuevo usuario de base de datos«nextuser«. Cambia la«strongpassword» por tu contraseña fuerte.
CREATE USER nextuser@localhost IDENTIFIED BY 'StrongPassword';
4. Permite que el usuario«nextuser» acceda y escriba en la «nextcloud_db» mediante la siguiente consulta.
GRANT ALL PRIVILEGES ON netxcloud_db.* TO nextuser@localhost;
5. Ahora recarga todos los privilegios de las tablas para aplicar la nueva configuración de la base de datos.
FLUSH PRIVILEGES;
6. A continuación, escribe«quit» y pulsa«Enter» para salir del shell de mariadb.
Descargar el código fuente de Nextcloud
1. Cambia el directorio de trabajo a«/var/www» y descarga la última versión del código fuente de Nextcloud utilizando el comando wget como se indica a continuación.
cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip
2. Extrae el código fuente de Nextcloud«nextcloud-xx.zip» y obtendrás un nuevo directorio«nextcloud«, luego cambia el propietario del directorio«nextcloud» al usuario«apache«.
unzip nextcloud-22.1.0.zip
chown -R apache:apache nextcloud
Ahora estás listo para configurar el host virtual httpd para Nextcloud.
Habilitar el módulo mod_ssl de Apache/Httpd
Para este tutorial, vas a instalar Nextcloud y asegurar con el SSL de Letsencrypt. Así que necesitas habilitar el mod_ssl para el servidor httpd en el Rocky Linux.
1. Instala el paquete«mod_ssl» utilizando el comando dnf que aparece a continuación.
sudo dnf install mod_ssl mod_http2
2. Después, genera el SSL por defecto para localhost utilizando el comando openssl que aparece a continuación. Pero si ya tienes los certificados«/etc/pki/tls/privado/localhost.key» y«/etc/pki/tls/certs/localhost.crt«, puedes saltarte esta etapa.
openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
Puedes simplemente pulsar enter para todas las preguntas, porque este certificado sólo se utilizará para localhost, no para el nombre de dominio de WordPress.
3. Ahora ejecuta el siguiente comando para asegurarte de que el mod_ssl está disponible en el servidor web httpd.
apachectl -M | grep ssl
Si obtienes una salida como«ssl«, entonces el mod_ssl está habilitado. De lo contrario, obtendrás una salida en blanco.
Generar SSL Letsencrypt con Certbot
En esta etapa, instalarás la herramienta cerbot y generarás los certificados SSL para la instalación de WordPress. Vas a generar Letsencrypts SSL con el plugin de webroot.
1. Ejecuta el siguiente comando para instalar la herramienta certbot para generar Letsencrypt SSL.
sudo dnf install certbot
Espera al proceso de instalación.
2. Una vez completada la instalación, crea un nuevo directorio para la autorización de letsencrypt utilizando los siguientes comandos.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
3. A continuación, cambia el directorio de trabajo a«/etc/httpd/conf.d/» y crea una nueva configuración«well-known.conf» utilizando el editor nano.
cd /etc/httpd/conf.d/
nano well-known.conf
Añade las siguientes configuraciones.
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
AllowOverride None
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
Pulsa«Ctrl+x» y escribe«y» para guardar y salir.
4. Ahora ejecuta los siguientes comandos para verificar la configuración de httpd y reinicia el servicio httpd.
apachectl configtest
sudo systemctl restart httpd
Si no tienes ningún error, estás listo para generar el SSL Letsencrypt con el plugin de webroot.
5. Antes de generar el SSL Letsencrypt, asegúrate de que tu nombre de dominio está resuelto a la dirección IP del servidor. Después, puedes generar el SSL Letsencrypt con el plugin de webroot ejecutando el comando certbot que aparece a continuación. Además, cambia la dirección de correo electrónico y el nombre de dominio por los tuyos.
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d files.domain.com -d
Cuando el proceso se complete, tus certificados SSL estarán disponibles en el directorio«/etc/letsencrypt/live/files.domain.com/«.
Configurar el host virtual Apache para Nextcloud
En este paso, añadirás una nueva configuración de host virtual apache/httpd para Nextcloud.
1. Cambia el directorio de trabajo a«/etc/httpd/conf.d» y crea una nueva configuración«nextcloud.conf» utilizando el editor nano.
cd /etc/httpd/conf.d/
nano nextcloud.conf
2. Cambia el nombre del dominio de detalle y el directorio de la ruta SSL por los tuyos y pega la configuración en el archivo «nextcloud.conf».
<VirtualHost *:80>
ServerName files.domain.com
ServerAlias www.files.domain.com
# auto redirect HTTP to HTTPS
Redirect permanent / https://files.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName files.domain.com
ServerAlias www.files.domain.com
DocumentRoot /var/www/nextcloud/
Protocols h2 http/1.1
# auto redirect www to non-www
<If "%{HTTP_HOST} == 'www.files.domain.com'">
Redirect permanent / https://files.domain.com/
</If>
# log files
ErrorLog /var/log/httpd/files.domain.com-error.log
CustomLog /var/log/httpd/files.domain.com-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/files.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.domain.com/privkey.pem
# HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
Pulsa«Ctrl+x» y escribe«Y» para guardar la configuración y salir.
3. A continuación, ejecuta el siguiente comando para verificar la configuración de httpd.
sudo apachectl configtest
Si no obtienes ningún error, reinicia el servicio httpd con el siguiente comando.
sudo systemctl restart httpd
Ahora estás listo para la instalación de Nextcloud a través del navegador web.
Instalación de Nextcloud
Si toda la configuración del servidor está completa, puedes acceder a tu instalación de Nextcloud con el navegador web.
1. Abre tu navegador web y escribe la dirección URL de tu instalación de Nextcloud.
http://files.domain.com
Ahora serás redirigido a la conexión segura HTTPS y obtendrás la página siguiente.
- En la sección «Crear una cuenta de administrador», escribe un nuevo nombre de usuario y contraseña para tu administrador.
- En la sección «Carpeta de datos», déjala por defecto.
- En la sección «Configurar la base de datos», elige «MySQL/MariaDB» y escribe los detalles de la configuración de la base de datos
- Además, puedes instalar las aplicaciones recomendadas marcando la opción de la casilla. O desmarca la opción de la casilla si no quieres hacerlo.
Después, puedes hacer clic en el botón«Finalizar la configuración«.
2. Una vez completado el proceso de instalación, verás el panel de control predeterminado de Nextcloud como el que aparece a continuación.
3. Ahora haz clic en el menú«Archivos» y verás la lista de archivos y carpetas del panel de control del usuario.
4. Para acceder a la página administrativa, haz clic en el perfil de usuario de la parte superior y selecciona«Configuración«.
En la sección «Administrativo«, puedes cambiar la configuración por defecto de Nextcloud.
5. Para añadir nuevos plugins o aplicaciones, puedes hacer clic en el perfil de usuario de la parte superior y seleccionar «Aplicaciones«.
Ahora obtendrás la página siguiente.
Elige la categoría de plugins que te convenga y haz clic en el botón «Descargar y habilitar». Después, haz clic en «Habilitar» para activar la aplicación o el plugin.
A continuación se muestra la captura de pantalla después de habilitar el tema Nextcloud Breeze Dark.
Ajuste del rendimiento de Nextcloud
Después de instalar Nextcloud, puedes hacer algunos pasos más para aumentar el rendimiento de Nextcloud habilitando la memoria caché local y configurando un cronjob para el propio Nextcloud.
1. En la sección superior de instalación de PHP, ya has configurado el PHP para el almacenamiento en caché. Para habilitar la caché en Nextcloud, edita la configuración de Nextcloud «config.php».
Cambia el directorio de trabajo a«/var/www/nextcloud/config» y edita la configuración «config.php « utilizando el editor nano.
cd /var/www/nextcloud/config/
nano config.php
Añade la siguiente configuración dentro del paréntesis‘array ( .. );‘ como se indica a continuación
<?php
$CONFIG = array (
....
....
....
# Additional configuration
'memcache.local' => '\OC\Memcache\APCu',
);
Ahora pulsa el botón«Ctrl+x» y escribe«y» para guardar la configuración y salir.
2. Un sistema Nextcloud necesita ejecutar algunas tareas en segundo plano de forma regular y sin ninguna interacción del usuario/administrador. Para ello, puedes utilizar el cronjob para programar las tareas de Nextcloud.
En Rocky Linux, el usuario httpd por defecto es«apache«. Crea un nuevo cronjob para el usuario «apache» utilizando el siguiente comando.
crontab -u apache -e
Añade la siguiente configuración.
*/5 * * * * php -f /var/www/nextcloud/cron.php
Nota sobre la configuración y salida.
Configuración del cronjob que debes conocer:
- Esta configuración del cronjob permite al usuario «apache» ejecutar el script PHP«/var/www/nextcloud/cron.php» cada 5 minutos.
Para verificar la configuración del cronjob, puedes ejecutar el siguiente comando.
crontab -u apache -l
Si la configuración es un éxito, obtendrás la configuración en la parte superior como resultado. En caso contrario, obtendrás un resultado en blanco.
Conclusión
¡Enhorabuena! Has instalado con éxito Nextcloud en Rocky Linux 8.4. El servidor Nextcloud se está ejecutando bajo la pila LAMP con SSL activado. Además, tu instalación de Nextcloud se está ejecutando con la memoria caché habilitada con las extensiones PHP APC y opcache.