Can anyone *really* explain opcode caching with PHP?

gcaplan nginx-forum at
Wed Mar 7 03:13:23 UTC 2012

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

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...

Posted at Nginx Forum:,223556,223556#msg-223556

More information about the nginx mailing list