0

Is there any possibility to setup Nginx for this: I want www.example.com/subdirectory/ and that /subdirectory/ take files from /var/www/site/web/subdirectory

My site is working, I just want to setup that /subdirectory/ route.

Is that somehow possible?

My Nginx configuration is:

server {
    server_name server;
    root /var/www/site/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }
    # DEV
    # This rule should only be placed on your development environment
    # In production, don't include this and don't deploy app_dev.php or config.php
    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        # When you are using symlinks to link the document root to the
        # current version of your application, you should pass the real
        # application path instead of the path to the symlink to PHP
        # FPM.
        # Otherwise, PHP's OPcache may not properly detect changes to
        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # for more information).
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }

    # PROD
    location ~ ^/app\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        # When you are using symlinks to link the document root to the
        # current version of your application, you should pass the real
        # application path instead of the path to the symlink to PHP
        # FPM.
        # Otherwise, PHP's OPcache may not properly detect changes to
        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # for more information).
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

   location /subdirectory {
    alias /var/www/site/web/subdir/;
}

    # return 404 for all other php files not matching the front controller
    # this prevents access to other php files you don't want to be accessible.
    location ~ \.php$ {
      return 404;
    }

    error_log /var/log/nginx/sm_error.log;
    access_log /var/log/nginx/sm_access.log;

I have a problem with 404 error, I dont know why. I have www-data user on that subdirectory.

location /subdirectory {
    root /var/www/site/web/subdirectory;
    try_files $uri /administration.php$is_args$args;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;

}

1 Answer 1

3

Put the following into server section:

location /subdirectory {
   root /var/www/site/web;
}

Or other solution which is working when /url_directory and /local_directory doesn't equal:

location /subdirectory {
   alias /var/www/site/web/subdirectory;
}

See more on nginx/location, nginx/root and nginx/alias.

Sign up to request clarification or add additional context in comments.

8 Comments

Thanks, but now I have 403 forbiden error, even with 777 or www-data recusively on that subdirectory. A used alias solution.
Do you have index index.html index.html index.php or similar? Or maybe autoindex on?
I have to setup special index for that location too?
Do you've in the server section? Can you post full nginx.conf?
Added to main post full vhost configuration its Symfony 3
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.