Table des matières

Installation du serveur Owncloud

Prerequis

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

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 :)

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;
	}
}