====== NextCloud ======
Installation sur CentOS 7
===== Apache =====
Pour installer Apache:
yum install httpd
Pour activer le service :
systemctl enable --now httpd
===== PHP =====
Pour utiliser les dépôts REMI, il faut activer EPEL :
yum install epel-release
Il faut aussi yum-utils:
yum install yum-utils
Pour activer le dépôt REMI pour PHP 7.3 :
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Les paquets nécessaires à nextcloud :
yum install php73-php-cli php73-php-fpm php73-php-gd php73-php-intl php73-php-pdo php73-php-mbstring php73-php-mysqlnd php73-php-opcache php73-php-pecl-apcu php73-php-pecl-igbinary php73-php-pecl-memcached php73-php-pecl-msgpack php73-php-pecl-mysql php73-php-pecl-zip php73-php-process php73-php-xml
Pour activer le service php-fpm :
systemctl enable --now php73-php-fpm
==== MariaDB ====
Activer le service
systemctl enable --now mariadb
Pour créer la base et l'utilisateur pour nextcloud :
mysql> create database nextcloud;
mysql> GRANT ALL ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'nextcloud';
===== NextCloud =====
Téléchargement de nextcloud :
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.7.zip
Installation de nextcloud dans /var/www/html/
unzip nextcloud-15.0.7.zip -d /var/www/html
Déplacer tous les fichier de /var/www/html/nextcloud dans /var/www/html (attention il y a 2 fichiers cachés), et donner les bons droits :
chown -R apache. /var/www/html
===== SELinux =====
Il faut autoriser php-fpm à faire des execmem :
setsebool -P httpd_execmem 1
Il faut relancer le service php-fpm :
systemctl restart php73-php-fpm
Le reste concerne les contextes par défaut des fichiers nextcloud, surtout ceux où nextcloud doit pouvoir écrire :
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/3rdparty(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/apps(/.*)?'
S'assurer que les contextes sont appliqués :
restorecon -Rv /var/www/html
===== Configuration du vhost =====
Fichier /etc/httpd/conf.d/nextcloud.conf :
SSLEngine on
DocumentRoot /var/www/html/
ErrorLog /var/log/httpd/nextcloud-error.log
CustomLog /var/log/httpd/nextcloud-access.log combined
ServerName cloud.nextcloud.lan
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCACertificateFile /etc/ssl/certs/ca-bundle.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/html
SetEnv HTTP_HOME /var/www/html
#Header always set Strict-Transport-Security "max-age=15768000; preload"
#Header set Referrer-Policy "strict-origin-when-cross-origin"
#Header set X-Content-Type-Options "nosniff"
#Header always set X-Frame-Options "SAMEORIGIN"
#Header always set Feature-Policy "accelerometer 'none'; autoplay 'self'; geolocation 'none'; midi 'none'; notifications 'self'; push 'self'; sync-xhr 'self' https://cloud.nextcloud.lan; microphone 'self'; camera 'self'; magnetometer 'none'; gyroscope 'none'; speaker 'self'; vibrate 'self'; fullscreen 'self'; payment 'none'; usb 'none'"
#Header set Content-Security-Policy "child-src 'https://*.nextcloud.lan'"
#Header set Content-Security-Policy: "frame-ancestors https://cloud.nextcloud.lan https://office2.nextcloud.lan http://office2.nextcloud.lan"
#Header set Content-Security-Policy: "frame-src '*'"
Redirection des pages php vers les FPM (à intégrer à la conf vhost peut-être), dans /etc/httpd/conf.d/php.conf :
Require all denied
AddType text/html .php
DirectoryIndex index.php
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
SetHandler "proxy:fcgi://127.0.0.1:9000"
Ensuite, voir éventuellement la configuration de [[:collabora:debian:installation|collabora]].