Cómo instalar Nextcloud en Rocky Linux

Instalar el servidor web Apache/Httpd

Nextcloud es un software gratuito y de código abierto que le permite crear servicios de alojamiento de archivos como Dropbox, Google Drive o Mega.nz. Fue creado por el desarrollador original de owncloud, Frank Karlitschek. En 2016, bifurca el Owncloud proyecto y crea un nuevo proyecto con el nombre «Nextcloud».

En este momento, el Nextcloud crece rápidamente y se convierte en más que un software de alojamiento de archivos. Con el apoyo de muchos complementos, Nextcloud se convierte en un software de colaboración de este tipo. Puede instalar complementos para la gestión de proyectos, videoconferencias, edición colaborativa, toma de notas, cliente de correo electrónico, etc.

En esta guía, aprenderá a instalar Nextcloud en Rocky Linux 8.4. Instalará Nextcloud bajo LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB y PHP).

requisitos previos

  • Un servidor Rocky Linux. Asegúrese 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.

Instalación del servidor web Apache/Httpd

Al principio, instalará el servidor web Apache o httpd en el servidor Rocky Linux.

1. Ejecute el siguiente comando dnf para instalar el servidor web httpd.

sudo dnf install httpd

Escribe «y» y presione «Ingresar» para confirmar e instalar paquetes httpd.

Instalar el servidor web Apache/Httpd

2. Si la instalación está completa, habilite e inicie el servicio httpd con el siguiente comando.

sudo systemctl enable httpd
sudo systemctl start httpd

Los «Habilitar systemctlEl comando permitirá que el servicio se inicie en cada arranque.

3. Después de eso, ejecute el siguiente comando para verificar el servicio httpd.

sudo systemctl status httpd

Y obtendrá un resultado similar al siguiente.

Estado del servicio del servidor web Apache

Como se ve en la captura de pantalla superior, el httpd está activo y ejecutándose.

Instalación de PHP en Rocky Linux

Por ahora, Nextcloud necesita PHP 7.4 o superior para la instalación. Ahora instalará PHP 7.4 desde el repositorio de remi.

1. Ejecute el siguiente comando para agregar epel y remi Repository

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 presione «Ingresar» para agregar el repositorio epel y remi.

Cuando se complete la instalación, verifique el repositorio de epel y Remi usando el siguiente comando.

sudo dnf repolist

Verá el repositorio epel y remi en la lista de repositorios.

Comprobación del repositorio EPEL y REMI

2. A continuación, restablezca el módulo PHP del repositorio predeterminado. Luego habilite el módulo para PHP 7.4 desde el repositorio de remi.

Ejecute el siguiente comando para restablecer el repositorio del módulo php predeterminado.

sudo dnf module reset php

En el proceso, escriba «y» y presione «Ingresar» para agregar el repositorio de claves gpg remi.

Agregar repositorio GPG Key remi

Después de eso, ejecute el siguiente comando para habilitar el módulo php desde el repositorio de remi.

sudo dnf module enable php:remi-7.4

Escribe «y» para confirmar y presione «Ingresar» para continuar. Ahora está listo para instalar PHP y todas las extensiones para la instalación de WordPress.

Habilitar repositorio remi para PHP 7.4

3. Ejecute 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, edite la configuración «php.ini» usando el editor nano.

nano /etc/php.ini

Cambie el valor predeterminado con la configuración 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

Prensa «Control+x» y escriba «Y» para guardar la configuración y salir.

La configuración importante que debes saber:

  • Para la producción de Nextcloud, necesita «memory_limit» más de 512 MB.
  • La opción «upload_max_filesize» le permite configurar el tamaño máximo de carga en su servidor Nextcloud.
  • La opción «post_max_size» debe estar más alto que la opción «upload_max_filesize».
  • La opción «date.timezone» debe coincidir con la hora local del sistema «/etc/localtime».
  • Aumente el «max_execution_time» dependiendo de la carga de su servidor.

