Problems with fastcgi php migration

Ian M. Evans ianevans at digitalhit.com
Sat Mar 15 18:56:25 MSK 2008


Banging my head on the desk here. I added 'test' to the list of 
filenames that can be extensionless. Placed it a few subdirs down.

All 'test' contains is the phpinfo();

When I go to /academy/80/test, the phpinfo() comes up. Here are the 
params from the nginx debug:

Parameters from working page:
30680#0: *1174 fastcgi param: "GATEWAY_INTERFACE: CGI/1.1"
30680#0: *1174 fastcgi param: "SERVER_SOFTWARE: nginx"
30680#0: *1174 fastcgi param: "QUERY_STRING: "
30680#0: *1174 fastcgi param: "REQUEST_METHOD: GET"
30680#0: *1174 fastcgi param: "CONTENT_TYPE: "
30680#0: *1174 fastcgi param: "CONTENT_LENGTH: "
30680#0: *1174 fastcgi param: "DOCUMENT_URI: /academy/80/test"
30680#0: *1174 fastcgi param: "DOCUMENT_ROOT: /usr/local/apache/htdocs"
30680#0: *1174 fastcgi param: "SCRIPT_FILENAME: 
/usr/local/apache/htdocs/academy/80/test"
30680#0: *1174 fastcgi param: "PATH_INFO: "
30680#0: *1174 fastcgi param: "REDIRECT_STATUS: 200"

Great. Scriptname is correct. Root's correct. Path_info is empty. It works.

Now I called /academy/80/test/12

phpinfo() should come up and the only major change is that path_info 
should be 12.

The debug logs show that it's passing a path_info of /12
The script filename is correct. But phpinfo() doesn't run.

30680#0: *1202 fastcgi param: "GATEWAY_INTERFACE: CGI/1.1"
30680#0: *1202 http script copy: ""
30680#0: *1202 fastcgi param: "SERVER_SOFTWARE: nginx"
30680#0: *1202 http script copy: ""
30680#0: *1202 fastcgi param: "QUERY_STRING: "
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "REQUEST_METHOD: GET"
30680#0: *1202 http script copy: ""
30680#0: *1202 fastcgi param: "CONTENT_TYPE: "
30680#0: *1202 http script copy: ""
30680#0: *1202 fastcgi param: "CONTENT_LENGTH: "
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "DOCUMENT_URI: /academy/80/test/12"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "DOCUMENT_ROOT: /usr/local/apache/htdocs"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "SERVER_PROTOCOL: HTTP/1.1"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "REMOTE_PORT: 2487"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "SERVER_PORT: 8088"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "SCRIPT_FILENAME: 
/usr/local/apache/htdocs/test"
30680#0: *1202 http script copy: ""
30680#0: *1202 http script var: ""
30680#0: *1202 fastcgi param: "PATH_INFO: /12"
30680#0: *1202 http script copy: ""
30680#0: *1202 fastcgi param: "REDIRECT_STATUS: 200"
30680#0: *1202 http cleanup add: 09E3106C
30680#0: *1202 get rr peer, try: 1
30680#0: *1202 socket 13
30680#0: *1202 rtsig add connection: fd:13 signo:43
30680#0: *1202 connect to 127.0.0.1:10004, fd:13 #1203
30680#0: *1202 http upstream connect: -2
30680#0: *1202 event timer add: 13: 60000:3004683954
30680#0: rtsig add connection: fd:7 signo:43
30680#0: *1202 post event 09E7804C
30680#0: *1202 delete posted event 09E7804C
30680#0: *1202 http upstream send request handler
30680#0: *1202 http upstream send request
30680#0: *1202 chain writer buf fl:0 s:1272
30680#0: *1202 chain writer in: 09E31088
30680#0: *1202 writev: 1272
30680#0: *1202 chain writer out: 00000000
30680#0: *1202 event timer del: 13: 3004683954
30680#0: *1202 event timer add: 13: 60000:3004683955
30680#0: rtsig add connection: fd:7 signo:43
30680#0: *1202 post event 09E6B044
30680#0: *1202 delete posted event 09E6B044
30680#0: *1202 http upstream process header
30680#0: *1202 malloc: 09E31240:4096
30680#0: *1202 recv: fd:13 80 of 4096
30680#0: *1202 http fastcgi record byte: 01
30680#0: *1202 http fastcgi record byte: 06
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record byte: 01
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record byte: 34
30680#0: *1202 http fastcgi record byte: 04
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record length: 52
30680#0: *1202 http fastcgi parser: 0
30680#0: *1202 http fastcgi header: "X-Powered-By: PHP/5.2.5"
30680#0: *1202 http fastcgi parser: 0
30680#0: *1202 http fastcgi header: "Content-type: text/html"
30680#0: *1202 http fastcgi parser: 1
30680#0: *1202 http fastcgi header done
30680#0: *1202 malloc: 09E32248:4096
30680#0: *1202 HTTP/1.1 200 OK
30680#0: *1202 write new buf t:1 f:0 09E32268, pos 09E32268, size: 180 
file: 0, size: 0
30680#0: *1202 http write filter: l:0 f:0 s:180
30680#0: *1202 http upstream process upstream
30680#0: *1202 pipe read upstream: 1
30680#0: *1202 pipe preread: 20
30680#0: *1202 readv: 1:4016
30680#0: *1202 pipe recv chain: 0
30680#0: *1202 pipe buf free s:0 t:1 f:0 09E31240, pos 09E3127C, size: 
20 file: 0, size: 0
30680#0: *1202 http fastcgi record byte: 01
30680#0: *1202 http fastcgi record byte: 03
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record byte: 01
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record byte: 08
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record byte: 00
30680#0: *1202 http fastcgi record length: 8
30680#0: *1202 http fastcgi sent end request
30680#0: *1202 free: 09E31240
30680#0: *1202 pipe write downstream: 1
30680#0: *1202 pipe write downstream done
30680#0: *1202 event timer: 13, old: 3004683955, new: 3004683956
30680#0: *1202 http upstream exit: 00000000
30680#0: *1202 finalize http upstream request: 0
30680#0: *1202 finalize http fastcgi request
30680#0: *1202 free rr peer 1 0
30680#0: *1202 close http upstream connection: 13
30680#0: *1202 event timer del: 13: 3004683955
30680#0: *1202 rtsig del connection: fd:13
30680#0: *1202 http upstream temp fd: -1
30680#0: *1202 http output filter "/academy/80/test/12?"
30680#0: *1202 copy filter: "/academy/80/test/12?"
30680#0: *1202 http postpone filter "/academy/80/test/12?" BFFFBAA8
30680#0: *1202 http postpone filter out "/academy/80/test/12?"
30680#0: *1202 http chunk: 0
30680#0: *1202 write old buf t:1 f:0 09E32268, pos 09E32268, size: 180 
file: 0, size: 0
30680#0: *1202 write new buf t:0 f:0 00000000, pos 0813310F, size: 5 
file: 0, size: 0
30680#0: *1202 http write filter: l:1 f:0 s:185
30680#0: *1202 http write filter limit 0
30680#0: *1202 writev: 185
30680#0: *1202 http write filter 00000000
30680#0: *1202 copy filter: 0 "/academy/80/test/12?"
30680#0: *1202 http finalize request: 0, "/academy/80/test/12?"
30680#0: *1202 set http keepalive handler
30680#0: *1202 http close request
30680#0: *1202 http log handler
30680#0: *1202 free: 00000000
30680#0: *1202 free: 09E30238, unused: 36
30680#0: *1202 free: 09E32248, unused: 3358
30680#0: *1202 event timer add: 11: 5000:3004628956
30680#0: *1202 free: 09E2FBB0
30680#0: *1202 free: 09E2FE30
30680#0: *1202 hc free: 00000000 0
30680#0: *1202 hc busy: 00000000 0
30680#0: *1202 tcp_nodelay
30680#0: *1202 http keepalive handler
30680#0: *1202 malloc: 09E2FBB0:1024
30680#0: *1202 recv: fd:11 -1 of 1024

I'm perplexed. If it's passing the correct stuff onto php, why isn't it 
running?

Thanks.





More information about the nginx mailing list