Is PHP thread-safe?

vartec picture vartec · Mar 25, 2009 · Viewed 37.7k times · Source
  • Is PHP (as of 5.2) thread-safe on Linux/UNIX?
  • Would it be possible to use it with Apache Worker-MPM or Event-MPM?

The facts I gathered so far are inconclusive:

  • Default binaries included in most distributions have ZTS disabled, so I'm aware, that I'd have to recompile them.
  • In theory Zend Engine (core PHP) with ZTS enabled is thread-safe.
  • It's said that some modules might not be thread-safe, but I haven't found any list of modules that are or that are not.
  • PHP FAQ states pretty much same as above.

What's your experience?

It's not only about segmentation faults ("access violations" in Windows nomenclature). There is a lot more to thread safety.

Answer

OIS picture OIS · Mar 25, 2009

I know gettext and set_locale is not threadsafe. PHP should not be used with a threaded MPM.

PHP Isn't Thread-Safe Yet.
Running PHP not threaded.