2014-01-18 68 views
3

我很困惑,我阅读了大量的信息,但仍然得到同样的错误,当我打电话../phpmyadmin/index.php的nginx +乘客+的phpmyadmin =拒绝访问

Access denied. 

我nginx的配置文件:

#user nobody; 
worker_processes 1; 

#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid  logs/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
    passenger_root /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.35; 
    passenger_ruby /usr/local/rvm/gems/ruby-1.9.3-p484/wrappers/ruby; 
    client_max_body_size 150m; 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log logs/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 

    server { 
     listen  80; 
     server_name localhost; 
    location/{ 
     alias /home/prog/someapp/public; 
    passenger_enabled on; 
    rails_spawn_method smart; 
    rails_env production; 
    } 

    location /phpmyadmin/ { 
     alias /var/www/html/phpMyAdmin/; 
     passenger_enabled off; 
     index index.php; 
     } 
    location /mail/{ 
    alias /var/www/html/roundcube/; 
    passenger_enabled off; 
    index index.php; 
    } 
     #charset koi8-r; 

     #access_log logs/host.access.log main; 

     #location/{ 
     # root html; 
      # index index.html index.htm; 
     #} 

     #error_page 404    /404.html; 

     # redirect server error pages to the static page /50x.html 
     # 
     # error_page 500 502 503 504 /50x.html; 
     # location = /50x.html { 
     # root html; 
     #} 

     # proxy the PHP scripts to Apache listening on 127.0.0.1:80 
     # 
     #location ~ \.php$ { 
     #aliassxy_pass http://127.0.0.1; 
     #} 

     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
     # 
     location ~ \.php$ { 
      alias   html; 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $request_filename;# scripts$fastcgi_script_name; 
      include  fastcgi_params; 
     } 
    #location ~ .php$ { alias html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } 
     # deny access to .htaccess files, if Apache's document root 
     # concurs with nginx's one 
     # 
     #location ~ /\.ht { 
     # deny all; 
     #} 
    } 


    # another virtual host using mix of IP-, name-, and port-based configuration 
    # 
    #server { 
    # listen  8000; 
    # listen  somename:8080; 
    # server_name somename alias another.alias; 

    # location/{ 
    #  root html; 
    #  index index.html index.htm; 
    # } 
    #} 


    # HTTPS server 
    # 
    #server { 
    # listen  443; 
    # server_name localhost; 

    # ssl     on; 
    # ssl_certificate  cert.pem; 
    # ssl_certificate_key cert.key; 

    # ssl_session_timeout 5m; 

    # ssl_protocols SSLv2 SSLv3 TLSv1; 
    # ssl_ciphers HIGH:!aNULL:!MD5; 
    # ssl_prefer_server_ciphers on; 

    # location/{ 
    #  root html; 
    #  index index.html index.htm; 
    # } 
    #} 

} 

/etc/php5/fpm/pool.d/www.conf 

我添加

limit_extensions = .php .php3 .php4 .php5 .html 

的.html工作的伟大,但没有什么是用PHP

也是我尝试设置在php.ini 1个cgi.fix_pathinfo并没有什么(

什么,我做错了什么?日志

部分:

2014年1月19日19时25分01秒[错误] 5354#0:* 11的FastCGI在标准错误发送:“访问脚本 '的/ opt/nginx的/ HTML' 有在读取来自上游的响应头时,客户端:* ,server:localhost,请求:“GET/phpmyadmin/index.php HTTP/1.1”,上游:“fastcgi://127.0”时被拒绝(参见security.limit_extensions) 0.1:9000“,主机:”

+0

谁是如此有趣并投票结束?没有人知道解决方案,我尝试了所有可能的/ .. – brabertaser19

+0

此问题不涉及以任何方式进行编程,因此它属于超级用户或serverfault。 – DanFromGermany

+0

@DanFromGermany那里我没有得到任何答案.... – brabertaser19

回答

1

问题是,您定义了位置块内的别名。

但你可能做的是,定义你的位置的根路径...

尝试从切换 “别名在/ var/www/html等/ phpMyAdmin的/;”到“/var/www/html/phpMyAdmin /;”

您可以使用指令! 在服务器块或位置块上。

你也可以定义索引整个http块的指令。

http { 
    index index.php index.htm index.html; 

    server { 
    server_name www.domain.com; 
    root /var/www/html; 

    location /phpmyadmin { 
     [..] 
    } 
    } 
} 
+0

它是坏的使用多根!之后,我得到404 – brabertaser19

+0

把根放在一个位置块内将起作用,这是完全有效的。只要看看你的源代码,没有定义一个单一的根...甚至没有服务器。你可以为服务器定义一个,然后删除位置上的根,以获得良好的实践。 –

+0

我已经添加了一个例子 –