5. A continuación, cambie el directorio de trabajo a «/etc/php.d/» y editar la configuración «10-opcache.ini» usando el editor nano.

cd /etc/php.d/
nano 10-opcache.ini

Agregue la siguiente configuración para habilitar el complemento opecache de PHP.

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

Presione el «Control+x«botón y tipo»Y» para guardar la configuración y salir.

6. Para aplicar una nueva configuración de PHP, reinicie el servicio httpd con el siguiente comando.

sudo systemctl restart httpd

Instalación y configuración de MariaDB

Para esta etapa, instalará el servidor de la base de datos mariadb, asegurará la implementación de mariadb y creará una nueva base de datos y un usuario para Nextcloud.

1. Para instalar el servidor de base de datos mariadb, ejecute el siguiente comando.

sudo dnf install mariadb mariadb-server

Espere a que se instale mariadb.

Instalar el servidor de base de datos MariaDB

2. Una vez completada la instalación, habilite e inicie el servicio mariadb con el siguiente comando.

sudo systemctl enable mariadb
sudo systemctl start mariadb

4. El mariadb estará activo y ejecutándose, ejecute el siguiente comando para verificar el servicio mariadb.

sudo systemctl status mariadb

Si el servicio mariadb se está ejecutando, obtendrá un resultado similar al que se muestra a continuación.

Comprobación del estado del servicio mariadb

5. A continuación, debe asegurar su implementación de mariadb configurando la contraseña raíz para mariadb y eliminando algunas configuraciones predeterminadas. Para ello, puede utilizar la herramienta de línea de comandos ‘mysql_secure_installation‘, que se incluye en la instalación predeterminada de mariadb.

Ejecutar el «mysql_secure_installation«comando a continuación.

mysql_secure_installation

Al principio, se le pedirá que configure la contraseña raíz de mariadb.

Escriba su contraseña segura de raíz de mariadb y repita, luego presione «Ingresar» 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 escriba «Y» y presione «Ingresar» para eliminar el usuario anónimo predeterminado 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 de eso, deshabilite el inicio de sesión remoto para el usuario predeterminado ‘raíz‘. Escribe «Y» y presione «Ingresar» 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» otra vez para eliminar la base de datos predeterminada «prueba» y presione «Ingresar«.

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 el último, escriba «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 está completo y verá el siguiente resultado.

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 base de datos para Nextcloud

1. Inicie sesión en el shell de mariadb utilizando el siguiente comando mysql.

mysql -u root -p

2. Ahora ejecute la siguiente consulta mysql para crear una nueva base de datos «nextcloud_db».

CREATE DATABASE netxcloud_db;

3. Ejecute la siguiente consulta para crear un nuevo usuario de base de datos «próximo usuario«. Cambiar el «contraseña segura» con su contraseña segura.

CREATE USER [email protected] IDENTIFIED BY 'StrongPassword';

4. Permitir al usuario «próximo usuario» para acceder y escribir el «nextcloud_db» utilizando la siguiente consulta.

GRANT ALL PRIVILEGES ON netxcloud_db.* TO [email protected];

5. Ahora vuelva a cargar todos los privilegios de las tablas para aplicar la nueva configuración de la base de datos.

FLUSH PRIVILEGES;

Entonces puedes escribir «abandonar» y presione «Ingresar» para salir del shell mariadb.

Crear nueva base de datos para Nextcloud

Descargar el código fuente de Nextcloud

1. Cambie el directorio de trabajo a «/var/www» y descargue la última versión del código fuente de Nextcloud usando el comando wget como se muestra a continuación.

cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip

2. Extraiga el código fuente de Nextcloud «nextcloud-xx.zip» y obtendrá un nuevo directorio «próxima nube«, luego cambie el propietario del «próxima nube«directorio a»apache«usuario.

unzip nextcloud-22.1.0.zip
chown -R apache:apache nextcloud

Ahora está listo para configurar el host virtual httpd para Nextcloud.

