luk             Tue Mar  5 18:03:32 2002 EDT

  Added files:                 
    /phpdoc/cs/faq      build.xml 
  Log:
  
  
  

Index: phpdoc/cs/faq/build.xml
+++ phpdoc/cs/faq/build.xml
<?xml version="1.0" encoding="iso-8859-2"?>

<chapter id="faq.build">
  <title>Sestavovac� (kompila�n�) probl�my</title>
  <titleabbrev>Sestavovac� (kompila�n�) probl�my</titleabbrev>

   <para>
    Tato sekce shrnuje nej�ast�j�� chyby, kter� se vyskytuj� p�i sestavov�n�
    PHP.    
   </para>

  <qandaset>
   <qandaentry id="faq.build.configure">
    <question>
     <para>
      Pomoc� anonymn�ho p��stupu do CVS jsem z�skal posledn� verzi PHP,
      ale chyb� v n� skript "configure"!      
     </para>
    </question>
    <answer>
     <para>
      Mus�te m�t nainstalovan� bal�k "GNU autoconf", tak�e m��ete vygenerovat
      skript "configure" z "configure.in". Po sta�en� zdrojov�ch soubor�
      z CVS serveru spus�te <command>./buildconf</command> z nejvy���
      adres��ov� �rovn� (pokud nespust�te "configure" s parametrem
      <literal>--enable-maintainer-mode</literal>, skript "configure"
      nebude automaticky aktualizov�n p�i zm�n� souboru "configure.in",
      tak�e se mus�te ujistit, zda jste to ud�lali ru�n� pot�, co byl
      "configure.in" zm�n�n. Jedn�m z p��znak� tohoto je nalezen� element�
      jako @VARIABLE@ v souboru "Makefile" potom, co byl spu�t�n "configure"
      nebo "config.status").
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.configuring">
    <question>
     <para>
      M�m probl�m nakonfigurovat PHP tak, aby fungovalo se serverem Apache.
      Hl�s�, �e nem��e naj�t httpd.h, ale ten je p�esn� tam, kde jsem uvedl,
      �e je!
     </para>
    </question>
    <answer>
     <para>
      Pot�ebujete sd�lit konfigura�n�mu/instala�n�mu skriptu um�st�n�
      nejvy��� �rovn� zdrojov�ch soubor� Apache. To znamen�, �e specifikujete
      '<literal>--with-apache=/path/to/apache</literal>'
      a <emphasis>ne</emphasis>
      '<literal>--with-apache=/path/to/apache/src</literal>'.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.not-found">
    <question>
     <para>
      Kdy� spust�m "configure", hl�s� to, �e nem��e naj�t "include" soubory
      nebo knihovny pro GD, gdbm a n�jak� dal�� bal�ky!
     </para>
    </question>
    <answer>
     <para>
      M��ete ur�it, aby skript "configure" hledal hlavi�kov� soubory a
      knihovny na nestandardn�ch m�stech specifikac� pomocn�ch p��znak� pro
      C preprocesor a linker, nap��klad:
      <programlisting>
    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
      </programlisting>
      Pokud pou��v�te csh (C-shell) jako v� login shell (pro�?), bylo by to:
      <programlisting>
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
      </programlisting>
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.yytname">
    <question>
     <para>
      Kdy� se kompiluje soubor language-parser.tab.c, hl�s� to chyby, kter�
      ��kaj� 'yytname undeclared'.
     </para>
    </question>
    <answer>
     <para>
       Mus�te updatovat va�i verzi programu Bison. Nejnov�j�� verzi najdete
       na <ulink url="&faqurl.bison;">&faqurl.bison;</ulink>.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.link">
    <question>
     <para>
      Kdy� spust�m "make", zd� se, �e b�� dob�e, ale havaruje, kdy� se
      pokou�� sestavit kone�nou aplikaci s hl�en�m, �e nem��e naj�t
      n�jak� soubory.
     </para>
    </question>
    <answer>
     <para>
      N�kter� star�� verze programu "make" neukl�daj� korektn� zkompilovan�
      verze soubor� um�st�n�ch v adres��i funkc� do t�ho� adres��e. Zkuste
      spustit "<command>cp *.o functions</command>" a potom znovu
      '<command>make</command>', abyste vid�li, zda to pomohlo. Pokud ano,
      m�li byste opravdu nainstalovat nejnov�j�� verzi "GNU make".
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.undefined">
    <question>
     <para>
      P�i sestavov�n� PHP to hl�s� mnoho nedefinovan�ch referenc�.
     </para>
    </question>
    <answer>
     <para>
      Pod�vejte se do ��dku, kde je pops�no sestavov�n� a ujist�te se,
      �e byly p�id�ny na konec v�echny pot�ebn� knihovny. �asto se st�v�,
      �e chyb� '-ldl' a n�kter� knihovny pot�ebn� pro podporu datab�ze, kterou
      jste ur�ili.
     </para>
     <para>
      Pokud sestavujete pro Apache 1.2.x, nezapomn�li jste p�idat odpov�daj�c�
      informace na ��dek EXTRA_LIBS v souboru "configure" a spustit skript
      pro konfiguraci Apache? Pro v�ce informac� se pod�vejte do souboru 
      <ulink url="&faqurl.file.installation;">INSTALL</ulink>, kter� z�sk�te
      s distribu�n�m bal�kem.
     </para>
     <para>
      N�kte�� lid� tak� hl�sili, �e pokud sestavovali pro Apache, museli
      p�idat '-ldl' t�sn� za '<filename>libphp4.a</filename>'.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.Apache">
    <question>
     <para>
      Nep�i�el jsem na to, jak sestavit PHP pro Apache 1.3.
     </para>
    </question>
    <answer>
     <para>
      Toto je nyn� velmi snadn�. N�sledujte pe�liv� tyto kroky:
      <itemizedlist>
       <listitem>
        <simpara>
         St�hn�te nejnov�j�� distribuci Apache 1.3 z 
         <ulink url="&faqurl.apache;">&faqurl.apache;</ulink>.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Rozbalte ji n�kam, nap��klad do 
         <filename>/usr/local/src/apache-1.3</filename>.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Zkompilujte PHP nejd��ve spu�t�n�m 
         <command>./configure --with-apache=/&lt;path&gt;/apache-1.3</command>
         (nahra�te &lt;path&gt; aktu�ln� cestou k adres��i apache-1.3).
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Napi�te '<literal>make</literal>' a potom '<literal>make install</literal>'
         k sestaven� PHP a zkop�rov�n� pot�ebn�ch soubor� do distribu�n�ho
         stromu Apache.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Zm��te adres�� na <filename>/&lt;path&gt;/apache-1.3/src</filename>
         a upravte soubor <filename>Configuration</filename>. 
         Do souboru p�idejte: 
         <literal>AddModule modules/php4/libphp4.a</literal>.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Spus�te '<command>./Configure</command>' a potom
         '<literal>make</literal>'.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Nyn� byste m�li m�st hotov� soubory httpd pro pr�ci s PHP.
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
     <para>
      <emphasis>Pozn�mka:</emphasis> : M��ete pou��t tak� nov� skript 
      <literal>./configure</literal> pro Apache. P�e�t�te si instrukce v
      <literal>README.configure</literal>, kter� je v distribuci Apache.
      Nahl�dn�te tak� do souboru <filename>INSTALL</filename> 
      z distribuce PHP.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.not-running">
    <question>
     <para>
      Postupoval jsem p�esn� podle instrukc� k instalaci PHP ve verzi jako
      modul pro Apache na UNIXu, a moje PHP skripty se zobrazuj� v prohl��e�i
      nebo se je prohl��e� sna�� ulo�it jako soubory.
     </para>
    </question>
    <answer>
     <para>
      To znamen�, �e PHP modul nen� z n�jak�ch d�vod� vyvol�v�n. D��ve,
      ne� budete sh�n�t dal�� pomoc, zkontrolujte t�i v�ci:
      <itemizedlist>
       <listitem>
        <simpara>
         Ujist�te se, �e se spou�t� pr�v� ten httpd, kter� jste
         zkompilovali. Zkuste spustit
         <literal>/path/to/binary/httpd -l</literal>
        </simpara>
        <simpara>
         Pokud v seznamu neuvid�te <filename>mod_php4.c</filename>,
         potom nespou�t�te spr�vnou verzi httpd. Najd�te s instalujte spr�vnou
         verzi.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Ujist�te se, �e jste p�idali spr�vnou specifikaci Mime Type do
         soubor� <literal>.conf</literal>pro Apache. M�lo by tam b�t: 
         <literal>AddType application/x-httpd-php3 .php3</literal> (pro PHP 3)
        </simpara>
        <simpara>
         nebo <literal>AddType application/x-httpd-php .php</literal> (pro PHP 4)
        </simpara>
        <simpara>
         Tak� se ujist�te, �e tento ��dek AddType nen� ukryt uvnit� bloku
          &lt;Virtualhost&gt; nebo &lt;Directory&gt;, co� m��e zabr�nit
          aplikaci pravidla na oblast, kde je um�st�n testovac� skript.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         Kone�n�, implicitn� um�st�n� konfigura�n�ch soubor� Apache se
         mezi verzemi Apache 1.2 a 1.3 zm�nilo. M�li byste ov��it, �e
         soubor, do kter�ho jste p�idali ��dek AddType je ten, kter� je
         skute�n� na��t�n. M��ete zkusit vlo�it n�jakou p���ernou syntaktickou
         chybu do souboru httpd.conf nebo ud�lat n�jakou jinou zm�nu tohoto
         r�zu - uvid�te, zda je soubor spr�vn� na��t�n.
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.activate-module">
    <question>
     <para>
      Hl�s� to pou�it�
      <literal>--activate-module=src/modules/php4/libphp4.a</literal>, 
      ale tento soubor neexistuje; proto jsem to zm�nil na 
      <literal>--activate-module=src/modules/php4/libmodphp4.a</literal> a
      ono to nefunguje? O co jde?
     </para>
    </question>
    <answer>
     <para>
       Uv�domte si, �e soubor libphp4.a nem� existovat.  Vytv��� ho proces
       serveru Apache!
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.ansi">
    <question>
     <para>
      Kdy� zkus�m sestavit Apache s PHP jako�to statick�m modulem pomoc�       
      <literal>--activate-module=src/modules/php4/libphp4.a</literal>,
      hl�s� to, �e m�j kompil�tor nevyhovuje ANSI.
     </para>
    </question>
    <answer>
     <para>
      Toto je zav�d�j�c� chybov� hl�en�, kter� bylo odstran�no v pozd�j��ch
      verz�ch.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.apxs">
    <question>
     <para>
      Kdy� zkus�m sestavit PHP s parametrem <literal>--with-apxs</literal>,
      dostanu z�hadn� chybov� zpr�vy.
     </para>
    </question>
    <answer>
     <para>
      Je t�eba zkontrolovat t�i v�ci. Nejd��ve, z d�vodu, �e kdy� Apache
      vytv��� apxs skript v Perlu, n�kdy ukon�� kompilaci bez odpov�daj�c�ch
      prom�nn�ch. Najd�te skript apxs (zkuste p��kaz 'which apxs', n�kdy
      b�v� v /usr/local/apache/bin/apxs nebo /usr/sbin/apxs). Otev�te ho
      a zkontrolujte ��dky podobn� t�mto:
      <programlisting>
