Este tutorial le mostrará cómo instalar NextCloud en Ubuntu 20.04 LTS con el servidor web Nginx.
¿Qué es NextCloud?
NextCloud es una solución gratuita de almacenamiento en la nube autohospedado de código abierto. Es funcionalmente similar a Dropbox. Las soluciones de almacenamiento en la nube patentadas (Dropbox, Google Drive, etc.) son convenientes, pero tienen un precio:pueden usarse para recopilar datos personales porque sus archivos se almacenan en sus computadoras. Si le preocupa la privacidad, puede cambiar a NextCloud, que puede instalar en su servidor doméstico privado o en un servidor privado virtual (VPS). Puede cargar sus archivos a su servidor a través de NextCloud y luego sincronizar esos archivos con su computadora de escritorio, computadora portátil o teléfono inteligente. De esta manera usted tiene el control total de sus datos.
Características de NextCloud
- Gratis y de código abierto
- Cifrado de extremo a extremo, lo que significa que los archivos se pueden cifrar en los dispositivos del cliente antes de cargarlos en el servidor, por lo que incluso si alguien roba su servidor, no podrá leer sus archivos.
- Se puede integrar con una suite ofimática en línea (Collobora Online, OnlyOffice) para que pueda crear y editar sus archivos doc, ppt, xls directamente desde NextCloud.
- La tienda de aplicaciones contiene cientos de aplicaciones para ampliar la funcionalidad (como la aplicación de calendario, la aplicación de contactos, la aplicación para tomar notas, la aplicación de videoconferencia, etc.).
- El cliente de sincronización está disponible en Linux, macOS, Windows, iOS y Android.
Requisitos
NextCloud está escrito en lenguaje de programación PHP. Para seguir este tutorial, primero debe instalar la pila LEMP en Ubuntu 20.04 . Si aún no lo ha hecho, consulte el siguiente tutorial.
- Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.4-FPM) en Ubuntu 20.04
Puede instalar NextCloud en su servidor doméstico o en un VPS (servidor privado virtual). También necesita un nombre de dominio, por lo que más adelante podrá habilitar HTTPS para cifrar el tráfico HTTP. Registré mi nombre de dominio de NameCheap porque el precio es bajo y brindan protección de privacidad whois gratis de por vida. Nextcloud se puede instalar sin un nombre de dominio, pero realmente no tiene sentido si no cifra la conexión HTTP para evitar la intrusión. Recomiendo comprar un nombre de dominio, si realmente desea experimentar con el software del servidor y utilizarlo al máximo de su potencial.
Ahora instalemos NextCloud.
Paso 1:Descarga NextCloud en Ubuntu 20.04
Inicie sesión en su servidor Ubuntu 20.04. Luego descargue el archivo zip de NextCloud en su servidor. La última versión estable es 21.0.1 en el momento de escribir este artículo. Es posible que deba cambiar el número de versión. Vaya a https://nextcloud.com/install y haga clic en download for server
botón para ver la última versión.
Puede ejecutar el siguiente comando para descargarlo en su servidor.
wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip
Siempre puede usar el formato de URL anterior para descargar NextCloud. Si sale una nueva versión, simplemente reemplace 21.0.1
con el nuevo número de versión.
Una vez descargado, extraiga el archivo con unzip
.
sudo apt install unzip sudo unzip nextcloud-21.0.1.zip -d /usr/share/nginx/
El -d
La opción especifica el directorio de destino. Los archivos web de NextCloud se extraerán a /usr/share/nginx/nextcloud/
. Luego, debemos cambiar el propietario de este directorio a www-data
para que el servidor web (Nginx) pueda escribir en este directorio.
sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R
Paso 2:Cree una base de datos y un usuario para Nextcloud en el servidor de base de datos MariaDB
Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando. Dado que MariaDB ahora usa unix_socket
complemento para el inicio de sesión del usuario de autenticación, no es necesario ingresar la contraseña raíz de MariaDB. Solo necesitamos prefijar el mysql
comando con sudo
.
sudo mysql
Luego cree una base de datos para Nextcloud. Este tutorial nombra la base de datos nextcloud. Puedes usar el nombre que quieras.
create database nextcloud;
Cree el usuario de la base de datos. Nuevamente, puede usar su nombre preferido para este usuario. Reemplace your-password
con su contraseña preferida.
create user nextclouduser@localhost identified by 'your-password';
Otorgue a este usuario todos los privilegios en nextcloud
base de datos.
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';
Vacíe los privilegios y salga.
flush privileges; exit;
Paso 3:Cree un archivo de configuración de Nginx para Nextcloud
Crear un nextcloud.conf
archivo en /etc/nginx/conf.d/
directorio, con un editor de texto de línea de comandos como Nano.
sudo nano /etc/nginx/conf.d/nextcloud.conf
Copie y pegue el siguiente texto en el archivo. Reemplace nextcloud.example.com
con su propio subdominio preferido. No olvide crear un registro DNS A para este subdominio en su editor de zona DNS. Si no tiene un nombre de dominio real, le recomiendo ir a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad whois gratis de por vida.
server { listen 80; listen [::]:80; server_name nextcloud.example.com; # Add headers to serve security related headers add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; #I found this header is needed on Ubuntu, but not on Arch Linux. add_header X-Frame-Options "SAMEORIGIN"; # Path to the root of your installation root /usr/share/nginx/nextcloud/; access_log /var/log/nginx/nextcloud.access; error_log /var/log/nginx/nextcloud.error; location = /robots.txt { allow all; log_not_found off; access_log off; } # The following 2 rules are only needed for the user_webfinger app. # Uncomment it if you're planning to use this app. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # last; location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge { allow all; } # set max upload size client_max_body_size 512M; fastcgi_buffers 64 4K; # Disable gzip to avoid the removal of the ETag header gzip off; # Uncomment if your server is build with the ngx_pagespeed module # This module is currently not supported. #pagespeed off; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location / { rewrite ^ /index.php; } location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # Adding the cache control header for js and css files # Make sure it is BELOW the PHP block location ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; # Add headers to serve security related headers (It is intended to # have those duplicated to the ones above) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; # Optional: Don't log access to assets access_log off; } location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Optional: Don't log access to other assets access_log off; } }
Guarde y cierre el archivo. (Para guardar un archivo en el editor de texto Nano, presione Ctrl+O
, luego presione Enter
para confirmar. Para salir, presiona Ctrl+X
.)
Luego pruebe la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.
sudo systemctl reload nginx
Paso 4:Instalar y habilitar módulos PHP
Ejecute los siguientes comandos para instalar los módulos PHP requeridos o recomendados por NextCloud.
sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp
Paso 5:habilite HTTPS
Ahora puede acceder al asistente de instalación web de Nextcloud en su navegador web ingresando el nombre de dominio para su instalación de Nextcloud.
nextcloud.example.com
Si la página web no se puede cargar, probablemente necesite abrir el puerto 80 en el firewall.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Y el puerto 443 también.
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Antes de ingresar información confidencial, debemos habilitar la conexión HTTPS segura en Nextcloud. Podemos obtener un certificado TLS gratuito de Let’s Encrypt. Instale el cliente Let's Encrypt (certbot) desde el repositorio de Ubuntu 20.04.
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
es el complemento de Nginx. A continuación, ejecute el siguiente comando para obtener un certificado TLS gratuito mediante el complemento de Nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.example.com
donde:
- –nginx :utilice el autenticador y el instalador de Nginx
- –de acuerdo :Acepto los términos de servicio de Let's Encrypt
- –redireccionar :Reforzar HTTPS agregando redirección 301.
- –hsts :habilite la seguridad de transporte estricta de HTTP. Esto protege contra el ataque de eliminación de SSL/TLS.
- –grapa-ocsp :habilite el grapado OCSP.
- –correo electrónico :Correo electrónico utilizado para el registro y el contacto de recuperación.
- -d va seguido de una lista de nombres de dominio, separados por comas. Puede agregar hasta 100 nombres de dominio.
Se le preguntará si desea recibir correos electrónicos de EFF (Electronic Frontier Foundation). Después de elegir S o N, su certificado TLS se obtendrá y configurará automáticamente para usted, lo cual se indica en el mensaje a continuación.
Descubrí que es posible que Certbot no pueda agregar el encabezado HSTS en el archivo de configuración de Nginx para Nextcloud. Si desea habilitar HSTS (HTTP Strict Transport Security), edite el archivo.
sudo nano /etc/nginx/conf.d/nextcloud.conf
Luego podemos agregar la siguiente línea en el bloque del servidor SSL para habilitar el encabezado HSTS. (Si ya está allí, entonces su configuración está bien).
add_header Strict-Transport-Security "max-age=31536000" always;
Además, puede habilitar el protocolo HTTP2 agregando la opción http2
, lo que acelerará la carga de la página web.
listen 443 ssl http2; # managed by Certbot
Me gusta a continuación.
Guarde y cierre el archivo. Luego envíe un mensaje de texto con las configuraciones de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que el cambio surta efecto.
sudo systemctl reload nginx
La configuración anterior obtendrá una puntuación A+ en la prueba SSL.
Paso 6:finalice la instalación en su navegador web
Ahora puede acceder al asistente de instalación web de Nextcloud mediante una conexión HTTPS.
https://nextcloud.example.com
Para completar la instalación, debe crear una cuenta de administrador, ingresar la ruta de la carpeta de datos de Nextcloud, ingresar los detalles de la base de datos que creó en el paso 2. Puede usar el localhost
predeterminado como dirección de host, o puede ingresar localhost:3306
, mientras MariaDB escucha en el puerto 3306.
La carpeta de datos es donde se almacenan los archivos de los usuarios. Por seguridad, es mejor colocar el directorio de datos fuera del directorio webroot de Nextcloud. Entonces, en lugar de almacenar los archivos de los usuarios en /usr/share/nginx/nextcloud/data/
, podemos cambiarlo a /usr/share/nginx/nextcloud-data . que se puede crear con el siguiente comando:
sudo mkdir /usr/share/nginx/nextcloud-data
Luego, asegúrese de que el usuario de Nginx (www-data
) tiene permiso de escritura en el directorio de datos.
sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R
Haga clic en Finish Setup
botón, verá la interfaz web de Nextcloud. ¡Felicitaciones! Puede comenzar a usarlo como su almacenamiento en la nube privada.
Cómo configurar la notificación por correo electrónico de NextCloud
Si su instancia de NextCloud será utilizada por más de una persona, es importante que su servidor de NextCloud pueda enviar correos electrónicos transaccionales, como el correo electrónico de restablecimiento de contraseña. Primero, debe establecer una dirección de correo electrónico para su propia cuenta. Ve a Settings
-> Personal Info
y establezca una dirección de correo electrónico para su cuenta.
Luego ve a Configuración -> Configuración básica . Encontrará la configuración del servidor de correo electrónico. Hay dos modos de envío:sendmail
y smtp
. Puede elegir el sendmail
modo si su host NextCloud tiene un servidor SMTP en ejecución.
Si desea utilizar un servidor SMTP que se ejecuta en otro host, elija smtp
e ingrese la dirección del servidor SMTP y las credenciales de inicio de sesión como se muestra a continuación. Elija STARTTLS para el cifrado.
Para saber cómo configurar un servidor de correo electrónico, consulta el siguiente tutorial. Nota que recomiendo encarecidamente ejecutar el servidor de correo iRedMail en un sistema operativo nuevo y limpio. La instalación de iRedMail en un sistema operativo que tiene otras aplicaciones web puede fallar y es probable que rompa las aplicaciones existentes.
- Cómo configurar fácilmente un servidor de correo con todas las funciones en Ubuntu 20.04 con iRedMail
Cómo restablecer la contraseña de usuario de Nextcloud desde la línea de comandos
Si perdió la contraseña de su cuenta de administrador y no configuró la entrega de correo electrónico en Nextcloud, debe restablecer la contraseña ejecutando el siguiente comando en su servidor. Reemplace nextcloud_username
con tu nombre de usuario real.
sudo -u www-data php /usr/share/nginx/nextcloud/occ user:resetpassword nextcloud_username
También hay otros comandos que pueden resultarle útiles. Lista de comandos disponibles con:
sudo -u www-data php /usr/share/nginx/nextcloud/occ
o
sudo -u www-data php /usr/share/nginx/nextcloud/console.php
Cómo mover el directorio de datos
En caso de que necesite mover el directorio de datos de NextCloud, hay 4 pasos para lograrlo. Primero, necesitas usar el cp
comando para copiar el directorio de datos al nuevo directorio. Por ejemplo, el punto de montaje de mi disco duro externo es /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731
. Creo el nuevo directorio de datos en el disco duro externo.
sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/
Luego copio el directorio de datos original al nuevo directorio de datos. -R
bandera significa que la operación de copia es recursiva.
sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R
También necesita copiar el .ocdata
archivo.
sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/
A continuación, debe configurar www-data
(usuario de Nginx) como propietario.
sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R
Por último, debe editar el config.php
archivo.
sudo nano /usr/share/nginx/nextcloud/config/config.php
Busque la siguiente línea y cambie el valor de datadirectory
.
'datadirectory' => '/usr/share/nginx/nextcloud-data',
Guarde y cierre el archivo. Vuelva a cargar la página web de NextCloud y listo.
Paso 7:Aumente el límite de memoria de PHP
El límite de memoria predeterminado de PHP es de 128 MB. NextCloud recomienda 512 MB para un mejor rendimiento. Para cambiar el límite de memoria de PHP, edite el php.ini archivo.
sudo nano /etc/php/7.4/fpm/php.ini
Encuentra la siguiente línea. (línea 409)
memory_limit = 128M
Cambia el valor.
memory_limit = 512M
Guarde y cierre el archivo. Alternativamente, puede ejecutar el siguiente comando para cambiar el valor sin abrir manualmente el archivo.
sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/fpm/php.ini
Luego recarga PHP-FPM servicio para que los cambios surtan efecto.
sudo systemctl reload php7.4-fpm
Paso 8:configurar PHP para consultar correctamente las variables de entorno del sistema
Edite el www.conf archivo.
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
Busque la siguiente línea (línea 396).
;clear_env = no
Elimina el punto y coma para descomentar esta línea.
clear_env = no
Guarde y cierre el archivo. Alternativamente, puede ejecutar el siguiente comando para descomentar esta línea sin abrir manualmente el archivo.
sudo sed -i 's/;clear_env = no/clear_env = no/g' /etc/php/7.4/fpm/pool.d/www.conf
Luego recarga PHP-FPM servicio para que los cambios surtan efecto.
sudo systemctl reload php7.4-fpm
Paso 9:Aumente el límite de tamaño del archivo de carga
El límite de tamaño de archivo de carga máximo predeterminado establecido por Nginx es 1 MB. Para permitir la carga de archivos grandes en su servidor NextCloud, edite el archivo de configuración de Nginx para NextCloud.
sudo nano /etc/nginx/conf.d/nextcloud.conf
Ya hemos establecido el tamaño máximo de archivo en este archivo, como lo indica
client_max_body_size 512M;
Puedes cambiarlo si lo prefieres, como 1G.
client_max_body_size 1024M;
Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que los cambios surtan efecto.
sudo systemctl reload nginx
PHP también establece un límite de tamaño de archivo de carga. El tamaño de archivo máximo predeterminado para cargar es de 2 MB. Para aumentar el límite de tamaño de carga, edite el archivo de configuración de PHP.
sudo nano /etc/php/7.4/fpm/php.ini
Busque la siguiente línea (línea 846).
upload_max_filesize = 2M
Cambie el valor como a continuación:
upload_max_filesize = 1024M
Guarde y cierre el archivo. Alternativamente, puede ejecutar el siguiente comando para cambiar el valor sin abrir manualmente el archivo.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/7.4/fpm/php.ini
Luego reinicie PHP-FPM.
sudo systemctl restart php7.4-fpm
Paso 10:Configure Redis Cache para NextCloud
Si vas a tu configuración de NextCloud -> resumen página, es posible que vea la siguiente advertencia:
No memory cache has been configured. To enhance your performance please configure a memcache if available.
Habilitaremos el almacenamiento en caché de memoria para nextCloud mediante el uso de Redis. Ejecute el siguiente comando para instalar el servidor Redis desde el repositorio de Ubuntu.
sudo apt install redis-server
Puede comprobar la versión con:
redis-server -v
Salida de muestra:
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923
Ahora podemos verificar si el servidor Redis se está ejecutando.
systemctl status redis
Sugerencia:si el comando anterior no se cerró de inmediato, puede presionar la tecla Q para recuperar el control de la terminal.
En la captura de pantalla anterior, podemos ver que se está ejecutando y que el inicio automático está habilitado. Si por alguna razón no se está ejecutando, ejecute el siguiente comando:
sudo systemctl start redis-server
Y si el inicio automático en el momento del arranque no está habilitado, puede usar el siguiente comando para habilitarlo:
sudo systemctl enable redis-server
Para configurar Redis como caché para nextCloud, necesitamos instalar la extensión PHP para interactuar con Redis.
sudo apt install php-redis
Compruebe si la extensión está habilitada.
php --ri redis
Podemos ver que la extensión Redis está habilitada. Si no está habilitado, ejecute el siguiente comando:
sudo phpenmod redis
A continuación, edite el archivo de configuración de nextCloud.
sudo nano /usr/share/nginx/nextcloud/config/config.php
Agrega las siguientes líneas arriba del final );
línea.
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
Guarde y cierre el archivo. Luego reinicie Nginx y PHP-FPM.
sudo systemctl restart nginx php7.4-fpm
Ahora ve a la configuración de NextCloud -> resumen página de nuevo y actualice la página web, la advertencia sobre el almacenamiento en caché de memoria debería desaparecer.
Agregar índices que faltan
Si ve el siguiente mensaje en la Configuración de NextCloud -> Resumen página,
The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically.
Luego, debe agregar manualmente esos índices. Cambie al directorio webroot de Nextcloud.
cd /usr/share/nginx/nextcloud/
Ejecute el siguiente comando para agregar índices a la base de datos de Nextcloud.
sudo -u www-data php occ db:add-missing-indices
Ahora, si actualiza la Configuración de NextCloud -> Resumen página, la advertencia sobre índices faltantes debería desaparecer.
Conversión a Big Int
Si ve el siguiente mensaje en la Configuración de NextCloud -> Resumen página,
Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically.
Luego, debe cambiar manualmente el tipo de columna. Cambie al directorio webroot de Nextcloud.
cd /usr/share/nginx/nextcloud/
Cambie su Nextcloud al modo de mantenimiento para evitar que los usuarios inicien sesión y realicen cambios.
sudo -u www-data php occ maintenance:mode --on
Luego ejecute el siguiente comando para cambiar el tipo de columna.
sudo -u www-data php occ db:convert-filecache-bigint
Una vez hecho esto, apague el modo de mantenimiento.
sudo -u www-data php occ maintenance:mode --off
Ahora, si actualiza la Configuración de NextCloud -> Resumen página, la advertencia sobre big int debería desaparecer.
Cómo instalar el cliente NextCloud en el escritorio Ubuntu 20.04
Ejecute los siguientes comandos en el escritorio de Ubuntu 20.04 para instalar el cliente desde el repositorio predeterminado.
sudo apt install nextcloud-client
SiguienteCliente Cloud en Ubuntu 20.04
El software cliente para macOS, Windows, Android e iOS se puede encontrar en la página de descarga de Nextcloud.
Cómo habilitar OnlyOffice/Collabora Online
De manera predeterminada, Nextcloud incluye soporte para OnlyOffice, que es una suite de oficina en línea que le permite editar sus archivos doc, ppt, xls directamente desde NextCloud. Solo necesitamos instalar una aplicación para usar esta función. Vaya a Nextcloud Apps
-> Office & Text
. Encuentre y habilite el community document server
aplicación.
Ahora, cuando haga clic en el botón Agregar (+) en Nextcloud, podrá crear documentos de Word, hojas de cálculo y presentaciones directamente desde su servidor Nextcloud.
Sin embargo, encontré que esta aplicación no es muy confiable. Y la edición comunitaria solo permite 20 usuarios como máximo. Debe comprar una edición empresarial si tiene más de 20 usuarios. Hay otra suite de oficina en línea basada en LibreOffice de código abierto llamada Collabora Online que tiene la misma funcionalidad, pero sin la limitación en la cantidad de usuarios. Puedes leer el siguiente artículo para integrarlo con Nextcloud.
- Integre Collabora Online con Nextcloud en Ubuntu con Docker
Agregar entrada de DNS local
Se recomienda editar el /etc/hosts
archivo en su servidor Nextcloud y agregue la siguiente entrada, para que Nextcloud no tenga que consultar el DNS público, lo que puede mejorar la estabilidad general. Si su servidor Nextcloud no puede resolver el nextcloud.example.com
nombre de host, es posible que encuentre un tiempo de espera de puerta de enlace 504 error.
127.0.0.1 localhost nextcloud.example.com
Una dirección IP en /etc/hosts
El archivo puede tener varios nombres de host, por lo que si tiene otras aplicaciones instaladas en el mismo cuadro, también puede agregar otros nombres de host o subdominios en la misma línea de esta manera:
127.0.0.1 localhost focal ubuntu nextcloud.example.com collabora.example.com
Uso de Cron para ejecutar tareas en segundo plano
De forma predeterminada, Nextcloud usa AJAX para ejecutar una tarea con cada carga de página. Puede usar el servicio cron del sistema más eficiente para ejecutar trabajos en segundo plano. Vaya a Configuración de Nextcloud -> Configuración básica y seleccione Cron .
A continuación, edite los www-data
archivo crontab del usuario.
sudo -u www-data crontab -e
Agregue la siguiente línea en este archivo, para que el trabajo cron se ejecute cada 5 minutos.
*/5 * * * * php7.4 -f /usr/share/nginx/nextcloud/cron.php
Guarde y cierre el archivo.
(Opcional) Evitar intentos de inicio de sesión maliciosos
Si su computadora tiene una dirección IP pública estática, puede crear una lista blanca de IP en el archivo de configuración de Nginx.
sudo nano /etc/nginx/conf.d/nextcloud.conf
Agregue las siguientes líneas en el bloque del servidor SSL para restringir el acceso a /login
URL, por lo que solo su dirección IP puede acceder a esta URL. Reemplace 78.56.34.12 con su propia dirección IP.
location ~* ^/login{ try_files $uri /index.php; include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; allow 78.56.34.12; deny all; }
Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.
sudo systemctl reload nginx
Si no tiene una dirección IP estática en su red doméstica, puede configurar un servidor VPN en un centro de datos.
Consejos para solucionar problemas
Si encuentra errores, puede consultar uno de los siguientes archivos de registro para averiguar qué está mal.
- Registro de errores de Nginx:
/var/log/nginx/error.log
- Registro de errores de Nginx para el host virtual de Nextcloud:
/var/log/nginx/nextcloud.error
- Registro de la aplicación Nextcloud:
/usr/share/nginx/nextcloud/data/nextcloud.log
Por ejemplo, una vez tuve un “Internal Server Error
” en mi instancia de Nextcloud y el /var/log/nginx/nextcloud.error
archivo me dijo que
FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught OC\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)
Resultó que debido a que utilicé el PPA ppa:ondrej/php en mi servidor Ubuntu, también necesito instalar php7.4-redis
además del php-redis
paquete.
Actualización de Nextcloud
Es importante mantener su servidor Nextcloud actualizado con las últimas correcciones de errores y seguridad. Lea el tutorial a continuación para aprender cómo actualizar Nextcloud.
- 2 formas de actualizar Nextcloud [línea de comandos y GUI]