GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Publicamos un tutorial sobre cómo instalar Nextcloud en Ubuntu 16.04 con el servidor web Apache en junio de 2016, poco después del primer lanzamiento público de Nextcloud. Pero mucha gente quiere usar Nginx en lugar de Apache como servidor web. Así que en este tutorial veremos cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx.

Nota:si está utilizando Ubuntu 18.04, siga este tutorial:Instale Nextcloud en Ubuntu 18.04 con Nginx (pila LEMP)

Requisitos

Primero, debe consultar este tutorial de instalación de LEMP para Ubuntu 16.04 si aún no ha instalado LEMP. Una vez que esté instalado, vuelve aquí y sigue leyendo.

Paso 1:Descarga NextCloud 13

Descargue el archivo zip del servidor NextCloud en su servidor. La última versión estable es 13.0.4 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 el botón de descarga para ver la última versión.

wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip

Extráigalo.

sudo apt install unzip

unzip nextcloud-13.0.4.zip

Un nuevo directorio llamado nextcloud se creará en el directorio de trabajo actual. Mueva el nuevo directorio y todo su contenido a la raíz del documento del servidor web Nginx

sudo mv nextcloud /usr/share/nginx/

Luego, también debe configurar el usuario de Nginx (www-data) como propietario del directorio NextCloud.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

Paso 2:crear una base de datos y un usuario en MariaDB

Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando:

sudo mysql -u root

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:habilite el registro binario en MariaDB

Edite el archivo de configuración de mysqld.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Agregue las siguientes tres líneas en [mysqld] sección.

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

El formato del registro binario debe ser mixed . Guarde y cierre el archivo. Luego reinicie el servicio MariaDB.

sudo systemctl restart mysql

Ahora el registro binario está habilitado en MariaDB.

Paso 4:Cree un archivo de configuración de Nginx para Nextcloud

Crear un nextcloud.conf archivo en /etc/nginx/conf.d/ directorio.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Coloque el siguiente texto en el archivo. Reemplace el texto de color rojo con sus datos reales. No olvide establecer un registro A para el nombre de dominio.

server {
    listen 80;
    server_name nextcloud.your-domain.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;

    # Path to the root of your installation
    root /usr/share/nginx/nextcloud/;

    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$uri;
    }

    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)(/.*)$;
       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.0-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;
        # 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. Pruebe la configuración de Nginx, luego vuelva a cargar Nginx para que los cambios surtan efecto.

sudo nginx -t

sudo systemctl reload nginx

Paso 5:Instalar y habilitar módulos PHP

Ejecute los siguientes comandos para instalar los módulos PHP necesarios.

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

Paso 6:habilite HTTPS

Ahora puede acceder al asistente de instalación web de Nextcloud en su navegador ingresando el nombre de dominio para su instalación de Nextcloud.

nextcloud.your-domain.com

Pero 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. Ejecute los siguientes comandos para instalar el cliente certbot (Let's Encrypt) en Ubuntu 16.04 desde el PPA oficial. software-properties-common Se necesita el paquete para agregar PPA en Ubuntu. A veces, no está instalado de forma predeterminada en Ubuntu. Python-certbot-nginx es el complemento de Nginx.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python-certbot-nginx

Es posible que también deba actualizar algunas bibliotecas.

sudo apt upgrade

A continuación, ejecute el siguiente comando para obtener un certificado TLS gratuito mediante el complemento de Nginx.

sudo certbot --nginx --agree-tos --redirect --staple-ocsp --email your-email-address -d nextcloud.your-domain.com

En unos segundos, verá un mensaje como el siguiente, lo que significa que el certificado TLS se obtuvo e instaló correctamente.

Finalice la instalación en su navegador web

Ahora puede acceder al asistente de instalación web de Nextcloud mediante una conexión HTTPS. 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 creada anteriormente.

La carpeta de datos es donde se almacenan los archivos de los usuarios. Por seguridad, es mejor colocar el directorio de datos fuera de la raíz web 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

Una vez hecho esto, verá la interfaz web de Nextcloud. ¡Felicitaciones! Puede comenzar a usarlo como su almacenamiento en la nube privada.

¡Eso es todo! Espero que este tutorial te haya ayudado a instalar Nextcloud en Ubuntu 16.04 con la configuración de Nginx. Como siempre, si encuentra útil esta publicación, suscríbase a nuestro boletín gratuito. También puede seguirnos en Google+, Twitter o gustar en nuestra página de Facebook.


Ubuntu
  1. Cómo instalar WordPress con Nginx en Ubuntu 18.04

  2. Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04

  3. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

  4. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  5. Cómo instalar PHP 7.4 con Nginx en Ubuntu 20.04

Cómo instalar OSClass con Nginx en Ubuntu 20.04

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar WordPress 5.x con Nginx en Ubuntu 18.04 / Ubuntu 16.04

Cómo instalar NextCloud en Ubuntu 20.04 con Apache

Cómo instalar Nextcloud en Ubuntu 18.04 y 16.04

Cómo instalar Nginx en Ubuntu 15.04