Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Un mémo sur comment installer Nextcloud, le fork de OwnCloud sur un serveur Debian.Dans cet article deux méthode sont proposées, l’une avec un serveur web basé sur Nginx et PHP7 et l’autre basé sur Apache2 et PHP5 avec une installation simplifiée. Installation et configuration de MariaDB Pour les deux méthodes d’installation du serveur web pour Nextcloud, il faut au préalable installer le serveur de base de données et créer la future base pour Nextcloud. Installation du serveur de base de données MariaDB :apt install mariadb-serverExécuter la commande mysql_secure_installation, pour sécuriser à minima l’installtion de MariaDB :mysql_secure_installationAjout de la base de données pour le futur NexCloud :Se connecter au serveur MariaDB :mysql -u root -pCréer la base de données pour Nextcloud :CREATE DATABASE nextcloud; Ajouter un utilisateur pour cette base de données :GRANT ALL PRIVILEGES ON nextcloud.* TO 'USER'@'localhost' IDENTIFIED BY 'SuperMDP';Recharger les privilèges :FLUSH PRIVILEGES;Quitter :quit Dans cette première partie, le serveur Nextcloud est installé sur un serveur web basé sur Nginx et PHP7. Installation du serveur web Nginx Pour le serveur web Nginx, il est possible d’installer la version présente dans les dépôts officiels mais dans cet article, la version de Nginx sera la dernière version stable disponible à partir des dépôts de Nginx. Ajout du dépôts Nginx :Pour Debian Jessie :echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" > /etc/apt/sources.list.d/nginx.list Pour Debian Stretch : echo "deb http://nginx.org/packages/mainline/debian/ stretch nginx" > /etc/apt/sources.list.d/nginx.listTéléchargement de la clé :wget http://nginx.org/keys/nginx_signing.keyAjout de la clé :apt-key add nginx_signing.keyMise à jour :apt updateInstallation du serveur web Nginx :apt install nginx Installation de PHP 7 Installation de PHP 7:apt install php7.0-fpm php7.0 Installation des dépendances PHP pour NexCloud : apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php7.0-xml php7.0-zipConfiguration de PHP 7 :Modification de php.ini :nano /etc/php/7.0/fpm/php.iniDé-commenter la ligne :cgi.fix_pathinfo=0Copie de www.conf vers nextcloud.conf :cp /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/nextcloud.confRenommer www.conf en www.old :mv /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/www.oldMofifier la ligne du fichier nextcloud.conf :listen = /run/php/php7.0-fpm.sock par listen = 127.0.0.1:9000 et user=www-data par user=nextcloud Certificat TLS Let’s Encrypt Pour créer un certificat TLS pour son domaine, voir cet article : https://memo-linux.com/installer-certbot-sous-debian/ Configuration du server block pour NexCloud nano /etc/nginx/conf.d/nextcloud.conf upstream php-handler { server 127.0.0.1:9000; } server { listen 80; server_name cloud.example.com; # enforce https return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name cloud.example.com; ###certificat Let's Encrypt ssl_certificate /etc/letsencrypt/live/cloud.exemple.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cloud.exemple.com/privkey.pem; ###ajout perso ssl_protocols TLSv1.2; ssl_dhparam /etc/ssl/certs/dhparams.pem; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/cloud.exemple.com/fullchain.pem; resolver 127.0.0.1 9.9.9.9;##j'ai mon propre serveur dns en local add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; 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 /var/www/html/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; } # set max upload size client_max_body_size 512M; fastcgi_buffers 64 4K; # Enable gzip but do not remove ETag headers gzip on; gzip_vary on; gzip_comp_level 4; gzip_min_length 256; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 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/.+)\.php(?:$|/) { fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass php-handler; 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|woff|svg|gif)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=15778463"; add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; 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 ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Optional: Don't log access to other assets access_log off; } } Installation de NexCloud La première parie est le téléchargement du fichier zip de Nextcloud, puis l’installation proprement dite. Mise ne place de Nexcloud Ajouter un utilisateur dédié à NexCloud et l’ajouter au groupe www-data : useradd nextcloud usermod -a -G www-data nextcloud Se placer dans le répertoire /var/www/html/cd /var/www/html/Télécharger lu fichier zip :wget https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zipDécompression du zip :unzip nextcloud-12.0.4.zipChanger les droits d’appartenance au répertoire nextcloud :chown -R nextcloud:www-data nextcloud/Supprimer le fichier zip :rm nextcloud-12.0.4.zip Installation de Nextcloud Relancer les service Nginx et php7.0-fpm :systemctl restart nginx systemctl restart php7.0-fpOuvrir un navigateur internet puis saisir l’url du serveur : https://cloud.exemple.comRenseigner les différents champs puis cliquer sur « Finish Setup » : Le serveur Nextcloud est opérationnel : Cette installation de Nextcloud est basée sur le serveur web Apache2 et PHP5 et installé via apt. Ajout du dépôt pour Nextcloud :Ajout du dépôt pour Debian Jessie :echo "deb http://apt.jurisic.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list.d/nextcloud.list Ajout du dépôt pour Debian Strecth : echo "deb http://apt.jurisic.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list.d/nextcloud.listRécupération de la clé :wget -q http://apt.jurisic.org/Release.key -O- | apt-key add -Mise à jour des dépôts :apt updateInstallation du serveur Nexcloud :apt install nextcloud-serverPour installer le client Nexcloud :apt install nextcloud-client Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.