Habilitar módulo Apache/Httpd mod_ssl

Para este tutorial, instalará Nextcloud y se asegurará con SSL de Letsencrypt. Por lo tanto, debe habilitar mod_ssl para el servidor httpd en Rocky Linux.

1. Instalar el paquete «mod_ssl» usando el comando dnf a continuación.

sudo dnf install mod_ssl mod_http2

2. Después de eso, genere el SSL predeterminado para localhost usando el comando openssl a continuación. Pero si ya tiene los certificados «/etc/pki/tls/private/localhost.key» y «/etc/pki/tls/certs/localhost.crt», puede omitir 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

Puede simplemente presionar enter para todas las preguntas porque este certificado solo se usará para localhost, no para el nombre de dominio de WordPress.

Generar SSL para Localhost Rocky Linux

3. Ahora ejecute el siguiente comando para asegurarse de que mod_ssl está disponible en el servidor web httpd.

apachectl -M | grep ssl

Si tiene una salida como «SSL«, entonces mod_ssl está habilitado. De lo contrario, obtendrá una salida en blanco.

Habilitar Mod_ssl y mod_http2 Rocky Linux

Generando SSL Letsencrypt con Certbot

En esta etapa, instalará la herramienta cerbot y generará los certificados SSL para la instalación de WordPress. Generará SSL Letsencrypts con el complemento webroot.

1. Ejecute el siguiente comando para instalar la herramienta certbot para generar SSL Letsencrypt.

sudo dnf install certbot

Espere el proceso de instalación.

2. Una vez que se complete la instalación, cree un nuevo directorio para la autorización de letsencrypt usando 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, cambie el directorio de trabajo a «/etc/httpd/conf.d/» y crear una nueva configuración «conocido.conf» usando el editor nano.

cd /etc/httpd/conf.d/
nano well-known.conf

Agregue 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>

Prensa «Control+x» y escriba «y» para guardar y salir.

4. Ahora ejecute los siguientes comandos para verificar la configuración de httpd y reinicie el servicio httpd.

apachectl configtest
sudo systemctl restart httpd

Si no tiene ningún error, está listo para generar SSL Letsencrypt con el complemento webroot.

Configuración de apache httpd para la autorización de webroot de letsencrypt

5. Antes de generar SSL Letsencrypt, asegúrese de que su nombre de dominio se resuelva en la dirección IP del servidor. Después de eso, puede generar SSL Letsencrypt con el complemento webroot ejecutando el comando certbot a continuación. Además, cambie la dirección de correo electrónico y el nombre de dominio por los suyos propios.

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d files.domain.com -d

Cuando se complete el proceso, sus certificados SSL estarán disponibles en el «/etc/letsencrypt/live/files.domain.com/«directorio.

Configuración del host virtual de Apache para Nextcloud

En este paso, agregará una nueva configuración de host virtual apache/httpd para Nextcloud.

1. Cambie el directorio de trabajo a «/etc/httpd/conf.d» y crear nueva configuración «nextcloud.conf» usando el editor nano.

cd /etc/httpd/conf.d/
nano nextcloud.conf

Cambie el nombre de dominio detallado y el directorio de la ruta SSL por los suyos propios y pegue la configuración en «nextcloud.conf» expediente.

<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>


Prensa «Control+x» y escriba «Y» para guardar la configuración y salir.

3. A continuación, ejecute el siguiente comando para verificar la configuración de httpd.

sudo apachectl configtest

Si no obtiene ningún error, reinicie el servicio httpd usando el siguiente comando.

sudo systemctl restart httpd

Ahora está listo para la instalación de Nextcloud a través del navegador web.

Configuración del host virtual apache/httpd para Nextcloud

Instalación de Nextcloud

Si toda la configuración del servidor relacionada está completa, puede acceder a su instalación de Nextcloud con el navegador web.

1. Abra su navegador web y escriba la dirección URL de su instalación de Nextcloud.

http://archivos.dominio.com

