-
-
Save petarpetrovic/5163565 to your computer and use it in GitHub Desktop.
# This is the complete example of nginx configuration file for ownCloud 5 | |
# This config file configures proper rewrite rules for the new release of ownCloud | |
# Also, this config file configures nginx to listen on both IPv4 and IPv6 addresses | |
# If you want it to listen to IPv4 address only, use listen 80; instead of listen [::]:80 | |
# First, we configure redirection to HTTPS (substitue owncloud.example.com with the proper address of your OC instance) | |
server { | |
listen [::]:80; | |
server_name owncloud.example.com; | |
rewrite ^ https://$server_name$request_uri? permanent; | |
} | |
# Now comes the main configuration for ownCloud 5 | |
server { | |
listen [::]:443 ssl; # Make it listen on port 443 for SSL, on both IPv4 and IPv6 interfaces | |
server_name owncloud.example.com; | |
root /var/www/owncloud; # Make sure to insert proper path for your ownCloud root directory | |
index index.php; | |
# Now we configure SSL certificates. Make sure you enter correct path for your SSL cert files | |
ssl_certificate /etc/nginx/certs/owncloud.example.com.crt; | |
ssl_certificate_key /etc/nginx/certs/owncloud.example.com.key; | |
client_max_body_size 1024M; # This is the first parameter which configures max size of upload, more to come later | |
fastcgi_buffers 64 4K; | |
# Configure access & error logs | |
access_log /var/log/nginx/owncloud.example.com.access_log main; | |
error_log /var/log/nginx/owncloud.example.com.error_log info; | |
# Configure proper error pages | |
error_page 403 = /core/templates/403.php; | |
error_page 404 = /core/templates/404.php; | |
# Some rewrite rules, more to come later | |
rewrite ^/caldav((/|$).*)$ /remote.php/caldav$1 last; | |
rewrite ^/carddav((/|$).*)$ /remote.php/carddav$1 last; | |
rewrite ^/webdav((/|$).*)$ /remote.php/webdav$1 last; | |
# Protecting sensitive files from the evil outside world | |
location ~ ^/(data|config|\.ht|db_structure.xml|README) { | |
deny all; | |
} | |
# Configure the root location with proper rewrite rule | |
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; | |
index index.php; # This one might be redundant, but it doesn't hurt to leave it here | |
try_files $uri $uri/ index.php; | |
} | |
# Configure PHP-FPM stuff | |
location ~ ^(<script_name>.+?\.php)(?<path_info>/.*)?$ { | |
try_files $script_name = 404; | |
fastcgi_pass unix:/var/run/php5-fpm.sock; # Be sure to check proper socket location for php-fpm, might be different on your system | |
fastcgi_param PATH_INFO $path_info; | |
fastcgi_param HTTPS on; | |
# This one is a little bit tricky, you need to pass all parameters in a single line, separating them with newline (\n) | |
fastcgi_param PHP_VALUE "upload_max_filesize = 1024M \n post_max_size = 1024M"; # This finishes the max upload size settings | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # On some systems OC will work without this setting, but it doesn't hurt to leave it here | |
include fastcgi_params; | |
} | |
location ~* ^.+.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { | |
expires 30d; | |
access_log off; | |
} | |
} |
Why do you have no dav_methods in it?
New to nginx and struggling to get OwnCloud 5.0 and nginx working. I have followed your posts and appear to be close to getting the configuration correct. Running on Ubuntu 12.04 LTS with PHP 5.4.12-2.
With the configuration below I have configured and can start Owncloud but get message this content failed to load.
server {
listen 80; ## listen for ipv4; this line is default and implied
server_name owncloud.zxzxzx.net;
index index.html index.htm index.php;
root /var/www/owncloud;
client_max_body_size 1000M; # set maximum upload size
location ~ ^/owncloud/remote.php(/.*)$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
# deny direct access
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
# default try order
location / {
try_files $uri $uri/ @webdav;
}
# owncloud WebDAV
location @webdav {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
location ~ .*\.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
I updated the above configuration file to add the missing rewrite sections and then nginx will not restart. As I do not understand the rewrite rules could you please advise as to what is wrong with the following config.
Updated
server {
listen 80; ## listen for ipv4; this line is default and implied
server_name owncloud.zxzxzx.net;
index index.html index.htm index.php;
root /var/www/owncloud;
client_max_body_size 1000M; # set maximum upload size
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
rewrite ^/caldav((/|$).*)$ /remote.php/caldav$1 last;
rewrite ^/carddav((/|$).*)$ /remote.php/carddav$1 last;
rewrite ^/webdav((/|$).*)$ /remote.php/webdav$1 last;
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 ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^/owncloud/remote.php(/.*)$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
# deny direct access
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
# default try order
location / {
try_files $uri $uri/ @webdav;
}
# owncloud WebDAV
location @webdav {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
location ~ .*\.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
Thanks for any assistance.
I copied the config provided at this doc page which also doesn't have dav_methods
in it, and I'm wondering how it works without having that there?
You forget the ? before script_name on l.67, take me few minutes to figure it out.