Hi folks
Thinking of abandoning mod_php for the wonderful world of nginx, but googling the issue of opcode caching with fastcgi is proving surprisingly confusing: there's a lot of conflicting information out there.
My basic question is this: what is the most performant, memory-efficient, Slashdot resistant way to set up nginx for running a complex PHP app?
More specifically:
1) Why cache? I understood that a fastcgi process compiles the app into memory, and serves it from there till it's recycled after max_requests. So what's the value of opcode caching? To speed up one request in 500? But I've seen benchmarks that claim an opcode cache with nginx offers 50% savings on memory and response time. Where would these savings be coming from? No one explains...
2) What cache? Nginx/PHP setup tutorials either omit opcode caching or recommend xcache, without explaining why. There's a lot of conflicting information about whether each process needs its own cache (very memory intensive?) or whether processes can share a cache. Some bloggers claim that Xcache handles this better than APC, but again, no one explains how or why. Can anyone offer an authoritative answer to this?
So is opcode caching effective with fastcgi? If so, how does it work, and what setup plays best with nginx? I would be more than grateful if anyone can make sense of this. Also, can I please suggest this as a candidate for the nginx FAQs? Judging by what I've been reading, I'm not the only one who'se confused by this...