2014-01-31 99 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%确信这样做的安全含义。