2014-11-01 71 views
5

的Nginx和PHP5-FPM安装并运行良好......Ubuntu的14 - Nginx的 - PHP5-FPM:phpMyAdmin安装,但403次禁止访问

#我可以同时访问http://www.example.comhttp://www.example.com/info.php

$ ls -la /var/www/html 
-rw-r--r-- 1 root root 868 Nov 1 08:16 index.html 
-rw-r--r-- 1 root root 21 Nov 1 08:13 info.php 

我phpMyAdmin安装和创建符号链接到phpMyAdmin文件

lrwxrwxrwx 1 root root 21 Nov 1 08:37 phpmyadmin -> /usr/share/phpmyadmin 

而是试图让http://www.example.com/phpmyadmin =>我得到一个403禁止

使用符号链接,我不应该添加任何与phpmyadmin相关的任何东西到我的nginx.conf中...可能会丢失什么?

更新1:添加的index.php到URI带来的登录面板

http://www.example.com/phpmyadmin/index.php 

我应该添加到我的默认CON文件直接得到它...我想我尝试文件无效。 这里是我的默认nginx站点con文件

server { 
     listen 80 default_server; 
     listen [::]:80 default_server ipv6only=on; 

     root /var/www/html; 
     index index.php, index.html index.htm; 

     server_name example.com; 

     location/{ 
      try_files $uri $uri/ index.html index.php =404; 
     } 

     error_page 404 /404.html; 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root /var/www/html; 
     } 

     location ~ \.php$ { 
      try_files $uri =404; 
      fastcgi_split_path_info ^(.+\.php)(/.+)$; 
      fastcgi_pass unix:/var/run/php5-fpm.sock; 
      fastcgi_index index.php; 
      include fastcgi_params; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     } 
    } 

回答

0

这里有一些你可以尝试的东西。一个是disable_symlinks指令:

location /phpmyadmin { 
    disable_symlinks off; 
} 

另一种选择是使用的,而不是一个符号链接别名:

location /phpmyadmin { 
    alias /usr/share/phpmyadmin; 
} 
+0

谢谢你的提示,我试过了,bt总是在log:目录索引中找到同样的错误:“/ var/www/html/phpmyadmin /”是被禁止的,... – erwin 2014-11-01 15:07:55

+0

你有'index index.php '在你的服务器块? – 2014-11-01 16:03:58

+0

如果我请求http://www.example.com/phpmyadmin/index.php然后我得到登录面板...我有root/var/www/html; index index.php,index.html index.htm; 在我的服务器块... – erwin 2014-11-01 16:13:44

8

它加入以下的位置后运行良好:

 location /phpmyadmin { 
     index index.php; 
    } 
3

我已添加:

location /pma/ { 
    alias /usr/share/phpmyadmin/; 

    index index.html index.htm index.php; 

    location ~ ^/pma(.+\.php)$ { 
     alias /usr/share/phpmyadmin$1; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; #OR fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1; 
     include fastcgi_params; 
     fastcgi_intercept_errors  on; 
    } 
} 

因此,当用户访问目录/pma/时,他们会被定向到/usr/share/phpmyadmin,这也是一个稍微“安全”的选项!正如以前我也有403错误!

但对于403误差的主要修正实际上是贯彻落实行:

index index.html index.htm index.php; 
+0

而不是“位置/ pma /”更改为“位置/ pma”,因此不需要“/”。它只是让你在浏览器中输入网址时感到困惑......谢谢.. – 2016-01-20 18:18:57

+0

这个工作对我来说,但只有在清除浏览器缓存后 – 2016-07-22 02:20:22

0

失去了逗号和你的罚款

index index.php, index.html index.htm; 
5

这是我解决此问题:

步骤1:服务器块找块码

server { 
    .... 
} 

,然后之前插入 “}”

location /phpmyadmin { 
      index index.php; 
    } 

它看起来像:你应该SSH和运行命令

sudo nano /etc/nginx/sites-available/default 

步骤2

server{ 
     ...(your default)... 
     location /phpmyadmin { 
       index index.php; 
     } 
} 

希望这是你的!