nginx et owncloud dans le sous-dossier
Je veux avoir un owncloud par exemple dans un sous-dossier sur mon serveur nginx. Mais j'ai des problèmes avec certains fichiers demandés par opwncloud (il semble que le css et le js ne se charge pas).
Voici le fichier conf de nginx pour cet hôte virtuel :
server {
listen 80;
server_name blackblock.22decembre.eu;
return 301 https://blackblock.22decembre.eu$request_uri;
}
server {
listen 443 default_server ssl;
server_name blackblock.22decembre.eu;
root /srv/www/blackblock/;
access_log /var/log/nginx/blackblock.access.log;
error_log /var/log/nginx/blackblock.errors.log;
index index.html index.php;
# This block will catch static file requests, such as images, css, js
# The : prefix is a "non-capturing" mark, meaning we do not require
# the pattern to be captured into $1 which should help improve performance
location ~* \.(:ico|css|js|gif|jpeg|png)$ {
# Some basic cache-control for static files to be sent to the browser
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# remove the robots line if you want to use wordpress" virtual robots.txt
# location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
# this prevents hidden files (beginning with a period) from being served
location ~ /\. { access_log off; log_not_found off; deny all; }
#location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
location ~ \.php {
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_pass unix:/run/php5-fpm.sock;
include fastcgi_params;
}
location /roundcube/program/js/tiny_mce/ { alias /usr/share/tinymce/www/; }
location /roundcube/(config|temp|logs) { deny all;}
##### owncloud
location ~ /owncloud/ {
root /srv/www/blackblock/owncloud/;
try_files $uri $uri/ index.php;
#client_max_body_size 10G; # set max upload size
#fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
location ~ ^/remote.php(/.*)$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/run/php5-fpm.sock;
include fastcgi_params;
}
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
# 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;
# 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;
# }
}
##### torrent (not related to owncloud, flask application)
location = /flask-torrent { rewrite ^ /flask-torrent/ last; }
}
Je ne trouve pas pourquoi owncloud ne se charge pas correctement !
Vous pouvez avoir un oeil sur le site, je me sens bien et sécurisé pour que : https://blackblock.22decembre.eu/owncloud/ (certificats cacert).
Si je lance un hôte virtuel spécifique pour owncloud, ça fonctionne parfaitement, mais je ne veux pas, je la préfère dans un sous-dossier de cet hôte (blackblock) !
OriginalL'auteur 22decembre | 2014-02-08
Vous devez vous connecter pour publier un commentaire.
Aucune des autres réponses ont travaillé pour moi, j'ai enfin obtenu une solution de travail à partir de ce blog:
http://www.aelog.org/install-owncloud-in-a-subdirectory-using-nginx/
Voici une version:
J'ai créé une documentation tirez demande ici:
https://github.com/owncloud/documentation/pull/1704
OriginalL'auteur EoghanM
La raison pour laquelle ownCloud ne fonctionne pas dans un sous-dossier avec nginx est que nginx, par défaut, ne comprend pas le sous-dossier dans le paramètre
SCRIPT_NAME
. Si ownCloud est àdomain.tld/owncloud/index.php
, il s'attend à ce$_SERVER['SCRIPT_NAME']
être/owncloud/index.php
, mais nginx par défaut (si vousinclude fastcgi_params;
) il met à laindex.php
. La solution est de remplacer le comportement: ajouterfastcgi_param SCRIPT_NAME /owncloud/$fastcgi_script_name;
pour le php-emplacement-quartier dans le fichier conf de nginx.Parties pertinentes de mon fichier de configuration de nginx suivre. Veuillez noter que je n'ai pas testé complètement; sur le premier regard, il semble fonctionner bien. Mon Système: nginx 1.2.1 et php 5.4.4 sur Debian Wheezy 64 bits.
OriginalL'auteur FranzB
Excuses si vous avez examiné le présent déjà, mais il y a quelques éléments, y compris de multiples Nginx emplacement directives qui sont absents de la config que vous avez posté. Je recommande de regarder les notes de configuration (lien en bas de ce post) et vous assurer que vous avez Nginx emplacement directives pour ownCloud et ownCloud données.
Cochez la Nginx PHP gestionnaire:
Votre Nginx configuration devrait inclure un gestionnaire de PHP5-FPM, mettez-le avant que la directive serveur en haut de la Nginx configuration:
Cochez la Nginx directives:
Exemples:
Vérifier le PHP5-FPM de configuration:
Aussi, assurez-vous de PHP5-FPM piscine de configuration (généralement quelque part, comme /etc/php5/fpm/pool.d/www.conf sur Ubuntu) est configuré pour écouter sur le support et non un port TCP qui doit correspondre à votre gestionnaire. Les directives de configuration de PHP5-FPM prise contre le port de suivre.
Exemple douille:
Exemple de port (en commentaire de match en amont gestionnaire):
Aussi, si vous ne l'avez pas déjà fait, veuillez jeter un oeil à la ownCloud notes de configuration pour Nginx.
http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html
Je continue à avoir beaucoup de problèmes. Je ne peux pas charger les fichiers css ou js.
OriginalL'auteur deadphilosopher
D'abord, permettez-moi de souligner que
/
n'est pas encore/index.php
est au travail, ce qui signifie que leindex
déclaration pour une raison quelconque ne fonctionne pas, ou que votre URI est l'adaptation d'un autre bloc.Pour être sûr de réécriture
location ~ /owncloud/
àlocation ^~ /owncloud
Votre config a besoin de beaucoup de réécriture, de l'esprit que la configuration par défaut a été faite pour owncloud installé sur la racine, le vôtre en un subdirecotry vous devez corriger quelques petites choses, comme de garder à l'esprit que
$uri
comprendrait/owncloud
et/file.ext
serait hop à l'extérieur de l'owncloud dossier, de sorte que tous les réécritures qui sont commebesoin d'être corrigé, car de 2 choses,
^/caldav(.*)$
n'arrivera jamais, uri commence toujours par^/owncloud
/remote.php/...
va chercher à l'extérieur de owncloudUn correctif serait quelque chose comme ceci:
De juger les personnes pour commencer et me dire comment ça se passe.
OriginalL'auteur Mohammad AbuShady