Nextcloud es un software de código abierto para crear almacenamiento de archivos públicos y privados. Le permite crear sus propios servicios alojados como Dropbox, Google Drive o Mega.nz. Originalmente, fue creado por el desarrollador original de owncloud, Frank Karlitschek. En 2016, bifurca el proyecto Owncloud y crea un nuevo proyecto con el nuevo nombre "Nextcloud"
En este momento, el proyecto Nextcloud crece rápidamente y se convierte en más que un software de alojamiento de archivos, es más como una plataforma de colaboración de contenido y sincronización de archivos. Respaldado con muchos complementos, Nextcloud se convierte en un software de colaboración tan poderoso. Puede instalar complementos para 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 la versión más reciente de Debian 11 Bullseye. Instalará Nextcloud bajo LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB y PHP).
Requisitos
- Un servidor Debian 11. Asegúrese de que todos los paquetes estén actualizados a la última versión.
- Un usuario root o un usuario con privilegios de root. Este usuario se utilizará para instalar nuevos paquetes y editar configuraciones del sistema.
Obtener raíz y actualizar repositorios
Primero, ejecute el siguiente comando para obtener los privilegios de root.
1. Si tienes 'sudo ' instalado, ejecute el siguiente comando sudo.
sudo su
Ahora escriba la contraseña de inicio de sesión para su usuario.
2. Si no tiene el paquete sudo, ejecute 'su 'comando como se muestra a continuación
su
Ahora escriba su raíz contraseña y presione 'Entrar '.
3. Después de eso, actualice todos sus repositorios de Debian usando el comando apt a continuación.
apt update
Instalando el Servidor Web Apache
Después de actualizar los repositorios de Debian, instalará un servidor web apache y habilitará algunos módulos Apache para Nextcloud.
1. Ejecute el siguiente comando apt para instalar el servidor web apache.
apt install apache2
Escriba 'y ' y presione 'Entrar ' para continuar con la instalación.
2. Si la instalación está completa, verifique el servicio de apache usando el siguiente comando.
systemctl is-enabled apache2
systemctl status apache2
Verá el resultado 'habilitado ', lo que significa que el servicio de apache se iniciará automáticamente al iniciar el sistema. Y el estado actual del servicio de Apache, es 'activo (en ejecución) '.
3. A continuación, habilite los módulos de Apache 'ssl, rewrite y headers' ejecutando el siguiente comando a2enmod.
a2enmod ssl rewrite headers
A continuación se muestra el resultado que obtendrá.
4. Después de eso, ejecute el siguiente comando para reiniciar el servicio de apache.
systemctl restart apache2
Se aplicarán nuevos módulos de apache, verifique esos módulos usando el comando apachectl a continuación.
apachectl -M | egrep "ssl|rewrite|headers"
Verá un resultado similar al siguiente.
Instalando y Configurando PHP
Para esta guía, implementará Nextcloud con la última versión estable de PHP 8.0.
De forma predeterminada, el repositorio de Debian proporciona paquetes para PHP 8.0. Pero, Nextcloud requiere algunos paquetes PHP adicionales que se pueden instalar desde un repositorio de terceros. Y agregará un nuevo repositorio a su sistema Debian.
1. Ejecute el siguiente comando para agregar un repositorio PHP para el sistema Debian.
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list
Descargue la clave GPG en '/etc/apt/trusted.gpg.d ' directorio.
curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg
Ahora ejecute el comando 'apt update' nuevamente para actualizar todos los repositorios.
apt update
2. Instale paquetes PHP y módulos PHP adicionales para Nextcloud usando el comando apt a continuación.
apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu
Después de eso, ejecute el comando apt nuevamente para instalar algunos paquetes adicionales.
apt install -y libmagickcore-dev
El 'libmagickcore-dev php-imagick necesita los paquetes para el procesamiento de imágenes SVG en Nextcloud.
3. Si se completó la instalación de todos los paquetes, cambie el directorio de trabajo a '/etc/php/8.0/apache2 ' y edite la configuración 'php.ini ' usando nano.
cd /etc/php/8.0/apache2/
nano php.ini
Para la implementación básica de nextcloud, cambie las opciones predeterminadas usando la siguiente configuració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
output_buffering = Off
Descomente el 'zend_extension=opcache ' opción para cargar la extensión opcache.
zend_extension=opcache
Vaya a la sección '[opcache]' y agregue la siguiente configuración.
[opcache]
...
....
.....
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
Guarde la configuración presionando 'Ctrl+x ' y escriba 'y ', luego presione 'Entrar ' para salir.
4. Ahora reinicie el servicio de apache para aplicar nuevos cambios usando el siguiente comando.
systemctl restart apache2
Instalando y configurando 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.
apt install mariadb-server mariadb-client
Escriba 'y ' para confirmar e instalar paquetes mariadb.
2. Una vez completada la instalación, verifique el servicio mariadb usando el siguiente comando.
systemctl is-enabled mariadb
systemctl status mariadb
El servicio mariadb está activo y en ejecución, y está habilitado para iniciarse automáticamente al iniciar el sistema.
3. 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.
Ejecute "mysql_secure_installation " Comando a continuación.
mysql_secure_installation
Al principio, se le pedirá que ingrese la contraseña raíz de mariadb. Simplemente presione 'Entrar ' para continuar.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Escriba 'Y ' para habilitar el 'unix_socket ' autenticación para el usuario 'root '.
Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!
Escriba su contraseña segura de root de mariadb y repita, luego presione "Enter " para continuar.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Ahora escriba "Y " y presione "Entrar " 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 'root '. Escribe "Y " y presione "Entrar " 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 predeterminada "test " y presione "Entrar ".
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!
Creando Base de Datos y Usuario para Nextcloud
1. Inicie sesión en el shell de mariadb usando 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 nextcloud_db;
3. Ejecute la siguiente consulta para crear un nuevo usuario de base de datos "nextclouduser ". Cambie la "contraseña fuerte " con su contraseña segura.
CREATE USER [email protected] IDENTIFIED BY 'StrongPassword';
4. Permita que el usuario "nextclouduser " para acceder y escribir el "nextcloud_db " usando la siguiente consulta.
GRANT ALL PRIVILEGES ON nextcloud_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;
Luego puede escribir "salir " y presione "Entrar " para salir del shell de mariadb.
Descargar 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/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip
2. Ahora instale el paquete de descompresión usando el siguiente comando.
apt install unzip
3. A continuación, extraiga el código fuente de Nextcloud "nextcloud.zip " y obtendrá un nuevo directorio "nextcloud", luego cambie el propietario de "nextcloud " directorio a "www-data " usuario.
unzip nextcloud-22.1.0.zip
chown -R www-data:www-data nextcloud
Ahora está listo para generar SSL Letsencrypt y configurar el servidor virtual Apache para Nextcloud.
Generando SSL Letsencrypt
En esta etapa, instalará la herramienta certbot y generará los certificados SSL para la instalación de Nextcloud. Generará SSL Letsencrypts con el complemento webroot.
1. Ejecute el siguiente comando para instalar la herramienta certbot para generar SSL Letsencrypt.
apt install certbot
Escriba 'y ' y presione 'Entrar ' para continuar con la 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.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
3. A continuación, cambie el directorio de trabajo a "/etc/apache2/conf-disponible/ " y cree una nueva configuración "well-known.conf " usando nano.
cd /etc/apache2/conf-available/
nano well-known.conf
Copie y pegue la siguiente configuración.
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>
Presiona "Ctrl+x " y escriba "y " y presione 'Entrar ' para guardar la configuración y salir.
Ahora active la nueva configuración creando un enlace simbólico de 'well-known.conf ' archivo al directorio 'conf-enabled' usando el 'ln ' comando a continuación.
ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/
4. Ahora ejecute los siguientes comandos para verificar la configuración de apache y reinicie el servicio de apache.
apachectl configtest
systemctl restart apache2
Si no tiene ningún error, está listo para generar SSL Letsencrypt con el complemento webroot.
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-name.io
Cuando se complete el proceso, sus certificados SSL estarán disponibles en "/etc/letsencrypt/live/files.domain-name.io/ " directorio.
Configurar Apache Virtual Host para Nextcloud
En este paso, agregará una nueva configuración de servidor virtual apache/httpd para Nextcloud.
1. Cambie el directorio de trabajo a "/etc/apache2/sites-disponible/ " y crea una nueva configuración "nextcloud.conf " usando nano.
cd /etc/apache2/sites-available/
nano nextcloud.conf
Cambie el nombre de dominio detallado y el directorio de la ruta SSL por los suyos y pegue la configuración en "nextcloud.conf " archivo.
<VirtualHost *:80>
ServerName files.domain-name.io
ServerAlias www.files.domain-name.io
# auto redirect HTTP to HTTPS
Redirect permanent / https://files.domain-name.io/
</VirtualHost>
<VirtualHost *:443>
ServerName files.domain-name.io
ServerAlias www.files.domain-name.io
DocumentRoot /var/www/nextcloud/
Protocols h2 http/1.1
# auto redirect www to non-www
<If "%{HTTP_HOST} == 'www.files.domain-name.io'">
Redirect permanent / https://files.domain-name.io/
</If>
# log files
ErrorLog /var/log/apache2/files.domain-name.io-error.log
CustomLog /var/log/apache2/files.domain-name.io-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/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>
Presiona "Ctrl+x" y escribe "Y" , luego presione 'Entrar ' para guardar la configuración y salir.
2. Ahora active el 'nextcloud.conf ' configuración del host virtual ejecutando el siguiente comando.
a2ensite nextcloud.conf
3. Ahora verifique la nueva configuración de apache y asegúrese de que no tenga ningún error, luego reinicie el servicio de apache.
apachectl configtest
systemctl restart apache2
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.
https://files.domain-name.io
Cree su primer usuario administrador para Nextcloud y el usuario 'www-data puede escribir en el directorio de datos '.
2. Desplácese por la página hasta el final, escriba los detalles del nombre de la base de datos, el usuario y la contraseña. Para la opción 'Instalar aplicaciones recomendadas ', desmarque para que la instalación sea más rápida. Luego haga clic en 'Finalizar configuración ' para instalar Nextcloud.
3. Si la instalación es exitosa, verá el panel de control de Nextcloud como se muestra a continuación.
4. Ahora haga clic en el icono de usuario en la parte superior derecha y haga clic en el menú 'Configuración '. En la 'Administración ', haga clic en 'Descripción general '.
- En la sección 'Advertencias de seguridad y configuración', encontrará algunas recomendaciones que debe seguir, dependiendo de su entorno de instalación.
- En la sección 'Versiones', verá la rama actual de su instalación de Nextcloud.
5. A continuación, haga clic en el menú 'Sistema ' en la parte inferior de la 'Administración ' sección.
Verá detalles de su entorno, carga del sistema, estado del espacio en disco, estado de la memoria, estado de la red, etc.
6. Como se dijo antes, nextcloud se ha convertido en algo más que una simple sincronización de archivos. Con el soporte de aplicaciones/complementos adicionales, se ha convertido en un traje de colaboración.
En el ícono de perfil en la parte superior derecha, haz clic en el menú 'Aplicaciones ', y verá la tienda de aplicaciones nextcloud como se muestra a continuación.
Elija las aplicaciones que desea instalar, luego haga clic en el botón 'Descargar y habilitar ' para instalar nuevas aplicaciones.
7. A continuación se muestra la vista predeterminada del panel de usuario de Nextcloud. Puede ampliar la funcionalidad de su tablero instalando complementos adicionales.
Ajuste de desempeño 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 edite la configuración "config.php " usando el editor nano.
cd /var/www/nextcloud/config/
nano config.php
Agregue la siguiente configuración dentro de la 'matriz ( .. ); ' paréntesis como se muestra a continuación
<?php
$CONFIG = array (
....
# Additional configuration
'memcache.local' => '\OC\Memcache\APCu',
);
Ahora presiona la tecla "Ctrl+x botón " y escriba "y ", luego presione 'Entrar ' 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 el sistema Debian Linux, la instalación predeterminada de Apache se ejecuta bajo el usuario "www-data ". Crear un nuevo cronjob para el usuario "www-data " usando el siguiente comando.
crontab -u www-data -e
Si tiene varios editores en su sistema, elija el editor que más le convenga. Para esta guía, usaremos un editor nano.
Agregue la siguiente configuración.
*/5 * * * * php -f /var/www/nextcloud/cron.php
Guarde la configuración y salga.
Configuración de cronjob que debe conocer:
- Esta configuración de cronjob permite al usuario "www-data " 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 www-data -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.
Conclusión
¡Felicidades! Ha instalado correctamente Nextcloud en Debian 11 Bullseye. El servidor Nextcloud se ejecuta bajo LAMP Stack con SSL habilitado. Además, su instalación de Nextcloud se está ejecutando con almacenamiento en caché de memoria habilitado con PHP APC y extensiones opcache.