2016-03-17 57 views
2

我刚刚安装了nginx,php-fpm和phpmyadmin。 这是我的www文件夹。Nginx没有重定向到phpmyadmin的index.php页面

[[email protected] etc]# ll /usr/share/nginx/html/ 
-rw-r--r-- 1 root root 3650 Feb 13 18:45 404.html 
-rw-r--r-- 1 root root 3693 Feb 13 18:45 50x.html 
drwxr-xr-x 3 root root 40 Mar 17 06:14 myapp.eu 
-rw-r--r-- 1 root root 3700 Feb 13 18:45 index.html 
lrwxrwxrwx 1 root root 22 Mar 17 06:52 mysql -> /usr/share/phpMyAdmin/ 

下myapp.conf文件的phpmyadmin我的nginx的conf文件的位置看起来像这样

location /mysql { 
     alias /usr/share/phpMyAdmin; 
     location ~ \.php$ { 
       index index.php index.html index.htm; 
       include fastcgi_params; 
       fastcgi_param SCRIPT_FILENAME $request_filename; 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass 127.0.0.1:9000; 
     } 
} 

问题: 如果我尝试访问myapp.eu/mysql我获得以下的nginx的日志错误

2016/03/17 09:21:01 [error] 2119#0: *28 directory index of "/usr/share/phpMyAdmin/" is forbidden, client: 84.52.168.135, server: euro-swap.eu, request: "GET /mysql/ HTTP/1.1", host: "euro-swap.eu" 

但是,如果我尝试访问myapp.eu/mysql/index.php phpmyadmin显示。所以我猜,nginx应该以某种方式重定向到index.php页面。

是什么导致了这个问题?如何解决它?如果您需要任何其他信息,请让我知道,我会提供。

回答

2

当你试图打开myapp.eu/mysql,其由外location指令逮住。但是没有为外层定义索引。因此,解决方案是从内location有移动索引指令:

location /mysql { 
     alias /usr/share/phpMyAdmin; 
     index index.php index.html index.htm; 

     location ~ \.php$ { 
       include fastcgi_params; 
       fastcgi_param SCRIPT_FILENAME $request_filename; 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass 127.0.0.1:9000; 
     } 
} 
1

问题出在第二个位置。 location ~ \.php$匹配以.php结尾的路径,而您的路由不是:/mysql。尝试删除它。

location /mysql { 
    alias /usr/share/phpMyAdmin; 
    index index.php index.html index.htm; 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $request_filename; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass 127.0.0.1:9000; 
} 
1

这里是我的一个子域运行phpMyAdmin的解决方案。

再加下一次,我有这个问题,我知道我将能够复制/粘贴自己的解决方案:)

server { 
    listen 80; 
    server_name secret-sql-subdomain.site.com; 
    root /usr/share/phpMyAdmin; 
    location/{ 
     fastcgi_pass php-fpm; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 
} 
相关问题