GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Nous avions publié un tutoriel sur la façon d'installer Nextcloud sur Ubuntu 16.04 avec le serveur Web Apache en juin 2016, peu de temps après la première version publique de Nextcloud. Mais beaucoup de gens veulent utiliser Nginx plutôt qu'Apache comme serveur Web. Nous allons donc voir dans ce tutoriel comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx.

Remarque :Si vous utilisez Ubuntu 18.04, veuillez suivre ce tutoriel :Installer Nextcloud sur Ubuntu 18.04 avec Nginx (pile LEMP)

Prérequis

Tout d'abord, vous devriez consulter ce tutoriel d'installation de LEMP pour Ubuntu 16.04 si vous n'avez pas encore installé LEMP. Une fois installé, revenez ici et lisez la suite.

Étape 1 :Téléchargez NextCloud 13

Téléchargez l'archive zip du serveur NextCloud sur votre serveur. La dernière version stable est la 13.0.4 au moment d'écrire ces lignes. Vous devrez peut-être modifier le numéro de version. Accédez à https://nextcloud.com/install et cliquez sur le bouton de téléchargement pour découvrir la dernière version.

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

Extrayez-le.

sudo apt install unzip

unzip nextcloud-13.0.4.zip

Un nouveau répertoire nommé nextcloud sera créé dans le répertoire de travail courant. Déplacez le nouveau répertoire et tout son contenu vers la racine du document du serveur Web Nginx

sudo mv nextcloud /usr/share/nginx/

Ensuite, vous devez également définir l'utilisateur Nginx (www-data) comme propriétaire du répertoire NextCloud.

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

Étape 2 :Créer une base de données et un utilisateur dans MariaDB

Connectez-vous au serveur de base de données MariaDB avec la commande suivante :

sudo mysql -u root

Créez ensuite une base de données pour Nextcloud. Ce tutoriel nomme la base de données nextcloud. Vous pouvez utiliser le nom de votre choix.

create database nextcloud;

Créez l'utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez your-password par votre mot de passe préféré.

create user nextclouduser@localhost identified by 'your-password';

Accordez à cet utilisateur tous les privilèges sur le nextcloud base de données.

grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';

Vider les privilèges et quitter.

flush privileges;

exit;

Étape 3 :Activer la journalisation binaire dans MariaDB

Modifiez le fichier de configuration mysqld.

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

Ajoutez les trois lignes suivantes dans [mysqld] rubrique.

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

Le format du journal binaire doit être mixed . Enregistrez et fermez le fichier. Redémarrez ensuite le service MariaDB.

sudo systemctl restart mysql

Le journal binaire est désormais activé dans MariaDB.

Étape 4 :Créer un fichier de configuration Nginx pour Nextcloud

Créer un nextcloud.conf fichier dans /etc/nginx/conf.d/ répertoire.

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

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur rouge par vos données réelles. N'oubliez pas de définir un enregistrement A pour le nom de domaine.

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

Enregistrez et fermez le fichier. Testez la configuration de Nginx, puis rechargez Nginx pour que les modifications prennent effet.

sudo nginx -t

sudo systemctl reload nginx

Étape 5 :Installer et activer les modules PHP

Exécutez les commandes suivantes pour installer les modules PHP nécessaires.

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

Étape 6 :Activer HTTPS

Vous pouvez maintenant accéder à l'assistant d'installation Web Nextcloud dans votre navigateur en saisissant le nom de domaine de votre installation Nextcloud.

nextcloud.your-domain.com

Mais avant de saisir des informations sensibles, nous devons activer la connexion HTTPS sécurisée sur Nextcloud. Nous pouvons obtenir un certificat TLS gratuit auprès de Let's Encrypt. Exécutez les commandes suivantes pour installer le client certbot (Let's Encrypt) sur Ubuntu 16.04 à partir du PPA officiel. Le software-properties-common package est nécessaire pour ajouter PPA sur Ubuntu. Parfois, il n'est pas installé par défaut sur Ubuntu. Python-certbot-nginx est le plugin Nginx.

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

Vous devrez peut-être également mettre à niveau certaines bibliothèques.

sudo apt upgrade

Ensuite, exécutez la commande suivante pour obtenir un certificat TLS gratuit à l'aide du plugin Nginx.

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

Dans quelques secondes, vous verrez un message comme ci-dessous, ce qui signifie que le certificat TLS a été obtenu et installé avec succès.

Terminez l'installation dans votre navigateur Web

Vous pouvez maintenant accéder à l'assistant d'installation Web Nextcloud à l'aide d'une connexion HTTPS. Pour terminer l'installation, vous devez créer un compte administrateur, entrer le chemin du dossier de données Nextcloud, entrer les détails de la base de données créée précédemment.

Le dossier de données est l'endroit où les fichiers des utilisateurs sont stockés. Pour des raisons de sécurité, il est préférable de placer le répertoire de données en dehors de la racine Web de Nextcloud. Ainsi, au lieu de stocker les fichiers des utilisateurs sous /usr/share/nginx/nextcloud/data/ , nous pouvons le remplacer par /usr/share/nginx/nextcloud-data , qui peut être créé avec la commande suivante :

sudo mkdir /usr/share/nginx/nextcloud-data

Assurez-vous ensuite que l'utilisateur Nginx (www-data ) dispose d'une autorisation d'écriture sur le répertoire de données.

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

Une fois cela fait, vous verrez l'interface Web de Nextcloud. Bravo! Vous pouvez commencer à l'utiliser comme stockage cloud privé.

C'est ça! J'espère que ce tutoriel vous a aidé à installer Nextcloud sur Ubuntu 16.04 avec la configuration Nginx. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite. Vous pouvez également nous suivre sur Google+, Twitter ou aimer notre page Facebook.


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  3. Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  5. Comment installer PHP 7.4 avec Nginx sur Ubuntu 20.04

Comment installer OSClass avec Nginx sur Ubuntu 20.04

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer WordPress 5.x avec Nginx sur Ubuntu 18.04 / Ubuntu 16.04

Comment installer NextCloud sur Ubuntu 20.04 avec Apache

Comment installer Nextcloud sur Ubuntu 18.04 et 16.04

Comment installer Nginx sur Ubuntu 15.04