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

Bonsoir à tous.

J'aurais une petite question concernant l'installation de Owncloud (via ce tuto : http://mondedie.fr/d/5623).

Il est indiqué que l'on doit renseigner son sous domaine (owncloud.xxxx.org). Peut on faire sans sous domaine ? En utilisant diretement l'ip de son serveur par exemple ?

Je vous remercie, et vous souhaite de bonnes fêtes de fin d'année.
Merci pour vos réponse.

J'ai tenté de suivre les infos données dans le sujet indiqué par ex_rat, mais lorsque je tente de relancer le service nginx j'ai l'erreur suivante :
"nginx: [emerg] "upstream" directive is not allowed here in /etc/nginx/nginx.conf:34"

Merci.
Bonsoir,

il faudrait poster le contenu du fichier nginx.conf. Ainsi, ça sera plus simple, enfin j'imagine. Parfois, il arrive que l'erreur soit mal renseignée ou quelle en dissimule d'autre.
Ah oui pas faux ^^

Voilà mon fichier de config :
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$
        gzip_vary on;

        include /etc/nginx/sites-enabled/*.conf;
}

upstream php-handler {
        server 127.0.0.1:9000;
        #server unix:/var/run/php5-fpm.sock;
}

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

merci
Pour l'instant, je vais uniquement évoquer cette erreur. Par la suite, on avisera s'il y en a d'autre.
Ainsi, a priori, c'est bien juste une petite erreur de syntaxe. Cette directive impose d'être présente dans le bloc http (et non en dehors). Voici la solution :
http
{
	upstream php-handler
	{
		server 127.0.0.1:9000;
		#server unix:/var/run/php5-fpm.sock;
	}
}
Je n'ai repris que l'essentiel, de rien.
J'ai fais la modif, mais l'erreur semble s'être déportée :
"nginx: [emerg] "location" directive is not allowed here in /etc/nginx/nginx.conf:39"

J'ai alors tenté de mettre tout le bloc "location owncloud/" dans le bloc "http" mais l'erreur semble persister.

Merci.
Salut
Y'a un truc qui me pique l'oeil là.
La conf du vhost devait être dans un fichier :
/etc/nginx/sites-enabled/owncloud.conf
Ça a rien à faire en /etc/nginx/nginx.conf (ou alors j'ai loupé un truc dans le topic c'est possible aussi....)
Ex.
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).