nginx und owncloud in Unterordner
Möchte ich eine owncloud-Instanz in einen Unterordner auf meinen nginx-server. Aber ich habe Probleme mit einigen der Dateien, die angefordert durch opwncloud (es scheint, css und js nicht geladen werden).
Hier ist der nginx conf-Datei für diesen virtuellen host :
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; }
}
Kann ich nicht finden, warum owncloud nicht richtig geladen !
Sie können einen Blick auf die website, ich fühle mich gut und gesichert : https://blackblock.22decembre.eu/owncloud/ (cacert-Zertifikate).
Wenn ich das starten einer bestimmten virtuellen host für owncloud, es funktioniert perfekt, aber ich will nicht, ich mag es lieber in einem Unterordner von diesem host (blackblock -) !
InformationsquelleAutor 22decembre | 2014-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keiner der anderen Antworten, die für mich gearbeitet, ich habe endlich eine funktionierende Lösung aus diesem blog:
http://www.aelog.org/install-owncloud-in-a-subdirectory-using-nginx/
Hier eine version:
Ich habe eine Dokumentation pull-request hier:
https://github.com/owncloud/documentation/pull/1704
InformationsquelleAutor EoghanM
Der Grund, warum ownCloud funktioniert nicht in einem Unterordner mit nginx ist, dass nginx standardmäßig enthalten nicht die Unterordner, die im parameter
SCRIPT_NAME
. Wenn ownCloud ist beidomain.tld/owncloud/index.php
es erwartet$_SERVER['SCRIPT_NAME']
zu/owncloud/index.php
, aber nginx standardmäßig (wenn Sieinclude fastcgi_params;
) setztindex.php
. Die Lösung ist das überschreiben das Verhalten: hinzufügenfastcgi_param SCRIPT_NAME /owncloud/$fastcgi_script_name;
auf die php-location-block in der nginx conf-Datei.Relevanten Teile meiner nginx-Konfiguration-Datei Folgen. Bitte beachten Sie, dass ich es noch nicht getestet, ganz; auf den ersten Blick scheint es zu funktionieren aber. Mein System: nginx 1.2.1 und php 5.4.4 auf Debian Wheezy 64 bit.
InformationsquelleAutor FranzB
Entschuldigt, wenn Sie überprüft haben, das schon, aber es gibt ein paar Gegenstände, darunter mehrere Nginx location-Direktiven, die sind nicht aus der config die du gepostet. Ich würde empfehlen, sich auf die Konfiguration Hinweise (link am Ende von diesem post) und sicherzustellen, dass Sie haben Nginx Lage Richtlinien für ownCloud und ownCloud Daten.
Überprüfen Sie die Nginx-PHP-handler:
Ihre Nginx Konfiguration sollte einen handler für PHP5-FPM, setzen Sie diese, bevor Sie die server-Direktive am oberen Rand der Nginx-Konfiguration:
Überprüfen Sie die Nginx-Direktiven:
Beispiele:
Überprüfen Sie das PHP5-FPM-Konfiguration:
Bitte auch, sicherzustellen, dass Sie mit PHP5-FPM-pool-Konfiguration (in der Regel irgendwo wie /etc/php5/fpm/pool.d/www.conf unter Ubuntu) eingestellt ist zu hören auf den sockel und nicht auf einen TCP-port, die sollten übereinstimmen, Ihren handler. Die Konfiguration der Richtlinien für PHP5-FPM socket-versus-port Folgen.
Beispiel socket:
Beispiel port (auskommentiert entsprechend der upstream-handler):
Auch, wenn Sie nicht bereits getan haben, werfen Sie bitte einen Blick auf die ownCloud Konfiguration Hinweise für Nginx.
http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html
Ich habe immer noch sehr Probleme. Ich kann nicht laden Sie die css-oder js-Dateien.
InformationsquelleAutor deadphilosopher
Lassen Sie mich zunächst darauf hinweisen, dass
/
noch nicht läuft/index.php
arbeitet, was bedeutet, dass dieindex
Anweisung aus irgendeinem Grund nicht funktioniert, oder, dass das URI-matching einem anderen block.Sicher umschreiben
location ~ /owncloud/
zulocation ^~ /owncloud
Deine config braucht eine Menge umschreiben, daran, dass die Standard-Konfiguration wurde für owncloud installiert auf root-Verzeichnis, die Ihre in einem subdirecotry Sie brauchen, um zu beheben einige Dinge, wie halten Sie daran, dass
$uri
umfassen würde/owncloud
und/file.ext
würde hop außerhalb der owncloud-Ordner, also alle schreibt, wiebehoben werden müssen, weil 2 Dinge,
^/caldav(.*)$
wird nie passieren, uri beginnt immer mit^/owncloud
/remote.php/...
Aussehen wird außerhalb owncloudEin Update wäre so etwas wie dieses:
Versuchen Sie, diese für ein start-und sagen Sie mir, wie es geht.
InformationsquelleAutor Mohammad AbuShady