====== 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]].