I'm trying to set up FSyncMS (a minimal php weave/sync1.1 server in php) on a server. I've gotten as far as setting up the back-end but I'm running into the problem that I can't find a way to properly have nginx (my front-end web server) pass the requests to the php script.
The sync client passes parameters to the server with slash parameter URLs:
scheme://server.com/user/1.0/a
Which should be translated to:
scheme://server.com/index.php/user/1.0/a
And passed to the back-end as index.php with parameters everything after that. Unfortunately nginx happily sees index.php/user/1.0/a as the path, instead of index.php as the path and /user/1.0/a as parameters. Result: a predictable 404...
More info on the sync server implementation (in German, unfortunately): http://www.ohnekontur.de/2011/07/24/how-to-install-fsyncms-firefox-sync-eigener-server/
How do I get around this problem?
EDIT: nginx config:
server {
listen 80;
server_name sync.server.com;
return 301 https://$server_name$request_uri; # enforce https
}
server {
listen 443 ssl;
server_name sync.server.com;
ssl_certificate /srv/syncserver/server.com.combined.crt;
ssl_certificate_key /srv/syncserver/server.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers !aNULL:!LOW:!MD5:!EXP:CAMELLIA:AES256:HIGH:AES128:RC4:!3DES:!SEED;
ssl_prefer_server_ciphers on;
access_log /srv/www/sync/logs/access.log;
error_log /srv/www/sync/logs/error.log;
root /srv/www/sync/public_html;
index index.php index.html;
location / {
ssi on;
index index.php index.shtml index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}