2014-01-18 92 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

我已經添加了一個例子 –