===== Installation du serveur Owncloud =====
==== Prerequis ====
  * Avoir une debian 8 operationnelle
  * de l'espace disque 1Go/utilisateur au minimum
  * du café
  * avoir lu la doc [[https://mondedie.fr/viewtopic.php?id=6926/| le tutoriel]]
==== Installation ====
apt-get install nginx ssl-cert
apt-get install mysql-server
ensuite il est demandé de créer le mot de passe root pour le service mysql
{{http://1969324071.rsc.cdn77.org/wp-content/uploads/2015/06/sk@debian-_002.jpg}}
de nouveau confirmez en tapant le même mot de passe et surtout stockez ce mot de passe dans un gestionnaire chiffré pour mot de passes :) 
{{http://1969324071.rsc.cdn77.org/wp-content/uploads/2015/06/sk@debian-_003.jpg}}
vous pouvez vérifier que tout est OK avec la commande suivante :
 systemctl status mysql 
Créez la base de données pour votre installation de OwnCloud
mysql -u root -p
entrer le mot de passe root mentionné à l'installation de mysql server
puis > 
CREATE DATABASE owncloud;
CREATE USER owncloud_adm@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON owncloud.* TO owncloud_adm@localhost;
FLUSH PRIVILEGES;
exit;
installez PHP 
 apt-get install php5 php5-fpm php5-mysql 
Configurez Nginx
nano /etc/nginx/nginx.conf
configurez le nombre de processeurs. Pour vérifier le nombre de processeurs, tapez la commande “lscpu”. Dans notre cas "1" processeur. 
Donc nous configurons '1'.
worker_processes 1;
Téléchargez Owncloud depuis une source officielle :
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
Ajoutez la clef:
apt-key add - < Release.key
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list
 apt-get update 
 apt-get install owncloud 
==== Configuration ====
configurer nginx pour owncloud
aller dans /etc/nginx/sites-available/
''cd /etc/nginx/sites-available/''
puis ''sudo nano owncloud''
 
server {
       listen 80;
       server_name owncloud.mdl29.net;
       return 301 https://$host$request_uri;
}
server {
        listen 443 ssl;
        server_name monsousdomaine.mondomaine.org; #ici on peut mettre UNE IP LAN de type 192.168.1.*
	ssl_certificate /etc/nginx/certs/machainedecert.chain.crt;
	ssl_certificate_key /etc/ssl/private/maclef.key;
	ssl_session_timeout 5m;
	ssl_dhparam /etc/nginx/dhparams.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers EECDH+aRSA+AES256:EDH+aRSA+AES256:EECDH+aRSA+AES128:EDH+aRSA+AES128;
	ssl_session_cache shared:SSL:50m;
	ssl_prefer_server_ciphers on;
	add_header Strict-Transport-Security max-age=63072000;
	
	# chemin de l'installation de owncloud
	root /var/www/owncloud;
	client_max_body_size 200M; # set max upload size
	fastcgi_buffers 64 4K;
 
	# quelques règles de réécritures d'URL
	rewrite ^/caldav((/|$).*)$ /remote.php/caldav$1 last;
	rewrite ^/carddav((/|$).*)$ /remote.php/carddav$1 last;
	rewrite ^/webdav((/|$).*)$ /remote.php/webdav$1 last;
	rewrite ^/(core\/(preview.png|js\/oc.js))$  /index.php/$1  last;
	rewrite ^/([^.]*)$  /index.php/$1  last;
	# index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;
        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
	# Protection de fichiers et de dossiers sensibles
	location ~ ^/(data|config|\.ht|db_structure.xml|README) {
		deny all;
	}
	# Configuration de la "root" location avec des règles de réécriture
	location / {
		rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
		rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
		rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
		rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
		rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last;
		rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last;
		rewrite ^/apps/([^/]*)/(.*\.(css|php))$ /index.php?app=$1&getfile=$2 last;
		rewrite ^(/core/doc[^\/]+/)$ $1/index.html;
		try_files $uri $uri/ index.php;
	}
        # configuration de nginx et php-fpm et déclaration du socket Unix de PHP-FPM pour que celui-ci puisse lui transmettre les requêtes PHP qu’il reçoit
	location ~ \.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;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
	} 
	# Optionel: appliquez un long critère "EXPIRES header" sur les éléments statiques
	location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
		expires 30d;
		# Optional: Don't log access to assets
		access_log off;
	}
}