Php 获取不使用Restler框架的参数
我很难让Restler与nginx正常工作。 首先,我甚至不能让Math.php/add工作(返回404) 但我是这样做的(我见过很多人为此而挣扎): fastcgi_参数Php 获取不使用Restler框架的参数,php,restler,Php,Restler,我很难让Restler与nginx正常工作。 首先,我甚至不能让Math.php/add工作(返回404) 但我是这样做的(我见过很多人为此而挣扎): fastcgi_参数 fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_ty
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
...
注意:cgi.fix_pathinfo=1
现在一切正常,只是我无法使用?参数接收任何GET参数=
例如,数学示例不起作用
如果我调用/api/math/add?n1=6&n2=4,它将返回2
但是乘法示例是有效的:GET/math/multiply/4/3返回{“result”:12}
$\u index.php上的服务器变量
Array
(
[TEMP] => /tmp
[TMPDIR] => /tmp
[TMP] => /tmp
[PATH] => /usr/local/bin:/usr/bin:/bin
[HOSTNAME] =>
[USER] => ftp
[HOME] => /var/www/
[FCGI_ROLE] => RESPONDER
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[CONTENT_TYPE] => application/x-www-form-urlencoded
[CONTENT_LENGTH] =>
[SCRIPT_FILENAME] => /var/www/test/api/public/index.php
[SCRIPT_NAME] => /api/public/index.php
[PATH_INFO] =>
[REQUEST_URI] => /api/math/add?n1=6&n2=4
[DOCUMENT_URI] => /api/public/index.php
[DOCUMENT_ROOT] => /var/www/test
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_SOFTWARE] => nginx/1.4.2
[HTTPS] =>
[REDIRECT_STATUS] => 200
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => no-cache
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
[HTTP_CONTENT_TYPE] => application/x-www-form-urlencoded
[HTTP_ACCEPT] => */*
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
[PHP_SELF] => /api/public/index.php
[REQUEST_TIME_FLOAT] => 1380738349.0903
[REQUEST_TIME] => 1380738349
)
解决方法如下:
root /var/www/test/;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/var/run/php5-fpm/socket.socket;
fastcgi_index index.php;
include fastcgi_params;
}
location /api { //map /api to public directory
try_files $uri /api/public/index.php;
}
location /api {
if (!-f $request_filename) {
rewrite ^(.*)$ /api/index.php last;
}
if (!-d $request_filename) {
rewrite ^(.*)$ /api/index.php last;
}
}
Array
(
[TEMP] => /tmp
[TMPDIR] => /tmp
[TMP] => /tmp
[PATH] => /usr/local/bin:/usr/bin:/bin
[HOSTNAME] =>
[USER] => ftp
[HOME] => /var/www/
[FCGI_ROLE] => RESPONDER
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[CONTENT_TYPE] => application/x-www-form-urlencoded
[CONTENT_LENGTH] =>
[SCRIPT_FILENAME] => /var/www/test/api/public/index.php
[SCRIPT_NAME] => /api/public/index.php
[PATH_INFO] =>
[REQUEST_URI] => /api/math/add?n1=6&n2=4
[DOCUMENT_URI] => /api/public/index.php
[DOCUMENT_ROOT] => /var/www/test
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_SOFTWARE] => nginx/1.4.2
[HTTPS] =>
[REDIRECT_STATUS] => 200
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => no-cache
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
[HTTP_CONTENT_TYPE] => application/x-www-form-urlencoded
[HTTP_ACCEPT] => */*
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
[PHP_SELF] => /api/public/index.php
[REQUEST_TIME_FLOAT] => 1380738349.0903
[REQUEST_TIME] => 1380738349
)
location /api {
if (!-f $request_filename) {
rewrite ^(.*)$ /api/index.php last;
}
if (!-d $request_filename) {
rewrite ^(.*)$ /api/index.php last;
}
}