I am a beginner with nginx and php, so please excuse my basic question.
For a RESTful based API (nginx + php) I would need some help with nginx configuration.
Here is the relevant snippet of the nginx configuration (as suggested here) for redirecting all /api/v1/* requests to my apiv1.php script:
server {
server_name myServer;
root /usr/share/nginx/html;
location /api/v1/ {
try_files $uri $uri/ /apiv1.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Now the issue is that when I type http://myServer//api/v1/resource/GetInfo in my browser, the apiv1.php script doesn't seem to receive the "resource/GetInfo". Actually, _GET and _REQUEST are empty, but _SERVER looks OK!
In my /etc/php5/fpm/php.ini, the following relevant config is enabled:
request_order = "GP"
variables_order = "GPCS"
register_argc_argv = Off
auto_globals_jit = On.
Do you maybe know why the php _GET and _REQUEST are empty? Is this related to my php configuration only?
Best regards, M.
If someone else hit this page, there is solution I got for myself after a bit research:
Here I'm not limited with class/method structure and location seems more readable than rewrite.
Replace this:
With the following inside your server block:
Create a php file called apiv1.php and place in the root directory of your web server with the following lines of code:
Test by visiting the following link in your browser: