Procédure d'installation de nextcloud

:FIXME: à ranger dans le chapitre nextcloud ?

La base des notes d'installation est un tutoriel modérément récent (NC 12), mais très précis et parfait pour la config actuelle. Tant qu'une (autre) procédure n'aura pas été écrite, continuer à suivre le tuto, en utilisant les lignes recopiées dans les sections code pour le dbl-click+copier, coller

(note : La procédure est perfectible concernant l'usage de Certbot. le tuto était écrit à la base pour une installation sur ubuntu, tant mieux, ça fonctionne pareil, à part au stade de l'auto-certification. L'auteur utilise un dépôt ubuntu pour aller chercher cerbot, alors qu'il devrait pouvoir le récupérer autrement.

Il est nécessaire, de rajouter le paquet dirmngr.

apt install dirmngr

en attente de le transformer en script, l'idée est de suivre le tuto sus-nommé en copiant-collant pour plus de simplicité les commandes ici

Cette page est en (perpetuel?) chantier et peut être enrichie des expériences de chacun.

nginx

Si un serveur nginx est déjà installé, vous pouvez passer cette section.

apt-get -y install nginx
nano /etc/nginx/nginx.conf 
(pour édition voir tuto)

Téléchargement de nextcloud

cd /var/www/
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256
sha256sum -c latest.tar.bz2.sha256 < latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.asc
wget https://nextcloud.com/nextcloud.asc
gpg --import nextcloud.asc
gpg --verify latest.tar.bz2.asc latest.tar.bz2
tar -xvf latest.tar.bz2
rm latest.tar.bz2* nextcloud.asc

Droits Unix

Voir utilisateurs_unix pour plus d'information sur les 'utilisateurs' du système.

adduser nextcloud (note : commande adduser à sécuriser)
chown -R nextcloud:www-data /var/www/nextcloud
chmod -R o-rwx /var/www/nextcloud

librairies php indispensables

A voir s'il en manque ..

apt-get -y install php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring
apt-get install -y php-fpm (si ça n'était pas encore installé)

Création du pool php-fpm

note : je maîtrise moins cette partie, mais le fichier proposé fonctionne bien pour de moyennes configs (en terme de ressources et/ou du nombre d'utilisateurs)
  nano /etc/php/7.0/fpm/pool.d/nextcloud.conf

Exemple de pool (perfectible)

[nextcloud]
listen = /var/run/nextcloud.sock
listen.owner = nextcloud
listen.group = www-data
user = nextcloud
group = www-data
pm = ondemand
pm.max_children = 30
pm.process_idle_timeout = 60s
pm.max_requests = 500
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

on redémarre le service

service php7.0-fpm restart

(pas sûr que l'édition soit utile ? ndlr)

systemctl edit php7.0-fpm.service

(ajouter :

[Service]
UMask=0027

(et attention, chaud de sortir de 'edit' : Esc, puis x, et save à l'invit pour sauvegarder, puis Ctrl+x Ctrl+c )

systemctl reenable php7.0-fpm.service

Il s'agit ensuite de créer la base de données nécessaire à nextcloud.

installation de mariadb

apt-get install -y mariadb-server mariadb-client
mysql_secure_installation

(et voir tuto pour explications)

création de la base de données

Dans le cas de l'usage d'une base de données externe, soyez certain de connaitre les informations suivantes :
  host: mysql.lplab.fr (par exemple)
  username : tlx
  password : xxxx
  database : nextcloud 

Dans le cas le plus courant, la base de données mariadb est sur le serveur. Créons une base de données et un utilisateur nextcloud

mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER "nextcloud"@"localhost";
SET password FOR "nextcloud"@"localhost" = password('xxxx');
GRANT ALL PRIVILEGES ON nextcloud.* TO "nextcloud"@"localhost" IDENTIFIED BY "xxxx";
FLUSH PRIVILEGES;
EXIT
 nano /etc/nginx/sites-available/nextcloud
 

et suivre tuto ou voir page Configuration nginx / DNS pour un exemple de fichier de configuration

ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
systemctl restart nginx.service
systemctl restart php7.0-fpm.service
apt-get install -y software-properties-common
apt install dirmngr
add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install -y certbot

puis viens le moment de créer sa clef 4096 bits

certbot certonly --webroot -w /var/www/nextcloud --agree-tos --email tech@lplab.fr -d cloud.icarre.fr --rsa-key-size 4096
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
chmod 600 /etc/ssl/certs/dhparam.pem
nano /etc/nginx/sites-available/nextcloud

Ndlr : créer une clef DH de 4096 bits c'est long même très long .. qq dizaines de minutes déjà, et ce n'est pas terminé.

puis tuto

systemctl reload nginx.service
crontab -e
42 23 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
nano /etc/nginx/sites-available/nextcloud

systemctl restart nginx.service
systemctl restart php7.0-fpm.service

puis voir le tuto, d'autres édition de 

nano /etc/php/7.0/fpm/pool.d/nextcloud.conf

et 

nano /etc/nginx/sites-available/nextcloud

sont nécessaires.

Post installation

Après avoir lancé Nextcloud sur le navigateur , il ne faut pas oublier de revenir au tuto pour configurer opcache, le(s) cache(s) de données APCU et Redis

nano /etc/php/7.0/fpm/php.ini

systemctl restart php7.0-fpm.service

apt-get install php-apcu redis-server php-redis -y
su nextcloud
nano /var/www/nextcloud/config/config.php
exit
systemctl restart php7.0-fpm.service

Premiers pas dans nextCloud et configuration de l'appli

… to be continued

  • /var/www/dokuwiki/data/pages/2_hostmytlx/1_serveur/nextcloud_installation
  • Dernière modification: 04/02/2019 22:24