nohn Sun Jun 9 12:47:24 2002 EDT
Added files:
/phpdoc-de/faq build.xml
Log:
Initial commit of german translation
Index: phpdoc-de/faq/build.xml
+++ phpdoc-de/faq/build.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.17 Maintainer: nohn Status: ready -->
<!-- $Revision: 1.1 $ -->
<chapter id="faq.build">
<title>Probleme bei der Compilierung</title>
<titleabbrev>Probleme bei der Compilierung</titleabbrev>
<para>
Diese Sektion behandelt die meistverbreiteten Fehler, die beim
Compilieren von PHP auftauchen.
</para>
<qandaset>
<qandaentry id="faq.build.configure">
<question>
<para>
Ich habe mir die aktuellste Version von PHP mit Hilfe des
Anonymous-CVS-Dienstes besorgt, kann aber kein configure-Script
finden.
</para>
</question>
<answer>
<para>
Sie m�ssen das GNU autoconf-Paket installiert haben, damit das
configure-Script aus <filename>configure.in</filename> generiert
werden kann. Mittels <command>./buildconf</command> im
Hauptverzeichnis des vom CVS-Server gezogenen Source-Trees wird das
<command>configure</configure>-Script generiert. Es ist zu
beachten, das das configure-Script bei einer ge�nderten
<filename>configure.in</filename> nicht neu generiert wird, es sei
denn, configure wird mit dem Parameter
<literal>--enable-maintainer-mode</literal> aufgerufen. Es sollte also
darauf geachtet werden, das das configure-Script manuell neu generiert
wird, wenn configure.in ver�ndert wurde. Ein Symptom f�r eine
Ver�nderung des configure.in ist, wenn Dinge wie @VARIABLE@ im
Makefile auftachen, nachem configure oder
<filename>config.status</configure> ausgef�hrt wurde.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.configuring">
<question>
<para>
Ich habe Probleme. PHP f�r den Apache zu konfigurieren.
Er beschwert sich, das er die Datei <filename>httpd.h</filename>
nicht finden kann, obwohl sie sich genau dort befindet, wo ich es
angegeben habe.
</para>
</question>
<answer>
<para>
Sie m�ssen dem configure/setip-Script die Top-Level-Pfad des
Apache-Source-Trees mitteilen. Das bedeutet, da� z.B.
<literal>--with-apache=/path/to/apache</literal> korrekt ist,
<literal>--with-apache=/path/to/apache/src</literal> jedoch
<emphasis>nicht</emphasis>.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.not-found">
<question>
<para>
When I run configure, it says that it can't find the
include files or library for GD, gdbm, or some other package!
</para>
</question>
<answer>
<para>
Es ist m�glich, das configure-Script so anzupassen, das es nicht
nur in Standard-Pfaden nach Headerdatei und Bibliotheken sucht, in dem
dem C Pr�prozessort und Linker zus�tzliche Flags �bergeben werden:
<programlisting>
<![CDATA[
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
]]>
</programlisting>
Wenn Sie (aus welchem Grund auch immer) eine csh-Variante als
Login-Shell verwenden:
<programlisting>
<![CDATA[
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
]]>
</programlisting>
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.yytname">
<question>
<para>
Wenn die Datei <filename>language-parser.tab.c</filename>
compiliert wird, erscheinen Fehler, die <literal>yytname
undeclared</literal> besagen.
</para>
</question>
<answer>
<para>
Sie m�ssen Bison updaten. Die aktuellste Version findet sich
unter <ulink url="&faqurl.bison;">&faqurl.bison;</ulink>.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.link">
<question>
<para>
Wenn ich <command>make</command> ausf�hre, scheint alles normal
zu verlaufen, aber sobald es versucht, die Applikation zu linken,
beschwert es sich, einige Dateien nicht finden zu k�nnen.
</para>
</question>
<answer>
<para>
Einige alte Versionen von make platzieren die compilierten
Versionen der Dateien nicht in das korrekte Verzeichnis. Versuchen
Sie, das Problem zu l�sen, indem sie zun�chst mittels <command>cp *.o
functions</command> die Dateien an der vorgesehenen Platz kopieren,
und anschlie�end <command>make</command> noch einmal ausf�hren. Sollte
es dann funktionieren, empfehlen wir, Ihre Version von GNU make zu
aktualisieren.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.undefined">
<question>
<para>
Wenn PHP gelinkt wird, berschwert es sich �ber undefinierte
Referenzen.
</para>
</question>
<answer>
<para>
Schauen Sie sich die Link-Zeile an, und stellen Sie sicher, das
alle n�tigen Bibliotheken am Ende mit eingeschlossen werden. H�ufig
werden '-ldl' und Datenbankbibliothken vergessen.
</para>
<para>
Wenn Sie mit Apache 1.2.x linken, haben Sie daran gedacht, die
ben�tigten Informationen in die EXTRA_LIBS-Zeile des
Konfigurationsscriptes einzuf�gen, und haben Sie das configure-Script
des Apache wiederholt ausgef�hrt? Weitere Informationen dazu finden
Sie im <ulink url="&faqurl.file.installation;">INSTALL</ulink> File
Ihrer Distribution.
</para>
<para>
Einige Leute haben berichtet, da� sie '-ldl' unmittelbar nach
<filename>libphp4.a</filename> einf�gen mu�ten, wenn sie PHP mit
Apache gelinkt haben.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.Apache">
<question>
<para>
Wie wird PHP mit Apache 1.3.x compiliert?
</para>
</question>
<answer>
<para>
Folgen Sie diesen Schritten:
<itemizedlist>
<listitem>
<simpara>
Besorgen Sie sich die letzte Version von Apache unter
<ulink url="&faqurl.apache;">&faqurl.apache;</ulink>.
</simpara>
</listitem>
<listitem>
<simpara>
Entpacken Sie die Datei zum Beispiel unter
<filename>/usr/local/src/apache-1.3</filename>.
</simpara>
</listitem>
<listitem>
<simpara>
Compilieren Sie zun�chst PHP, zum Beispiel mit
<command>./configure --with-apache=/<path>/apache-1.3</command>
(ersetzen Sie <path> mit dem Pfad zu Ihrem
apache-1.3-Verzeichnis.
</simpara>
</listitem>
<listitem>
<simpara>
F�hren Sie <command>make</command>, gefolgt von einem
<command>make install</command> aus, und kopieren die ben�tigten
Dateien in den Apache-Tree.
</simpara>
</listitem>
<listitem>
<simpara>
Wechseln Sie in das Verzeichnis
<filename>/<path>/apache-1.3/src</filename> und bearbeiten die
Datei <filename>Configuration</filename>.
F�gen Sie <literal>AddModule modules/php4/libphp4.a</literal>
hinzu.
</simpara>
</listitem>
<listitem>
<simpara>
F�hren Sie <command>./Configure</command>, gefolgt von
<literal>make</literal> aus.
</simpara>
</listitem>
<listitem>
<simpara>
Nun sollte eine lauff�hig Version eines PHP-f�higen Apaches
compiliert sein.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
<emphasis>Bitte beachten Sie:</emphasis> Sie k�nnen auch das
neue Apache <literal>./configure</literal>-Script nuten. Weitere
Informationen dazu finden sie in der Datei
<literal>README.configure</literal>, die der Apache-Distribution
beiliegt. Auch in der Datei <filename>INSTALL</filename> Ihrer
PHP-Distribution finden sich Informationen dazu.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.not-running">
<question>
<para>
Ich habe die Schritte, die zur Installation des Apache-Modules
unter UNIX n�tig sind, aber wenn ich mit meinem Browser PHP-Scripts
aufrufe, werde ich aufgefordert, die Dateien zu speichern.
</para>
</question>
<answer>
<para>
Das bedeutet das das PHP-Modul nicht aufgerufen wird. Sie
sollten folgende Dinge �berpr�fen:
<itemizedlist>
<listitem>
<simpara>
Stellen Sie sicher, das das httpd-Binary, das sie ausf�hren
das neue httpd-Binary ist, das sie compiliert haben. Um das zu tun
versuchen Sie, <literal>/path/to/binary/httpd -l</literal> auszuf�hren.
</simpara>
<simpara>
Wenn <filename>mod_php4.c</filename> nicht auftaucht, f�hren
Sie nicht das korrekte Binary aus. Finden und installieren Sie das
korrekte Binary.
</simpara>
</listitem>
<listitem>
<simpara>
Stellen Sie sicher, das die den korrekten Mime-Type in ihrer
<literal>Apache .conf</literal>-Datei angegeben haben. Er
sollte <literal>AddType application/x-httpd-php3
.php3</literal> (f�r PHP 3)
</simpara>
<simpara>
oder <literal>AddType application/x-httpd-php .php</literal>
(f�r PHP 4) lauten.
</simpara>
<simpara>
Stellen Sie ebenfalls sicher, das diese AddType-Anweisung
sich nicht in einem <Virtualhost> oderr <Directory> Block
befindet.
</simpara>
</listitem>
<listitem>
<simpara>
Der Standardplatz der Apache Konfigurationsdateien hat sich
von Apache 1.2 zu Apache 1.3 ver�ndert. Sie sollten sicherstellen, das
die Konfigurationsdatei, zu der sie die AddType-Anweisung hinzugef�gt
haben diejenige ist, die auch verarbeitet wird. Sie k�nnen einen
offensichtlichen Syntaxfehler oder eine andere eindeutige �nderung in
Ihre httpd.conf einfbauen, um dies zu �berpr�fen.
</simpara>
</listitem>
</itemizedlist>
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.activate-module">
<question>
<para>
Es heisst, es mu�
<literal>--activate-module=src/modules/php4/libphp4.a</literal>
benutzt werden, aber diese Datei existiert nicht, also habe ich es zu
<literal>--activate-module=src/modules/php4/libmodphp4.a</literal>
ge�ndert, aber es funktioniert nicht.
</para>
</question>
<answer>
<para>
Die Datei <filename>libphp4.a</filename> soll nicht existieren,
der Apache wird es generieren.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.ansi">
<question>
<para>
Wenn ich versuche, den Apache mit PHP als statisches Modul
mittels <literal>--activate-module=src/modules/php4/libphp4.a</literal> zu
compilieren, kommt die Fehlermeldung, mein Compiler sei nicht
ANSI-Konform.
</para>
</question>
<answer>
<para>
Das ist eine irref�hrende Fehlermeldung des Apache, die in
aktuellen Versionen behoben ist.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.apxs">
<question>
<para>
Wenn ich versuche, PHP mittels der Option
<literal>--with-apxs</literal> zu compilieren, bekomme ich komische
Fehlermeldungen.
</para>
</question>
<answer>
<para>
Hier sind drei Dinge zu �berpr�fen: Wenn Apache das apxs
Perlscript generiert, werden manchmal aus unerfindlichen Gr�nden nicht
die richtigen Compiler-Flags verwendet. �ffnen Sie Ihr apxs-Script und
�berpr�fen es auf Zeilen, die �hnlich wie folgende aussehen:
<programlisting>
<![CDATA[
my $CFG_CFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl
]]>
</programlisting>
Wenn Sie so etwas sehen, haben Sie Ihr Problem gefunden. �ndern
Sie die Zeilen wie folgt:
<programlisting>
<![CDATA[
my $CFG_CFLAGS_SHLIB = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = 'gcc'; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared); # substituted via Makefile.tmpl
]]>
</programlisting>
Das zweite m�gliche Problem kann unter Red Hat 6.1 und 6.2
auftauchen. Das apxs-Script, das Red Hat ausliefert ist fehlerhaft.
Suchen sie nach dieser Zeile:
<programlisting>
<![CDATA[
my $CFG_LIBEXECDIR = 'modules'; # substituted via APACI install
]]>
</programlisting>
�ndern Sie diese Zeile in
<programlisting>
<![CDATA[
my $CFG_LIBEXECDIR = '/usr/lib/apache'; # substituted via APACI install
]]>
</programlisting>
Zuguterletzt, wenn sie Apache neu installieren, f�gen Sie ein
<command>make clean</command> nach dem <command>./configure</command>
und vor dem <command>make</command> ein.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.microtime">
<question>
<para>
W�hrend des <command>make</command> bekomme ich Fehler in
microtime und jede Menge <literal>RUSAGE_</literal>-Zeugs.
</para>
</question>
<answer>
<para>
Wenn w�hrend des <command>make</command>-Teils der Installation
Probleme auftauchen, die wie folgt aussehen:
<programlisting>
<![CDATA[
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>
ist Ihr System besch�digt. Sie m�ssen Ihr
<filename>/usr/include</filename> reparieren, indem sie das
glibc-devel-Paket installieren, dessen Version mit der Ihrer glibc
�bereinstimmt. Das hat absolut nichts mit PHP zu tun. Um sich
selbst davon zu �berzeugen, f�hren Sie folgenden simplen Test durch:
<programlisting>
<![CDATA[
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
]]>
</programlisting>
Wenn hier Fehler auftachen wissen sie, das ihre include-Dateien
fehlen oder fehlerhaft sind.
</para>
</answer>
</qandaentry>
<qandaentry id="faq.build.upgrade">
<question>
<para>
Ich m�chte mein PHP aktualisieren. Wo kann ich die
<command>./configure</command>-Zeile finden, die von meiner aktuellen
PHP-Version verwendet wird?
</para>
</question>
<answer>
<para>
Entweder schauen sie in die
<filename>config.nice</filename>-Datei im Source-Tree ihrer aktuellen
PHP-Version nach, oder Sie f�hren folgendes Script aus:
<programlisting>
<![CDATA[
<?php phpinfo(); ?>
]]>
</programlisting>
Zu Beginn der Datei wird die
<command>./configure</command>-Zeile angezeigt.
</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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->