How to configure phpmyadmin with nginx ?

SE7EN k1_zeus at yahoo.com
Mon Sep 14 11:51:09 MSD 2009


I don't know what tot say, here is my config file (after the sample with subdomain that works) but it still doesn't work. phpmyadmin is installed in /usr/share/phpmyadmin and site works fine, so it's no error in my config file. it works only when I create a new vhost file like this and access phpmyadmin as a subdomain


server {
    listen 80;
    server_name phpmyadmin.domainname.com;
    access_log  /home/apps/logs/phpmyadmin.access_log;
    error_log  /home/apps/logs/phpmyadmin.error_log;

    location / {
         root /usr/share/phpmyadmin;
         index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:8888;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/phpmyadmin$fastcgi_script_name;
        include /etc/nginx/fastcgi.conf;
    }
}

vhost.conf
server {
            listen   80;
            server_name  www.mydomain.com;

                        #redirect www to non-www
            rewrite ^/(.*) http://mydomain.com/$1 permanent;


       }


server {
                        listen   80;
                        server_name mydomain.com;
            access_log /home/mydomain/log/access.log;
            error_log /home/mydomain/log/error.log;

            index index.php index.htm index.html;
location   ^~ /phpmyadmin/ {
  root /usr/share;
  include /usr/local/nginx/conf/fastcgi_params;
  fastcgi_pass  127.0.0:9002;
}

location /  {
                                root   /home/mydomain/public_html/;
                                index  index.php index.html;
                                expires 30d;

                                #stop image and files hotlinking
                                location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|jpeg|css)$ {
                                valid_referers none blocked mydomain.com www.mydomain.com *.google.com *.yahoo.com;
                                if ($invalid_referer) {
                                return 444;
                                }
                                }

                                #joomla sef url's
                                if (!-e $request_filename) {
                                        rewrite  ^(.*)$  /index.php?q=$1  last;
                                        break;
                                                                }
                                        }

                                if ( $args ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3d)" ) {
                                set $args "";

rewrite ^.*$ http://$host/index.php last;
                                return 403;
                                }

                                if ( $args ~ "base64_encode.*\(.*\)" ) {
                                set $args "";
                                rewrite ^.*$ http://$host/index.php last;
                                return 403;
                                }

                                if ( $args ~ "(\<|%3C).*script.*(\>|%3E)" ) {
                                set $args "";
                                rewrite ^.*$ http://$host/index.php last;
                                return 403;
                                }

                                if ( $args ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ) {
                                set $args "";
                                rewrite ^.*$ http://$host/index.php last;
                                return 403;
                                }

                                if ( $args ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ) {
                                set $args "";
                                rewrite ^.*$ http://$host/index.php last;
                                return 403;
                                }

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9002
            location ~ \.php$
                                {
            fastcgi_pass 127.0.0.1:9002;
            fastcgi_index index.php;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /home/digitalfav/public_html/$fastcgi_script_name;
                        }


                        ## All other errors get the generic error page
                        error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
                 500 501 502 503 504 505 /error_page.html;
                        location  $document_root/error_page.html {
                        internal;

                 }

                 }


--- On Mon, 9/14/09, Ian Hobson <ian at ianhobson.co.uk> wrote:

From: Ian Hobson <ian at ianhobson.co.uk>
Subject: Re: How to configure phpmyadmin with nginx ?
To: nginx at sysoev.ru
Date: Monday, September 14, 2009, 12:52 AM

Hi se7en,

Your location line is incorrect and you may need a line to send php over also. Try the following inside your server directive.

index index.php index.htm index.html;
location   ^~ /phpmyadmin/ {
  root /usr/share;
  include /????/fastcgi_params;
  fastcgi_pass  127.0.0:9002;
}
location ~ \.php {
   include  /????/fastcgi_params;
   fastcgi_pass  127.0.0.1:9002;
}

Don't forget to replace the ??? with the correct path - mine is /etc/nginx/ and check that phpmyadmin
has been installed in /usr/share/phpmyadmin - or adjust the root.

Regards

Ian


SE7EN wrote:
> 
> I added this,I verify it, everything is correct, my site works fine but accessing http://mydomain.com/phpmyadmin still doesn't work, a 500 server errror appears.
> 
> location ~ /phpmyadmin/.*\.php$ {
>   root /usr/share/;
>   fastcgi_pass 127.0.0.1:9002;
>   fastcgi_index index.php;
>   include /usr/local/nginx/conf/fastcgi_params;
>   fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
>   }
> 
>   location /phpmyadmin/ {
>   root /usr/share/;
>   index index.php;
>   }
> 
> 





      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20090914/aed39d00/attachment.html>


More information about the nginx mailing list