Heim  >  Artikel  >  Backend-Entwicklung  >  Nginx配备Yii和phpMyAdmin虚拟主机

Nginx配备Yii和phpMyAdmin虚拟主机

WBOY
WBOYOriginal
2016-06-13 13:25:45867Durchsuche

Nginx配置Yii和phpMyAdmin虚拟主机

在我们部署项目时经常需要用Nginx,同时需要支持url重写,还得安装一个phpmyadmin,这时候问题就来了。如何让phpmyadmin不在web根目录下?以下是配置文件样例:

?

server
{
     listen      80;
     server_name  dmis.sangou.net;
     index index.html index.htm index.php;
     root  /opt/www/dmis/;

     location /phpmyadmin {                
         root /opt/www/;                
         index index.php;        
     } 
     
     location ~ ^/phpmyadmin/.*\.(php|php5)$ {                
        root /opt/www/;                
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        include fastcgi_params;
        fastcgi_param  DOCUMENT_ROOT  $document_root/phpmyadmin;
        #fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;

        set $path_info $request_uri;

        if ($request_uri ~ "^(.*)(\?.*)$") {
            set $path_info $1;
        }
        fastcgi_param PATH_INFO $path_info;     
     } 
     
    location / {
         if (!-e $request_filename){
           rewrite (.*) /index.php last;
        }
    }
    
    location ~ .*\.php?$
    {
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        include fastcgi_params;
        #fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;

        set $path_info $request_uri;

        if ($request_uri ~ "^(.*)(\?.*)$") {
            set $path_info $1;
        }
        fastcgi_param PATH_INFO $path_info;
    }

   #error_page  404  =  /404.gif;
}

?

?

可以看到里面Phpmyadmin虚拟目录的设置,其顺序是很有讲究的。然后就是支持 yii 的url 重写规则,我们将其用 location / 进行限定。

?

接下来你登录pma,会发现被重定向到了根目录,这是怎么回事?经过一番查找,发现pma中有个设置 $cfg['PmaAbsoluteUri'] = ''; 默认是自动探测的,这里就有问题了。但修改这个没有用。我们就来硬的把,直接修改程序文件 libraries/auth/cookie.auth.lib.php, 找到:

// URL where to go:
        $redirect_url = $cfg['PmaAbsoluteUri'] . 'index.php';

?修改为

// URL where to go:
        $redirect_url = '/phpmyadmin/index.php';

?搞定。?

?

?

?

1 楼 uiexp 2011-08-23  
 Nginx配备Yii和phpMyAdmin虚拟主机   Nginx配备Yii和phpMyAdmin虚拟主机
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn