• Serveurs
  • [Résolu] Question sur l'installation de Owncloud

Moi je dirais, repars sur une base propre :
rm /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf
et tu colles:
user www-data;
worker_processes auto;

pid /var/run/nginx.pid;
events { worker_connections 1024; }

http {
    include /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log combined;
    error_log /var/log/nginx/error.log error;
    
    sendfile on;
    keepalive_timeout 20;
    keepalive_disable msie6;
    keepalive_requests 100;
    tcp_nopush on;
    tcp_nodelay off;
    server_tokens off;
    
    gzip on;
    gzip_buffers 16 8k;
    gzip_comp_level 5;
    gzip_disable "msie6";
    gzip_min_length 20;
    gzip_proxied any;
    gzip_types text/plain text/css application/json  application/x-javascript text/xml application/xml application/xml+rss  text/javascript;
    gzip_vary on;

    include /etc/nginx/sites-enabled/*.conf;
}
et ensuite tu mets la conf pour owncloud dans ton rutorrent.conf:
nano /etc/nginx/sites-enabled/rutorrent.conf
en collant ça:
location ^~ /owncloud {
        root /var/www;
        include /etc/nginx/conf.d/php;
        include /etc/nginx/conf.d/cache;
        satisfy any;
        allow all;                                                      
}
et tu relances:
service nginx restart
Voir ce que ça raconte après.
Ex.
edit: j'avais loupé un truc, c'est dans ton rutorrent.conf qu'il faut mettre le machin. J'étais parti sur autre chose
http
{
	server
	{
		location ^~ /owncloud
		{
		}
	}
}
Garrus wrote:J'ai alors tenté de mettre tout le bloc "location owncloud/" dans le bloc "http" mais l'erreur semble persister.
Bonsoir,

en fait, c'était presque ça. Cette directive se place dans un bloc server (et non http). Chaque directive à un (voir plusieurs) emplacement précis.
Juste pour clarifier ce point.
location ^~ /owncloud
{
	root /var/www;
	include /etc/nginx/conf.d/php;
	include /etc/nginx/conf.d/cache;
	satisfy any;
	allow all;
}
J'imagine, désormais la conf(ig) de OwnCloud est comme tel ? Dans ce cas, elle est incomplète. Il faudra reprendre celle d'origine ou celle du tutoriel (v6). Au pire, voir celle de la doc(umentation officielle) de OwnCloud 7.
Malheureusement, je ne serais dire laquelle conviendra...
Donc je résume : la config pour owncloud est à mettre dans rutorrent.conf.

La partie de la config de owncloud pour les ports du serveur :
server {
        listen 80;
        server_name owncloud.xxxx.org;
        return 301 https://$server_name$request_uri;  # enforce https
}

server {
        listen 443 ssl;
        server_name owncloud.xxxx.org;
n'est pas à mettre, et à remplacer par
location ^~ /owncloud
{
	root /var/www;
	include /etc/nginx/conf.d/php;
	include /etc/nginx/conf.d/cache;
	satisfy any;
	allow all;
}
de même, ces lignes :
index index.html index.php;
    	  charset utf-8;

        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;

        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;
ne sont pas à mettre puisqu'elles sont déjà présentent de base dans le rutorrent.conf.

Jusque là j'ai bon ?

Donc finalement ma conf pour onwcloud devrait ressembler à ça :
location ^~ /owncloud
{
	root /var/www;
	include /etc/nginx/conf.d/php;
	include /etc/nginx/conf.d/cache;
	satisfy any;
	allow all;
}

    	  access_log /var/log/nginx/owncloud-access.log combined;
    	  error_log /var/log/nginx/owncloud-error.log error;

        # Path to the root of your installation
        root /var/www/owncloud/;


        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

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

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                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 ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }
Mais je suis pas sur de la syntaxe ?

Merci pour le coup de main, clairement je suis largué...
Oui dans l'ensemble, c'est plutôt bon. Toutefois, il y a quelques erreurs de syntaxe et doublon.
Liste des doublons :
root /var/www/owncloud/;
index index.php;
Je la verrais ainsi :
location ^~ /owncloud
{
	root /var/www;
	include /etc/nginx/conf.d/php;
	include /etc/nginx/conf.d/cache;
	satisfy any;
	allow all;
	access_log /var/log/nginx/owncloud-access.log combined;
	error_log /var/log/nginx/owncloud-error.log error;
	error_page 403 /core/templates/403.php;
	error_page 404 /core/templates/404.php;
	rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
	rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
	rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
	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 ^(/core/doc/[^\/]+/)$ $1/index.html;
}
Par contre, je pense qu'il restera des erreurs... Certains aspects me sont inconnu...
Avec un peu de chance, les erreurs seront indiqués soit par Nginx, soit dans les logs...
Le reste, je l'ai omis car c'est facultatif. Une fois que OwnCloud sera (pleinement) fonctionnel, il faudra envisagé de l'ajouter.
Par exemple, dans une optique de sécurité, il est conseillé d'inclure ceci :
location ~ ^/(data|config|\.ht|db_structure\.xml|README)
{
	deny all;
}
De rien, je comprends ce n'est pas évident. D'autres ont connu quelques difficultés avec OwnCloud.
Alors je teste aussi un peu de mon coté
J'ai bloqué comme Garrus sur ça:
Mais après l'étape de conf je tombe sur un "404 Not Found" pour l'adresse "https://ip.du.serveur/owncloud/index.php/apps/files/".
Après avec la dernière conf de Wagner je tombe sur une page d'erreur "interne owncloud"=> File File not found.
J'ai eu la page de login admin après avoir vidé la cache nav... C'est capricieux cette affaire d'uri
Ex.
Bon j'arrive à quelque chose avec une conf que j'ai trouvé en farfouillant
    location ^~ /owncloud/ {
            alias /var/www/owncloud/;
            location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
                    deny all;
            }
            rewrite ^/owncloud/caldav(.*)$ /owncloud/remote.php/caldav$1 redirect;
            rewrite ^/owncloud/carddav(.*)$ /owncloud/remote.php/carddav$1 redirect;
            rewrite ^/owncloud/webdav(.*)$ /owncloud/remote.php/webdav$1 redirect;
            rewrite ^/owncloud/.well-known/host-meta /owncloud/public.php?service=host-meta last;
            rewrite ^/owncloud/.well-known/host-meta.json /owncloud/public.php?service=host-meta-json last;

            rewrite ^/owncloud/.well-known/carddav /owncloud/remote.php/carddav/ redirect;
            rewrite ^/owncloud/.well-known/caldav /owncloud/remote.php/caldav/ redirect;

            rewrite ^/owncloud/apps/([^/]*)/(.*\.(css|php))$ /owncloud/index.php?app=$1&getfile=$2 last;
            rewrite ^(/owncloud/core/doc/[^\/]+/)$ $1/index.html;

            try_files $uri $uri/ index.php;

            location ~ ^/owncloud/(.+?\.php)/? {  # note the question mark here and in the next line!
                    fastcgi_split_path_info ^/owncloud/(.+?\.php)(/?.*)$;
                    set $path_info $fastcgi_path_info;  # workaround for bug: try_files resets fastcgi_path_info for some reason.
                    try_files $fastcgi_script_name = 404;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param PATH_INFO $path_info;
                    fastcgi_param HTTPS on;
                    fastcgi_param SCRIPT_NAME /owncloud/$fastcgi_script_name;  # !!!
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
            }
            satisfy any;
            allow all;
}
Étrangement ça passe pas avec firefox (cache vidé) mais c'est ok avec chrome (juste un affichage un peu bizarre mais bon...)
J'ai aussi ajouté tout en haut de mon rutorrent.conf
upstream php-handler {
        #server 127.0.0.1:9000;
        server unix:/var/run/php5-fpm.sock;
}
Bref on avance
ex.
5 jours plus tard
Oui, on avance(ra) merci
Par contre, cette ligne me semble étrange :
fastcgi_pass unix:/var/run/php5-fpm.sock;
C'est ainsi que je l'aurais vu :
fastcgi_pass php-handler;
Autrement, cette partie de la conf(ig) me semble inutile :
upstream php-handler
{
	server unix:/var/run/php5-fpm.sock;
}
Dautant plus avec une seule directive ou l'absence d'éléments supplémentaires (comme max_fails cf la doc).

J'ai également commencé des test de mon côté et ça coince ... Je rencontre la même erreur :
J'imagine, ce serait lié à cause de l'une (ou plusieurs) des directives rewrite ?
Ou alors ce sont les variables ?
set $path_info $fastcgi_path_info;
Elles sont indéfini (voir nul). Il serait nécessaire de configurer le PHP ?
cgi.fix_pathinfo=0
Comme Nginx n'intègre le module echo, quelqu'un aurait-il connaissance d'une autre solution équivalente ?
curl http://localhost/
Bonsoir à tous, me revoilà ^^

Tout d'abord je vous souhaites une bonne année à tous.

Ensuite, avec la config de ex_rat j'arrive à quelque chose.
Dans un 1er temps j'arrivais à me connecter depuis firefox, maintenant je reste bloqué à la page de connexion : je rentre mes identifiants et... rien. La page de connexion se recharge...

Avec Safari j'arrive à me connecter et voilà la tête de la page d'acceuil :


Donc doit y'avoir quelques trcus qui bafouille encore, mais ça progresse ^^

Dans le log de owncloud voilà ce que je peux voir :
"Error PHP Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. at Unknown#0"

Voilà, et merci ^^
Salut
J'ai le même affichage moisi avec Chrome et rien de rien avec Firefox, si ça peut te rassurer
Ex.
Bonjour,

de rien et merci bonne année également. A priori, résoudre cette erreur s'avère plutôt très simple.
nano /etc/php5/fpm/php.ini
Il suffit de décommenter cette ligne :
always_populate_raw_post_data = -1
Bien entendu, il faudra redémarrer PHP :
service php5-fpm restart
Depuis, l'erreur a disparu. Elle ne figure plus dans ses logs (ceux propre à OwnCloud et non Nginx).

Et oui, désormais il fonctionne. Voici ma conf(ig) :
location ^~ /owncloud
{
	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_pass php-handler;
	}
}
Je n'ai vérifié qu'une partie. Toutefois, OwnCloud (v7.0.4) me semble pleinement fonctionnel. On avisera s'il y a des manques.
J'ai juste testé avec Firefox. Néanmoins, à mon avis, le navigateur n'y changera guère (ou rien).
11 jours plus tard
si ça peux aider
/etc/nginx/sites-available/default

j'ai utilisé la derniere version du site owncloud.org
# You may add here your
# server {
#	...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
	listen 80 default_server;
	listen [::]:80 default_server ipv6only=on;
	server_name localhost;
	
	rewrite ^ https://xxx.xxx.xxx.xxx$request_uri? permanent;

	include /etc/nginx/conf.d/php;
        include /etc/nginx/conf.d/cache;	

	root /var/www;
	index index.html index.php;

	# Make site accessible from http://localhost/
	#server_name localhost;

	#location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		#try_files $uri $uri/ =404;
		# Uncomment to enable naxsi on this location
		# include /etc/nginx/naxsi.rules
	#}

	# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
	#location /RequestDenied {
	#	proxy_pass http://127.0.0.1:8080;    
	#}

	#error_page 404 /404.html;

	# redirect server error pages to the static page /50x.html
	#
	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root /usr/share/nginx/html;
	}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
	#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
		fastcgi_cache mycache;                
		fastcgi_cache_key $request_method$host$request_uri;                
        	fastcgi_cache_valid any 1h;
	#
	#	# With php5-cgi alone:
	#	fastcgi_pass 127.0.0.1:9000;
	#	# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_intercept_errors on;
}
       
	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	#location ~ /\.ht {
	#	allow all;
	#}

}

location /owncloud {
            root /var/www;
            include /etc/nginx/conf.d/php;
            include /etc/nginx/conf.d/cache;
            satisfy any;
            allow all;

            location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
                    deny all;
            }
            rewrite ^/owncloud/caldav(.*)$ /owncloud/remote.php/caldav$1 redirect;
            rewrite ^/owncloud/carddav(.*)$ /owncloud/remote.php/carddav$1 redirect;
            rewrite ^/owncloud/webdav(.*)$ /owncloud/remote.php/webdav$1 redirect;
            rewrite ^/owncloud/.well-known/host-meta /owncloud/public.php?service=host-met$
            rewrite ^/owncloud/.well-known/host-meta.json /owncloud/public.php?service=hos$

            rewrite ^/owncloud/.well-known/carddav /owncloud/remote.php/carddav/ redirect;
            rewrite ^/owncloud/.well-known/caldav /owncloud/remote.php/caldav/ redirect;

            rewrite ^/owncloud/apps/([^/]*)/(.*\.(css|php))$ /owncloud/index.php?app=$1&ge$
            rewrite ^(/owncloud/core/doc/[^\/]+/)$ $1/index.html;

            try_files $uri $uri/ index.php;

            location ~ ^/owncloud/(.+?\.php)/? {  # note the question mark here and in the$
                    fastcgi_split_path_info ^/owncloud/(.+?\.php)(/?.*)$;
                    set $path_info $fastcgi_path_info;  # workaround for bug: try_files re$
                    try_files $fastcgi_script_name = 404;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param PATH_INFO $path_info;
                    fastcgi_param HTTPS on;
                    fastcgi_param SCRIPT_NAME /owncloud/$fastcgi_script_name;  # !!!
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
            }
    }

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#	listen 8000;
#	listen somename:8080;
#	server_name somename alias another.alias;
#	root html;
#	index index.html index.htm;
#
#	location / {
#		try_files $uri $uri/ =404;
#	}
#}


# HTTPS server
#
server {
	listen 443 ssl;
	server_name xxx.xxx.xxx;
	charset utf-8;	

	root /var/www;
	index index.html index.php;

	include /etc/nginx/conf.d/php;
	include /etc/nginx/conf.d/cache;

#	ssl on;
	ssl_certificate /etc/nginx/ssl/server.crt;
	ssl_certificate_key /etc/nginx/ssl/server.key;
	
#}
#}
		## début config phpmyadmin

        location ^~ /phpmyadmin {
            alias /usr/share/phpmyadmin/;
            try_files $uri $uri/ /index.php;

        location ~ ^/phpmyadmin(.+\.php)$ {
            alias /usr/share/phpmyadmin$1;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1;
            include fastcgi_params;
            fastcgi_intercept_errors on;
        }
    }

        ## fin config phpmyadmin

#	ssl_session_timeout 5m;
#
#	ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
#	ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
#	ssl_prefer_server_ciphers on;
#
#	location / {
#		try_files $uri $uri/ =404;
#	}
}
bonsoir

je me confronte a un probleme que je ne connais pas sur la page de owcloud page de login

Avertissement de sécurité

Votre répertoire data est certainement accessible depuis l'internet car le fichier .htaccess ne semble pas fonctionner
Pour les informations de configuration de votre serveur, veuillez lire la documentation.
Bonsoir,

il ne s'agit en rien d'un problème. Le message est à ignorer car ce prétendu défaut s'avère déjà pallier. Comme l'atteste cette partie de la conf(ig) de Nginx :
location ~ ^/(data|config|\.ht|db_structure\.xml|README)
{
	deny all;
}
Autrement, oui ça aidera éventuellement... Néanmoins, à ce jour, il n'y a eu toujours aucun manque de reporter (à ma connaissance).
5 jours plus tard
Je profite de ce post afin d'essayer de résoudre un problème qui semble être récurrent avec Owncloud 7.0.

Il m'est impossible d'utiliser l'application Owncloud, aussi bien sur mobile que desktop en raison d'un problème de Webdav.
Je peux très bien organisé mes fichiers via le navigateur Internet mais impossible de synchroniser via l'application.

Voici l'erreur affichée dans la partie admin:
Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.
Et celle affichée par l'application:
Error downloading https://owncloud.domain.ltd/remote.php/webdav/ - server replied: Not Found
J'ai suivis le tutoriel suivant: http://mondedie.fr/d/5623)
Et ai modifié le fichier Client.php bien que celui-ci ai changé de place depuis la dernière version.

En ce qui concerne les logs, ils n'affichent rien de probant.
{"app":"PHP","message":"fopen(\/var\/www\/owncloud\/config\/config.php): failed to open stream: No such file or directory at \/var\/www\/owncloud\/lib\/private\/config.php#141","level":3,"time":"2015-01-09T22:28:50+00:00"}
{"app":"PHP","message":"Array to string conversion at \/var\/www\/owncloud\/lib\/private\/l10n\/string.php#57","level":3,"time":"2015-01-10T17:55:05+00:00"}
{"reqId":"54c39c808b0e8","app":"PHP","message":"Array to string conversion at \/var\/www\/owncloud\/lib\/private\/l10n\/string.php#57","level":3,"time":"2015-01-24T13:22:08+00:00","method":"GET","url":"\/index.php\/apps\/updater\/update.php"}
Merci d'avance pour votre aide.
Bon je reviens vers vous ^^

@Pierrick : oui moi aussi je n'arrivais pas à me connecter via l'application mobile.

Je pense que je vais un peu tomber owncloud, et changer de "stratégie".

Je voulais simplement en fait me faire un petit cloud perso ou y mettre des fichiers comme mes photos.

Ma question : dans mon dossier /home/user1, si je créer un dossier data, que je change ses permissions comme cela :
"chown -R user1:user1 /home/user1/data"
concrètement qui pourra accéder à ce dossier ? user1 et root normalement, non ?

Est-ce qu'une telle "installation" serait assez sécurisée ? Par rapport au dossier data de owncloud je veux dire ?

Et sur mes devices mobile j'y accèderait en sftp.

Ça vous parait une bonne idée ? Du moins pas trop mauvaise ?

Merci ^^
Bonjour
Garrus wrote: Ma question : dans mon dossier /home/user1, si je créer un dossier data, que je change ses permissions comme cela :
"chown -R user1:user1 /home/user1/data"
concrètement qui pourra accéder à ce dossier ? user1 et root normalement, non ?
Tout à fait.
Garrus wrote: Et sur mes devices mobile j'y accèderait en sftp.

Ça vous parait une bonne idée ? Du moins pas trop mauvaise ?
Oui c'est une bonne idée est alternative à owncloud.
Serte tu n'auras pas les même services derrière mais juste pour des photos / docs c'est suffisant.
Je vais opter pour Pydio ou une autre solution alors.

Le but, c'est d'installer une solution cloud afin de gérer ma bibliothèque Calibre directement depuis mon serveur et ainsi récupérer en wifi mes ebooks sur mon Kindle.
Arthur_ wrote:Oui c'est une bonne idée est alternative à owncloud.
Serte tu n'auras pas les même services derrière mais juste pour des photos / docs c'est suffisant.
Super, merci pour la réponse.

Bon j'arrête de me prendre la tête et je fais comme ça, en plus mon client ftp à une option de synchro entre un dossier local et un dossier distant, du tout bon.

Merci à tout pour votre aide, en ce qui me concerne problème résolu ^^
Bonjour,

juste pour prévenir, il me sera impossible de vérifier la présence d'un problème avec l'application mobile. Par contre, j'imagine, je le pourrais éventuellement avec celle du desktop. Actuellement, le webdav n'est certainement pas configuré...