0

Im having issues with the alias location in the following configuration

server {
    listen       80;
    server_name  localhost;
    root         /srv/http/share;
    index        index.php;
    include      php.conf;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location /phpmemcachedadmin {
        alias /srv/http/phpmemcachedadmin;
    }

    location /webgrind {
        alias /srv/http/webgrind;
    }

}

while / works well, im getting a 404 for /webgrind and /phpmemcachedadmin. If i switch the root directory to /srv/http and alias the / location, die /phpmemcachedadmin and webgrind work, but not the / location.

UPDATE:

I managed the probems getting all location to work, so here is the updated config

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;
    gzip               on;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root /srv/http/share;
            index index.php;
            try_files $uri $uri/ /index.php$is_args$args;
            include php.conf;
        }

        location /phpmemcachedadmin {
            root /srv/http;
            index index.php;
            try_files $uri $uri/ /index.php$is_args$args;
            include php.conf;
        }

        location /webgrind {
            root /srv/http;
            index index.php;
            try_files $uri $uri/ /index.php$is_args$args;
            include php.conf;
        }

    }

}

The php.conf looks like this:

location ~ \.php$ {
        try_files       $uri =404;
        fastcgi_pass    unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        include         fastcgi.conf;
}

while the fastcgi.conf like this:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

But there is a problem serving phpmemcachedadmin. If i call localhost/phpmemcachedadmin/index.php it works quite well (i get a log that i got served the file in access log). On the other hand, if i just call localhost/phpmemcachedadmin/ he serves me the file for download. Neither the error.log nor the access.log log anything when i get served the the file for download. Any ideas?

2
  • you should switch on an check your logs. Nov 6, 2013 at 7:13
  • 2013/11/07 20:44:35 [error] 213#0: *1 open() "/srv/http/share404" failed (2: No such file or directory), client: 10.0.2.2, server: localhost, request: "GET /webgrind/ HTTP/1.1", host: "localhost:1080" (nginx is in a vbox with port forward 1080 => 80)
    – torsten
    Nov 7, 2013 at 19:45

2 Answers 2

0

change

try_files $uri $uri/ /index.php$is_args$args;

to

try_files $uri $uri/ /index.php$is_args$args /index.php;

as said here

2
  • nope, does not work. also add additionally $uri/index.php does not work.....
    – torsten
    Nov 9, 2013 at 8:42
  • try to remove try_files directive from your location ~ \.php$ { ... } leave just fastcgi_pass...
    – user973254
    Nov 9, 2013 at 10:08
0

I got it... i removed!!! the try_files statement... so my configutation for phpmemcachedadmin is:

    location /phpmemcachedadmin {
        root /srv/http;
        index index.php;
        include php.conf;
    }

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .