首頁 > 後端開發 > php教程 > nginx - phpmyadmin登录后跳到首页的问题

nginx - phpmyadmin登录后跳到首页的问题

WBOY
發布: 2016-06-06 20:48:02
原創
1361 人瀏覽過

搞了好久,还是没用。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<code>server {

    listen 80;

    server_name localhost;

    root /home/wwwroot;

    index index.html index.htm index.php;

 

    location /pma {

         root /home/wwwroot;

         index index.php;

    }

    location ~ ^/pma/.*\.(php|php5)$ {                 

        root /home/wwwroot;

        fastcgi_pass unix:/var/run/php5-fpm.sock;       

        fastcgi_index index.php;     

        include fastcgi_params; 

    }  

 

    if (!-e $request_filename) {

        rewrite  ^/(.*)$  /index.php/$1  last;

        break;

    }  

 

    location ~ \.php$ {  

        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;

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

        include fastcgi_params;

    }

}

</code>

登入後複製
登入後複製

在fastcgi_params里有
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

回复内容:

搞了好久,还是没用。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<code>server {

    listen 80;

    server_name localhost;

    root /home/wwwroot;

    index index.html index.htm index.php;

 

    location /pma {

         root /home/wwwroot;

         index index.php;

    }

    location ~ ^/pma/.*\.(php|php5)$ {                 

        root /home/wwwroot;

        fastcgi_pass unix:/var/run/php5-fpm.sock;       

        fastcgi_index index.php;     

        include fastcgi_params; 

    }  

 

    if (!-e $request_filename) {

        rewrite  ^/(.*)$  /index.php/$1  last;

        break;

    }  

 

    location ~ \.php$ {  

        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;

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

        include fastcgi_params;

    }

}

</code>

登入後複製
登入後複製

在fastcgi_params里有
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

我的做法是配置好 PHP 之后,直接到 DOCUMENT_ROOT 下建立一个到 PMA 的软链接。

1

2

3

4

5

6

7

8

9

10

<code class="lang-bash">[16:56] caiknife@caiknife-ThinkPad-T400:/usr/share/nginx/html

> ll

总用量 12K

-rw-r--r-- 1 root     root     537  5月 13  2013 50x.html

lrwxrwxrwx 1 caiknife caiknife  43  9月 30 09:49 cakestrap -> /home/caiknife/source/cakestrap/app/webroot

-rw-r--r-- 1 root     root     612  5月 13  2013 index.html

-rwxrwxrwx 1 caiknife caiknife  17  9月 21 10:52 phpinfo.php

lrwxrwxrwx 1 caiknife caiknife  21  9月 22 10:18 phpmyadmin -> /usr/share/phpmyadmin

lrwxrwxrwx 1 caiknife caiknife  21 10月 12 18:27 pma -> /usr/share/phpmyadmin

</code>

登入後複製

之后直接访问子目录就可以了。

更新

按照题主的思路,我做了下面这个配置:

1

2

3

4

5

6

7

8

9

10

11

12

13

<code class="lang-nginx">location /p {

    root /usr/share/phpmyadmin;

    index index.php;

}

 

location ~ ^/p/.*\.(php|php5)$ {                 

    root /usr/share/phpmyadmin;

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

    fastcgi_pass unix:/var/run/php5-fpm.sock;

    fastcgi_index index.php;

    include fastcgi_params;

}

</code>

登入後複製

重启 nginx 后,访问 http://localhost:81/p , 得到了 404 页面。我的 nginx 端口监听的是 81 ,80端口留给了 apache 。

为什么会报错 404 ?看一下错误日志:

1

2

<code class="lang-log">2013/12/13 23:17:55 [error] 5276#0: *1 open() "/usr/share/phpmyadmin/p" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /p HTTP/1.1", host: "localhost:81"

</code>

登入後複製

从 log 中看出,你重写了 root 之后,访问 phpmyadmin 的子目录时,实际上访问的物理路径是 DOCUMENT_ROOT + 'phpmyadmin' 。

OK,那么我再建立一个软链接吧。

1

2

<code class="lang-bash">$ sudo ln -s /usr/share/phpmyadmin/ /usr/share/phpmyadmin/p

</code>

登入後複製

现在访问正常了。

多麻烦的事情,本来一个软链接就能搞定的事情,现在要两个配置+一个软链接才能搞定,多次一举。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板