Ahora será redirigido a la conexión HTTPS segura y obtendrá la página de la siguiente manera.

Instalación de Nextcloud

  • En la sección «Crear una cuenta de administrador», escriba un nuevo nombre de usuario y contraseña para su administrador.
  • Para la sección «Carpeta de datos», déjela como predeterminada por ahora.
  • En la sección «Configurar la base de datos», elija «MySQL/MariaDB» y escriba los detalles de la configuración de la base de datos
  • Además, puede instalar aplicaciones recomendadas marcando la opción de casilla. O desmarque la opción de la casilla si no lo desea.

Después de eso, puede hacer clic en «Finalizar configuración» botón.

2. Una vez que se complete el proceso de instalación, verá el panel de control predeterminado de Nextcloud como se muestra a continuación.

Panel de Nextcloud

3. Ahora haga clic en el menú «archivos» y verá la lista de archivos y carpetas del panel de usuario.

Panel de control de archivos de usuario de Nextcloud

4. Para acceder a la página administrativa, haga clic en el perfil de usuario en la parte superior y seleccione «Ajustes«.

Bajo la «Administrativo«, puede cambiar la configuración predeterminada de Nextcloud.

Configuración administrativa de Nextcloud

5. Para agregar nuevos complementos o aplicaciones, puede hacer clic en el perfil de usuario en la parte superior y seleccionar «aplicaciones«.

Ahora obtendrá la página de la siguiente manera.

Nextcloud Instalación de aplicaciones y complementos

Elija la categoría de complemento que más le convenga, luego haga clic en el botón «Descargar y habilitar«. Después de eso, haga clic en «Habilitar» para activar la aplicación o el complemento.

A continuación se muestra la captura de pantalla después de habilitar el tema Nextcloud Breeze Dark.

Tema oscuro de Nextcloud con brisa

Ajuste de rendimiento de Nextcloud

Después de instalar Nextcloud, puede seguir algunos pasos para aumentar el rendimiento de Nextcloud habilitando el caché de memoria local y configurando un cronjob para Nextcloud.

1. En la sección superior de instalación de PHP, ya configuró el PHP para el almacenamiento en caché. Para habilitar el almacenamiento en caché en Nextcloud, edite la configuración de Nextcloud «config.php».

Cambie el directorio de trabajo a «/var/www/nextcloud/config» y editar la configuración «config.php» utilizando el editor nano.

cd /var/www/nextcloud/config/
nano config.php

Agregue la siguiente configuración dentro del ‘matriz ( .. );‘corchete como se muestra a continuación

<?php
$CONFIG = array (
....
....
....
  # Additional configuration
  'memcache.local' => '\OC\Memcache\APCu',
);

Ahora presione el «Control+x«botón y tipo»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 entre el usuario y el administrador. Para hacer eso, puede usar el cronjob para las tareas del programador de tareas Nextcloud.

En Rocky Linux, el usuario predeterminado de httpd es «apache«. Crear un nuevo cronjob para el usuario»apache» usando el siguiente comando.

crontab -u apache -e

Agregue la siguiente configuración.

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Nota sobre la configuración y la salida.

Configuración de cronjob que debes saber:

  • Esta configuración de cronjob permite al usuario «apache» para ejecutar el script PHP «/var/www/nextcloud/cron.php» cada 5 minutos.

Para verificar la configuración de cronjob, puede ejecutar el siguiente comando.

crontab -u apache -l

Si su configuración es un éxito, obtendrá la configuración en la parte superior como su salida. De lo contrario, obtendrá un resultado en blanco.

Nextcloud Habilitar el almacenamiento en caché de memoria y encontrar la configuración de Cron

Conclusión

¡Felicidades! Ha instalado correctamente Nextcloud en Rocky Linux 8.4. El servidor Nextcloud se ejecuta bajo LAMP Stack con SSL habilitado. Además, su instalación de Nextcloud se está ejecutando con el almacenamiento en caché de memoria habilitado con extensiones PHP APC y opcache.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *