nlopess         Wed Jun 16 08:22:33 2004 EDT

  Modified files:              
    /phpdoc/en  language-snippets.ent 
    /phpdoc/en/faq      installation.xml 
    /phpdoc/en/install/unix     apache2.xml 
  Log:
  move that apache compat stuff to a gaq entry, so that windows users will also read it
  
http://cvs.php.net/diff.php/phpdoc/en/language-snippets.ent?r1=1.97&r2=1.98&ty=u
Index: phpdoc/en/language-snippets.ent
diff -u phpdoc/en/language-snippets.ent:1.97 phpdoc/en/language-snippets.ent:1.98
--- phpdoc/en/language-snippets.ent:1.97        Wed Jun 16 07:11:19 2004
+++ phpdoc/en/language-snippets.ent     Wed Jun 16 08:22:33 2004
@@ -1,4 +1,4 @@
-<!-- $Revision: 1.97 $ -->
+<!-- $Revision: 1.98 $ -->
 <!-- Keep 'em sorted -->
 
 
@@ -354,8 +354,8 @@
 
 <!-- Snippets for the installation section -->
 <!ENTITY warn.apache2.compat '<warning><para>Do not use Apache 2.0.x
-and <literal>PHP</literal> in a production environment neither
-on Unix nor on Windows.</para></warning>'>
+and PHP in a production environment neither on Unix nor on Windows. Read also the
+<link linkend="faq.installation.apache2">FAQ entry</link></para></warning>'>
                                                            
 <!ENTITY note.apache.slashes '<note><simpara>Remember that when adding
 path values in the Apache configuration files on Windows, all backslashes
http://cvs.php.net/diff.php/phpdoc/en/faq/installation.xml?r1=1.28&r2=1.29&ty=u
Index: phpdoc/en/faq/installation.xml
diff -u phpdoc/en/faq/installation.xml:1.28 phpdoc/en/faq/installation.xml:1.29
--- phpdoc/en/faq/installation.xml:1.28 Tue Jun  1 15:50:44 2004
+++ phpdoc/en/faq/installation.xml      Wed Jun 16 08:22:33 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.28 $ -->
+<!-- $Revision: 1.29 $ -->
  <chapter id="faq.installation">
   <title>Installation</title>
   <titleabbrev>Installation</titleabbrev>
@@ -19,6 +19,86 @@
   </para>
 
   <qandaset>
+   <qandaentry id="faq.installation.apache2">
+    <question>
+     <para>
+      Why shouldn't I use Apache 2 in a production environment?
+     </para>
+    </question>
+    <answer>
+     <para>
+      The following answer is based in this modified excerpt of a mail
+      by Rasmus Lerdorf.
+     </para>
+     <para>
+      Apache 2 is a complete rewrite and a complete architecture change from
+      Apache 1. It is not like going from PHP 3 to PHP 4 or from PHP 4 to PHP 5.
+      There is a lot of code that is common, and certainly the base architecture
+      of PHP has not changed for years. So comparing Apache 1 vs. Apache 2 to
+      PHP 4 vs. PHP 5 makes no sense. The architecture has been proven over
+      the years and the code, while somewhat unwieldy in places, is a known
+      entity. PHP from the very early days was designed against this basic
+      Apache 1 architecture and works extremely well running under it.
+     </para>
+     <para>
+      The major feature that draws people to Apache 2 is threading.  On Windows
+      where most basic libraries are, and must be, threadsafe, Apache 2 does
+      actually make sense and it would be good to work out the kinks on that
+      platform. However, on UNIX there are a lot of basic libraries where
+      thread safety is an unknown. And this is not about PHP extensions, it is
+      about 3rd-party libraries underneath PHP's hundreds of extensions.
+      Whether any one 3rd-party library is threadsafe is really hard to
+      determine. There are a lot of variables involved, including which OS,
+      which version of the OS, which libc, which version of that libc and on
+      some platforms even the compiler flags used to compile these things. And
+      to make it even more fun, tracking down a thread safety problem is damn
+      well near impossible. Hundreds of people may well state that
+      Apache+PHP+ext/foo works perfectly for them, but maybe they are only
+      getting about a million hits a day. Then another user comes along who
+      gets 100 million hits a day and uses a fast dual-cpu machine and
+      everything blows up because now suddenly the window for some tiny race
+      condition has been made much larger due to the faster cpu speeds, the
+      second cpu and the higher frequency of requests.  And the bug report we
+      get from this user will be something along the lines of:
+     </para>
+     <para>
+      <quote>
+       It don't work sometimes.  Most of the times it works fine, but then
+       every now and then it just don't. The error is different each time
+       and I have no idea how to reproduce it, but fix it right away!!!
+      </quote>
+     </para>
+
+     <para>What can we do about these?</para>
+     <para>
+      There are a number of (fixable) technical reasons Rasmus does not think
+      Apache2+PHP is a good idea in a production environment, but setting
+      those aside it really boils down to one simple concept:
+     </para>
+     <para>
+      PHP is glue. It is the glue used to build cool web applications by
+      sticking dozens of 3rd-party libraries together and making it all appear
+      as one coherent entity through an intuitive and easy to learn language
+      interface. The flexibility and power of PHP relies on the stability and
+      robustness of the underlying platform. It needs a working OS, a working
+      web server and working 3rd-party libraries to glue together. When any of
+      these stop working PHP needs ways to identify the problems and fix them
+      quickly. By making the underlying framework more complex by not having
+      completely separate execution threads, completely separate memory
+      segments and a strong sandbox for each request to play in, a feet of
+      clay is introduced into PHP's system.
+     </para>
+     <para>
+      Using the prefork mpm with Apache 2 to avoid the threading is possible,
+      and yes using a standalone fastcgi mechanism to avoid the threading,
+      too, but then defining characteristic of the web server of choice are
+      avoided.  At this point in its development, Rasmus still maintains that
+      one is better off simply sticking with Apache1 for serving up PHP pages
+      with the one caveat that Apache 1 sucks pretty badly on Windows.
+     </para>
+    </answer>
+   </qandaentry>
+
    <qandaentry id="faq.installation.phpini">
     <question>
      <para>
