As far as Windows is concerned, it is worth noting that the Apache mod_php
(i.e. ZTS) build is supported.  Also, though my information is a bit
outdated, last I heard work was being done to support thread-safe PHP as an
ISAPI module on IIS, though I don't know what the status of that is.

--Kris


On Fri, Feb 24, 2012 at 11:52 AM, Tom Boutell <t...@punkave.com> wrote:

> I'm building a script that installs PHP 5.3.10 from source. One of the
> steps is to install apc and mongo support via pecl. I'm building the
> CGI/FastCGI version. This is on a box that formerly had mod_php
> installed.
>
> If I do 'make install' of PHP (which installs a new pecl binary) and
> follow it up immediately with 'pecl install apc', the apc extension
> winds up here:
>
> /usr/local/lib/php/extensions/no-debug-zts-20090626
>
> That's not what command line php and php-cgi are looking for, so they
> produce warnings and don't load the extensions.
>
> However If I do the pecl install later - possibly after restarting
> Apache with fastcgi enabled - it installs to the new, correct place:
>
> no-debug-non-zts-20090626
>
> The warnings go away, and everything is great.
>
> This raises two questions about which no documentation seems to exist
> after quite a bit of searching and which raise questions about whether
> PHP is doing sensible things, so I took the liberty of bringing them
> to folks who actually understand PHP's internals.
>
> 1. You only get one pecl binary although you may have many SAPIs
> installed. mod_php defaults to thread-safe (and there seems to be no
> way to turn that off on Linux), while php-cgi does not. So how does
> pecl decide which way to build extensions? I tried setting
> extensions_dir via config-set, but that setting was ignored (unless
> perhaps it falls back if the folder doesn't exist yet?). How can I
> ensure that, having just installed PHP and pecl, my next pecl install
> will build extensions for the right flavor of PHP?
>
> 2. Why does php turn on thread-safety for mod_php at all on Linux,
> given that it apparently still doesn't work very well with various
> extensions in a genuinely multithreaded situation, slows things down,
> takes more memory, and leads to problems like this one?
>
> Everyone I've found runs PHP under the Apache prefork MPM, which does
> not attempt to run PHP in multiple threads of one process. I have
> never seen anyone successfully use the worker MPM with PHP, except by
> moving PHP out to a fastcgi process pool, which is, again,
> single-process PHP.
>
> Even Microsoft's PHP accelerator uses the fastcgi-based,
> one-process-per-PHP-request approach. Since Windows is so
> thread-oriented that seems significant.
>
> I have attached my script.
>
> Thanks for any insight!
>
> On Sun, Feb 5, 2012 at 9:59 AM, Nikita Popov <nikita....@googlemail.com>
> wrote:
> > Hi internals!
> >
> > I have written an RFC that proposes to *deprecate* and *remove* the /e
> modifier:
> >
> > https://wiki.php.net/rfc/remove_preg_replace_eval_modifier
> >
> > Comments welcome!
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
>
>
> --
> Tom Boutell
> P'unk Avenue
> 215 755 1330
> punkave.com
> window.punkave.com
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

Reply via email to