my $CFG_CFLAGS_SHLIB  = '&nbsp;';          # nahrazeno pomoc� Makefile.tmpl
my $CFG_LD_SHLIB      = '&nbsp;';          # nahrazeno pomoc� Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = '&nbsp;';          # nahrazeno pomoc� Makefile.tmpl
      </programlisting>
      Pokud vid�te toto, na�li jste ten probl�m. Mohou se tam vyskytovat
      mezery nebo jin� nekorektn� hodnoty, nap�. 'q()'. Zm��te ��dky
      takto:
      <programlisting>
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';             # nahrazeno pomoc� Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);        # nahrazeno pomoc� Makefile.tmpl 
      </programlisting>
      Druh� mo�n� probl�m by m�l vyskytovat pouze na Red Hat Linuxu 6.1
      a 6.2. Skript apxs v t�chto distribuc�ch Red Hat je po�kozen�.
      Najd�te ��dek
      <programlisting>
my $CFG_LIBEXECDIR    = 'modules';         # nahrazeno pomoc� APACI install
      </programlisting>
      Pokud vid�te v��e uveden� ��dek, nahra�te ho t�mto:
      <programlisting>
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # nahrazeno pomoc� APACI install
      </programlisting>
       Nakonec, kdy� budete p�einstalov�vat Apache, za�a�te 'make clean' 
       mezi './configure' a 'make'.
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.microtime">
    <question>
     <para>
     During 'make', I get errors in microtime, and a lot of 'RUSAGE_' stuff.
    </para>
    </question>
    <answer>
     <para>
      During the 'make' portion of installation, if you encounter problems 
      that look similar to this:
      <programlisting>
    microtime.c: In function `php_if_getrusage':
    microtime.c:94: storage size of `usg' isn't known
    microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
    microtime.c:97: (Each undeclared identifier is reported only once
    microtime.c:97: for each function it appears in.)
    microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
    make[3]: *** [microtime.lo] Error 1
    make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/master/php-4.0.1/ext'
    make: *** [all-recursive] Error 1
      </programlisting>
     </para>
     <para>
     V� syst�m je po�kozen. Mus�te opravit soubory v /usr/include instalac�
     bal�ku glibc-devel, kter� pat�� k va�emu glibc.  Nem� to absolutn� nic
     spole�n�ho s PHP. D�kaz z�sk�te t�mto jednoduch�m testem:
     <programlisting>
    $ cat &gt;test.c &lt;&lt;X
    #include &lt;sys/resource.h&gt;
    X
    $ gcc -E test.c &gt;/dev/null
      </programlisting>
      Pokud se objev� chyby, ve va�ich hlavi�kov�ch souborech panuje chaos.
     </para>
    </answer>
   </qandaentry>
   
   <qandaentry id="faq.build.upgrade">
    <question>
     <para>
      Chci upgradovat sv� PHP. Kde najdu tvar ��dku
      <command>./configure</command>, kter� byl pou�it pro sestaven� st�vaj�c�
      instalace PHP?
     </para>
    </question>
    <answer>
     <para>
      Kdy� se pod�v�te do souboru config.nice ve zdrojov�m stromu sou�asn�
      instalace PHP. Nen�-li k dispozici, jednodu�e spus�te skript
      <programlisting>
       <?php phpinfo(); ?> 
      </programlisting>
      Naho�e ve v�pisu najdete ��dek <command>./configure</command>, kter� byl
      pou�it p�i sestavov�n� st�vaj�c� instalace.
     </para>
    </answer>
   </qandaentry>   
  </qandaset>
 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to