http://cvs.php.net/diff.php/phpdoc/en/install/unix/apache2.xml?r1=1.2&r2=1.3&ty=u
Index: phpdoc/en/install/unix/apache2.xml
diff -u phpdoc/en/install/unix/apache2.xml:1.2 phpdoc/en/install/unix/apache2.xml:1.3
--- phpdoc/en/install/unix/apache2.xml:1.2      Wed Jun 16 07:11:20 2004
+++ phpdoc/en/install/unix/apache2.xml  Wed Jun 16 08:22:33 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
    <sect1 id="install.unix.apache2">
     <title>Apache 2.0 on Unix systems</title>
     <para>
@@ -7,89 +7,7 @@
      of PHP on Unix systems.
     </para>
    
-    <warning>
-      <para>
-        Do not use Apache 2.0.x and <literal>PHP</literal> in a production 
-        environment neither on Unix nor on Windows. The reasoning behing 
-        that is explained thoroughly in this modified excerpt of a mail
-        by Rasmus Lerdorf.
-      </para>
-      
-      <para>
-        Apache2 is a complete rewrite and a complete architecture change from
-        Apache1. It is not like going from <literal>PHP3</literal> to 
-        <literal>PHP4</literal> or from <literal>PHP4</literal> to PHP5.
-        There is a lot of code that is common, and certainly the base architecture
-        of PHP has not changed for years. So comparing Apache1 vs. Apache2 to
-        <literal>PHP4</literal> vs. <literal>PHP5</literal> makes no sense.
-        The architecture has been proven over the years and the code, while
-        somewhat unwieldy in places, is a known entity. PHP from the very 
-        early days was designed against this basic Apache1 architecture and 
-        works extremely well running under it.
-      </para>
-      
-      <para>
-        The major feature that draws people to Apache2 is threading.  On Windows
-        where most basic libraries are, and must be, threadsafe, Apache2 does
-        actually make sense and it would be good to work out the kinks on that
-        platform. However, on UNIX there are a lot of basic libraries where
-        thread safety is an unknown. And this is not about <literal>PHP</literal>
-        extensions, it is about 3rd-party libraries underneath 
<literal>PHP&apos;s</literal>
-        hundreds of extensions. Whether any one 3rd-party library is threadsafe is 
-        really hard to determine. There are a lot of variables involved, including 
which
-        OS, which version of the OS, which libc, which version of that libc and on
-        some platforms even the compiler flags used to compile these things. And
-        to make it even more fun, tracking down a thread safety problem is damn
-        well near impossible. Hundreds of people may well state that
-        Apache+<literal>PHP</literal>+ext/foo works perfectly for them, but maybe 
-        they are only getting about a million hits a day. Then another user comes 
-        along who gets 100 million hits a day and uses a fast dual-cpu machine and
-        everything blows up because now suddenly the window for some tiny race
-        condition has been made much larger due to the faster cpu speeds, the
-        second cpu and the higher frequency of requests.  And the bug report we
-        get from this user will be something along the lines of:
-      </para>
-      
-      <para>
-        <note>
-      It don&apos;t work sometimes.  Most of the times it works fine, but then
-      every now and then it just don&apos;t.  The error is different each time
-      and I have no idea how to reproduce it, but fix it right away!!!
-        </note>
-      </para>
-      
-      <para>What can we do about these?</para>
-      
-      <para>
-        There are a number of (fixable) technical reasons Rasmus does not think
-        Apache2+<literal>PHP</literal> is a good idea in a production environment, 
-        but setting those aside it really boils down to one simple concept:
-      </para>
-      
-      <para>
-        <literal>PHP</literal> is glue. It is the glue used to build cool web 
-        applications by sticking dozens of 3rd-party libraries together and making 
-        it all appear as one coherent entity through an intuitive and easy to learn 
-        language interface. The flexibility and power of <literal>PHP</literal> 
relies 
-        on the stability and robustness of the underlying platform. It needs a 
working 
-        OS, a working  web server and working 3rd-party libraries to glue together.
-        When any of these stop working <literal>PHP</literal> needs ways to identify 
-        the problems and fix them quickly. By making the underlying framework more 
-        complex by not having completely separate execution threads, completely 
-        separate memory segments and a strong sandbox for each request to play 
-        in, a feet of clay is introduced into <literal>PHP&apos;s</literal> system.
-      </para>
-      
-      <para>
-        Using the prefork mpm with Apache2 to avoid the
-        threading is possible, and yes using a standalone fastcgi mechanism to avoid
-        the threading, too, but then defining characteristic of the web server of
-        choice are avoided.  At this point in its development, Rasmus still maintains
-        that one is better off simply sticking with Apache1 for serving up 
-        <literal>PHP</literal> pages with the one caveat that Apache1 sucks pretty 
badly 
-        on Windows.
-      </para>
-    </warning>
+    &warn.apache2.compat;
     
     <para>
      You are highly encouraged to take a look at the

Reply via email to