Pydio on Ubuntu 14.04, NGINX, PHP, MYSQL

July 2, 2015 1.6k views

I'm having issues with getting my Pydio install to work. I've uploaded the files to my droplet /var/www/mysite/publichtml and I have configured the nginx host file using their recommended settings but it will not load.

Has anyone used this before?

server {
        server_name www.example.com;
        listen 80;
        rewrite ^ https://$server_name$request_uri? permanent;
server {
        server_name www.example.com;
        root /var/www/localhost/htdocs/pydio6;
        index index.php;
        listen 443 ssl;
        keepalive_requests    10;
        keepalive_timeout     60 60;
        access_log /var/log/nginx/access_pydio6_log;
        error_log /var/log/nginx/error_pydio6_log;

        client_max_body_size 15M;
        client_body_buffer_size 128k;

        rewrite ^/dashboard|^/settings|^/welcome|^/ws- /index.php last;
        if ( !-e $request_filename ) {
                # WebDAV Rewrites
                rewrite ^/shares /dav.php last;
                # Sync client
                rewrite ^/api /rest.php last;
                # External users 
                rewrite ^/user ./index.php?get_action=user_access_point last;
                # Public shares
                rewrite ^/data/public/([a-zA-Z0-9_-]+)\.php$ /data/public/share.php?hash=$1?;
        rewrite ^/data/public/([a-zA-Z0-9_-]+)--([a-z]+)$ /data/public/share.php?hash=$1&lang=$2?;
        rewrite ^/data/public/([a-zA-Z0-9_-]+)$ /data/public/share.php?hash=$1?;

        # Prevent Clickjacking
        add_header X-Frame-Options "SAMEORIGIN";

        # Only allow these request methods and do not accept DELETE, SEARCH and other methods
        if ( $request_method !~ ^(GET|HEAD|POST|PROPFIND|OPTIONS)$ ) {
                return 444;

        location ~* ^/(?:\.|conf|data/(?:files|personal|logs|plugins|tmp|cache)|plugins/editor.zoho/agent/files) {
                deny all;
        # Enables PHP
        location ~ \.php$ {
                # for ^/(index|plugins) request_uri should be changed
                set $request_url $request_uri;
                if ( $uri ~ ^/(index|plugins) ) {
                        set $request_url /;
                include fastcgi.conf;
                fastcgi_param  REQUEST_URI $request_url;
                try_files $uri =404;
                fastcgi_pass unix:/tmp/php5-fpm.sock;

       # Enables Caching
        location ~* \.(ico|css|js)$ {
                 expires 7d;
                add_header Pragma public;
                add_header Cache-Control "public, must-revalidate, proxy-revalidate";
1 Answer


Unless you have modified values to hide your actual domain name and root path, your configuration needs to be updated with actual values instead of the example values. Often when someone is providing a guide, they cannot know what values you will need for certain things. To help understand the format, they set examples.

You can see these in your setup with

server_name www.example.com;
root /var/www/localhost/htdocs/pydio6;

These are examples, and need to be updated to the right values for your setup. Since you gave us your root directory, you can change that one to

root /var/www/mysite/publichtml;

For the server_name values, you will want to change them from www.example.com to whatever your domain is. Make sure to change both server_name values to your domain.

Once this is done, restart nginx with

sudo service nginx stop
sudo service nginx start

Can you try this and let me know how it works?

Have another answer? Share your knowledge.