phpredmin icon indicating copy to clipboard operation
phpredmin copied to clipboard

Nginx conf for phpredmin

Open psokolov opened this issue 10 years ago • 12 comments

Hi, thank You for admin panel! Could you post the configs for Nginx, router.php is not simple to fix the rewrite location rules. URLs look like /index.php/welcome/index/0/0 and so by default script_name is /index.php/welcome/index/0/0. What is the reason to use such complicated URIs?

psokolov avatar Dec 24 '14 16:12 psokolov

This config posted by author works for me. Hope it helps.

devoto13 avatar Mar 12 '15 16:03 devoto13

@psokolov Does the problem still exist?

sasanrose avatar Apr 22 '15 19:04 sasanrose

Hi, I still have a problem with my nginx setup.

Can you please tell me the rewrite I have to setup ?

Urls are like : index.php / Action_Name / info / 0 / 0 ? param = ...

thanks

Sorcysama avatar Jul 21 '15 16:07 Sorcysama

i have the same problem

CybotTM avatar Sep 03 '15 09:09 CybotTM

Here a idea (ongoing progress) nginx conf setup inside a already php-fpm server to serve at www.mydomain.com/phpredmin that worked for me:

## PHP Redis monitor
location ~ ^/phpredmin/(.+\.php.*)$ {

      alias /var/www/phpredmin/public/$1;

      index  index.html index.php;
      try_files $uri $uri/ /index.php?$args;

      location ~ ^/phpredmin/.+\.(js|css|png|jpg|gif|bmp|swf|ico|pdf|mov|fla|mp4|3gp|zip|rar|7z)$ {
          try_files $uri = 404;
          access_log off;
          expires 24h;
          alias /var/www/phpredmin/public/$1;
      }

      location ~ ^/phpredmin/.+\.php.*$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;

          set $fsn /index.php;
          if (-f $document_root$fastcgi_script_name){
             set $fsn $fastcgi_script_name;
          }

          # php5-fpm:
          fastcgi_pass unix:/var/run/phpfpm-xyz.sock;
          include fastcgi_params;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
          fastcgi_param  PATH_INFO        $fastcgi_path_info;
          fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
      }
 }

matinfo avatar Sep 12 '15 15:09 matinfo

my solution is just replacing try_files $uri =404; with try_files $fastcgi_script_name =404;

or you drop try_files at all, or only the =404 part as @matinfo did.

CybotTM avatar Sep 16 '15 08:09 CybotTM

Finally here my nginx config that work well to serve http://www.mydomain.com/phpredmin/ (note: the / at the end mandatory):

server  {
    name www.mydomain.com;
    ...

    ## PHP Redis monitor
    location /phpredmin {
        index  index.php;
        root /var/www/phpredmin;

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

        location ~ ^/phpredmin/.+\.php {

            fastcgi_split_path_info ^(.+\.php)(/.+)$;

            set $fsn /index.php;
            if (-f $document_root$fastcgi_script_name) {
                set $fsn $fastcgi_script_name;
            }

            # php5-fpm
            fastcgi_pass unix:/var/tmp/phpfpm.sock;
            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fsn;

            include fastcgi_params;
        }

        location ~ ^/phpredmin/(.+\.(js|css|png|jpg|gif|ico))$ {
            access_log off;
            expires 24h;
            root /var/www/phpredmin;

            try_files $uri =404;
        }
    }
}

Notice: to work the public directory need symlinked to phpredmin, like this:

  • cd /var/www/phpredmin (here the cloned project repository)
  • /var/www/phpredmin$ ln -s public phpredmin

matinfo avatar Oct 17 '15 13:10 matinfo

Is this really necessary? I mean unless you really want a different url than www.example.com/phpredmin/public/index.php ?

I just threw it into the web root (as per the installation instruction) and it seems to work. Or what am I missing?

gabrielwinnberg avatar Jul 17 '16 18:07 gabrielwinnberg

@matinfo hey i tried your script and it worked.. now, how can i modify it in in order that the application answers me when i digit www.mydomain.com instead of http://www.mydomain.com/phpredmin/? Thank you!

iFedix avatar Jun 14 '17 09:06 iFedix

@iFedix not sur with the project structure of phpredmin is possible.

Workaround add permanent redirection from / to /phpredmin.

rewrite ^(.*) http://www.domain.com/phpredmin/$1 permanent;

--

Or copy content of /public to /var/www/phpredmin and change some location like $path = '../' in index.php to $path = '.'. Plus change location /phpredmin to location /.

Not tested!

matinfo avatar Jun 14 '17 09:06 matinfo

@matinfo thank you! :D

iFedix avatar Jun 15 '17 04:06 iFedix

What a mess! it took me a couple of hours to get this configured in ngninx... It makes no sense this piece of software to require so much configuration.

Anyway, @matinfo solution worked, but I had to remove the last bracket (location ~ ^/phpredmin/(.+.(js|css|png|jpg|gif|ico))$), otherwise CSS files wouldn't load.

gabrielt avatar May 01 '19 22:05 gabrielt