我在使用 phpmyadmin 时收到 403 Forbidding 错误

我在使用 phpmyadmin 时收到 403 Forbidding 错误

我正在运行 ngnix 和 php5-fpm,并且使用的是 Ubuntu 13.04

server {
server_name website.com;
access_log /srv/www/website.com/logs/access.log;
error_log /srv/www/website.com/logs/error.log;
root /srv/www/website.com/public_html;

location / {
    index index.html index.htm index.php;
}

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /srv/www/website.com/public_html$fastcgi_script_name;
    }
}

我在 /srv/wwww/website.com/public_html/phpmyadmin 中有一个指向 /usr/share/phpmyadmin 的符号链接

不确定发生了什么,而且我对这一切还很陌生。

答案1

在对具体错误了解不多的情况下,我想说你应该检查文件权限(根据我的经验,“禁止”错误通常是由此引起的)。

转到你的 html 根目录(看起来像 /srv/www/website.com/public_html/)并输入

ls -Z

或者可能

ls -l

然后确保所有文件都属于运行 Web 服务器的用户。他们应该有一个适合您的 Web 服务器的用户和组 - 我没有专门使用过那个。或者他们可能是 root,我以前见过。SELinux 上下文(您只能在第一个命令中看到)应该是这样的

unconfined_u:object_r:httpd_sys_rw_content_t:s0

它可能不完全是那样,但如果它里面有“http”或者看起来与网络相关,那么你可能没问题。如果它没有出现,不要惊慌;我不确定 Ubuntu 是否会强制这样做。您可能只会获得用户/组权限。

包括 SELinux 上下文,您应该会得到类似这样的结果:

drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 css
drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 downloads

不过,可能也不完全一样。使用第二条命令,它看起来更像这样:

drwxr-xr-x.  2 apache apache 4096 Aug 19 00:41 css
drwxr-xr-x.  3 apache apache 4096 Jun 26 22:36 downloads

再次强调,用户和组不一定是 apache。如果它与您的 Web 服务器相关,或者可能是 root,那就很好了。

如果用户和组错误,你可以使用以下命令进行更改:

chown -R user:group folder

如果 SELinux 上下文错误(如果它不存在,您可能不需要担心它),您可以使用以下方法修复它:

chcon -R -t httpd_sys_content_t /srv/wwww/website.com/public_html/

也可能是缺少模块或 Web 服务器存在问题。我以前从未使用过 ngnix,但我记得在使用 lighttpd 而不是常用的 apache 时,我在处理 php 文件时也遇到了同样的意外困难。我不得不安装一个模块并进行微小的配置更改。遗憾的是,我无法提供任何建议 - 就像我说的,我没有专门使用过 ngnix。

答案2

好吧,我不确定符号链接哪里做错了,但我决定采用这种方法,而且成功了!我只是决定给 phpmyadmin 一个自己的子域名。

在 Ubuntu 13.04 上你必须确保使用

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

代替

fastcgi_pass 127.0.0.1:9000;

这也给我带来了一些问题。

server {
   listen   80;
   server_name pma.website.com;
   access_log /var/log/nginx/phpmyadmin/access.log;
   error_log /var/log/nginx/phpmyadmin/error.log;
   root /usr/share/phpmyadmin;

   location / {
       index  index.php;
   }

   ## Images and static content is treated different
   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
       access_log        off;
       expires           360d;
   }

   location ~ /\.ht {
       deny  all;
   }

   location ~ /(libraries|setup/frames|setup/libs) {
       deny all;
       return 404;
   }

   location ~ \.php$ {
       include /etc/nginx/fastcgi_params;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
   }

}

相关内容