2014-01-31 139 views
0

我對Nginx有問題。我只是在學習它,所以它不知道解決這個問題。Nginx 405不允許指定'.php'文件

我的一個插件試圖POST到一個以'PHP'擴展名結尾的特定URL。 該文件不是文件夾根目錄中的位置:'web'。但在目錄中: web/plugins/moxiemanager/api.php。但我總是收到405.

我必須在配置中更改什麼?

在此先感謝。

我的Nginx的配置:

server { 
    listen 80; 
    server_name kevin.dev; 
    root /var/www/html/kevin/web; 

location/{ 
    try_files $uri @rewriteapp; 
} 

location @rewriteapp { 
    rewrite ^(.*)$ /app.php/$1 last; 
} 

location ~ ^/(api|app|app_dev|config)\.php(/|$) { 
    fastcgi_buffer_size 128k; 
    fastcgi_buffers 4 256k; 
    fastcgi_busy_buffers_size 256k; 
    #fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_split_path_info ^(.+\.php)(/.*)$; 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param HTTPS off; 
} 

error_log /var/log/nginx/kevin_error.log; 
access_log /var/log/nginx/kevin_access.log; 

}

回答

0

這可能不是做的最好的方式,我還在尋找我的nginx的方式,但它只是現在爲我工作。

我重複我的現有位置塊app.php覆蓋moxia腳本,所以對我來說這將做的工作...

location ~ moxiemanager/api.php$ { 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_split_path_info ^(.+\.php)(/.*)$; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param SERVER_PORT 80; 
    include  /etc/nginx/fastcgi_params; 
} 

,涵蓋與moxiemanager/api.php結尾的網址。儘管如此,我並不是100%確信這樣做的安全含義。