Ich
habe
mir
die
aktuellste
Version
von
PHP
mit
Hilfe
des
Anonymous-CVS-Dienstes
besorgt
,
kann
aber
kein
configure-Script
finden
.
Sie
müssen
das
GNU
autoconf-Paket
installiert
haben
,
damit
das
configure-Script
aus
configure.in
generiert
werden
kann
.
Mittels
.
/
buildconf
im
Hauptverzeichnis
des
vom
CVS-Server
gezogenen
Source-Trees
wird
das
configure
-Script
generiert
.
Es
ist
zu
beachten
,
dass
das
configure-Script
bei
einer
geänderten
configure.in
nicht
neu
generiert
wird
,
es
sei
denn
,
configure
wird
mit
dem
Parameter
--enable-maintainer-mode
Es
ist
zu
beachten
,
dass
das
configure-Script
bei
einer
geänderten
configure.in
nicht
neu
generiert
wird
,
es
sei
denn
,
configure
wird
mit
dem
Parameter
--enable-maintainer-mode
aufgerufen
.
Es
sollte
also
darauf
geachtet
werden
,
dass
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
config.status
ausgeführt
wurde
.
Ich
habe
Probleme
.
PHP
für
den
Apache
zu
konfigurieren
.
Er
beschwert
sich
,
dass
er
die
Datei
httpd.h
nicht
finden
kann
,
obwohl
sie
sich
genau
dort
befindet
,
wo
ich
es
angegeben
habe
.
Sie
müssen
dem
configure
/
setup-Script
die
Top-Level-Pfad
des
Apache-Source-Trees
mitteilen
.
Das
bedeutet
,
dass
z.B
.
--with-apache=
/
path
/
to
/
apache
korrekt
ist
,
--with-apache=
/
path
/
to
/
apache
/
src
jedoch
nicht
.
Es
ist
möglich
,
das
configure-Script
so
anzupassen
,
dass
es
nicht
nur
in
Standard-Pfaden
nach
Headerdatei
und
Bibliotheken
sucht
,
in
dem
dem
C
Präprozessort
und
Linker
zusätzliche
Flags
übergeben
werden
:
Wenn Sie (aus welchem Grund auch immer) eine csh-Variante
als Login-Shell verwenden:
Wenn
die
Datei
language-parser.tab.c
compiliert
wird
,
erscheinen
Fehler
,
die
yytname
undeclared
besagen
.
Wenn
ich
make
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
.
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
cp
*.o
functions
die
Dateien
an
der
vorgesehenen
Platz
kopieren
,
und
anschließend
make
Versuchen
Sie
,
das
Problem
zu
lösen
,
indem
sie
zunächst
mittels
cp
*.o
functions
die
Dateien
an
der
vorgesehenen
Platz
kopieren
,
und
anschließend
make
noch
einmal
ausführen
.
Sollte
es
dann
funktionieren
,
empfehlen
wir
,
Ihre
Version
von
GNU
make
zu
aktualisieren
.
Wenn
PHP
gelinkt
wird
,
berschwert
es
sich
über
undefinierte
Referenzen
.
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
.
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
INSTALL
File
Ihrer
Distribution
.
Einige
Leute
haben
berichtet
,
dass
sie
'
-ldl
'
unmittelbar
nach
libphp4.a
einfügen
mußten
,
wenn
sie
PHP
mit
Apache
gelinkt
haben
.
Wie
wird
PHP
mit
Apache
1.3.x
compiliert
?
Folgen
Sie
diesen
Schritten
:
-
Besorgen
Sie
sich
die
letzte
Version
von
Apache
unter
http
:
/
/www.apache.org
/
dist
/
.
-
Entpacken
Sie
die
Datei
zum
Beispiel
unter
/
usr
/
local
/
src
/
apache-1.3
.
-
Compilieren
Sie
zunächst
PHP
,
zum
Beispiel
mit
.
/
configure
--with-apache=
/
path
/
apache-1.3
(
ersetzen
Sie
path
mit
dem
Pfad
zu
Ihrem
apache-1.3-Verzeichnis
.
-
Führen
Sie
make
,
gefolgt
von
einem
make
install
aus
,
und
kopieren
die
benötigten
Dateien
in
den
Apache-Tree
.
-
Wechseln
Sie
in
das
Verzeichnis
/
path
/
apache-1.3
/
src
und
bearbeiten
die
Datei
Configuration
.
Fügen
Sie
AddModule
modules
/
php4
/
libphp4.a
hinzu
.
-
Führen
Sie
.
/
Configure
,
gefolgt
von
make
aus
.
-
Nun
sollte
eine
lauffähig
Version
eines
PHP-fähigen
Apaches
compiliert
sein
.
Bitte
beachten
Sie
:
Sie
können
auch
das
neue
Apache
.
/
configure
-Script
nuten
.
Weitere
Informationen
dazu
finden
sie
in
der
Datei
README.configure
,
die
der
Apache-Distribution
beiliegt
.
Auch
in
der
Datei
INSTALL
Ihrer
PHP-Distribution
finden
sich
Informationen
dazu
.
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
.
Das
bedeutet
das
das
PHP-Modul
nicht
aufgerufen
wird
.
Sie
sollten
folgende
Dinge
überprüfen
:
-
Stellen
Sie
sicher
,
dass
das
httpd-Binary
,
das
Sie
ausführen
,
tatsächlich
das
neue
httpd-Binary
ist
,
das
sie
compiliert
haben
.
Um
das
zu
tun
versuchen
Sie
,
/
path
/
to
/
binary
/
httpd
-l
auszuführen
.
Wenn
mod_php4.c
Wenn
mod_php4.c
nicht
auftaucht
,
führen
Sie
nicht
das
korrekte
Binary
aus
.
Finden
und
installieren
Sie
das
korrekte
Binary
.
-
Stellen
Sie
sicher
,
dass
Sie
den
korrekten
Mime-Type
in
ihrer
Apache
.conf
-Datei
angegeben
haben
.
Er
sollte
AddType
application
/
x-httpd-php3
.php3
(
für
PHP
3
)
oder
AddType
application
/
x-httpd-php
.php
(
für
PHP
4
)
lauten
.
Stellen
Sie
ebenfalls
sicher
,
dass
diese
AddType-Anweisung
sich
nicht
in
einem
Virtualhost
oder
Directory
Block
befindet
.
-
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
.
Es
heisst
,
es
muß
--activate-module=src
/
modules
/
php4
/
libphp4.a
benutzt
werden
,
aber
diese
Datei
existiert
nicht
,
also
habe
ich
es
zu
--activate-module=src
/
modules
/
php4
/
libmodphp4.a
geändert
,
aber
es
funktioniert
nicht
.
Die
Datei
libphp4.a
soll
nicht
existieren
,
der
Apache
wird
es
generieren
.
Wenn
ich
versuche
,
den
Apache
mit
PHP
als
statisches
Modul
mittels
--activate-module=src
/
modules
/
php4
/
libphp4.a
zu
compilieren
,
kommt
die
Fehlermeldung
,
mein
Compiler
sei
nicht
ANSI-Konform
.
Das
ist
eine
irreführende
Fehlermeldung
des
Apache
,
die
in
aktuellen
Versionen
behoben
ist
.
Wenn
ich
versuche
,
PHP
mittels
der
Option
--with-apxs
zu
compilieren
,
bekomme
ich
komische
Fehlermeldungen
.
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
:
Wenn Sie so etwas sehen, haben Sie Ihr Problem gefunden.
Ändern Sie die Zeilen wie folgt:
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:
Ändern Sie diese Zeile in
Zuguterletzt, wenn sie Apache neu installieren, fügen Sie
ein
make clean
nach dem
./configure
und vor dem
make
ein.
Während
des
make
bekomme
ich
Fehler
in
microtime
und
jede
Menge
RUSAGE_
-Zeugs
.
Wenn
während
des
make
-Teils
der
Installation
Probleme
auftauchen
,
die
wie
folgt
aussehen
:
ist
Ihr
System
beschädigt
.
Sie
müssen
Ihr
/
usr
/
include
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
:
Wenn hier Fehler auftauchen, wissen sie, dass Ihre
include-Dateien fehlen oder fehlerhaft sind.
Ich
möchte
mein
PHP
aktualisieren
.
Wo
kann
ich
die
.
/
configure
-Zeile
finden
,
die
von
meiner
aktuellen
PHP-Version
verwendet
wird
?
Entweder
schauen
sie
in
die
config.nice
-Datei
im
Source-Tree
ihrer
aktuellen
PHP-Version
nach
,
oder
Sie
führen
folgendes
Script
aus
:
Zu Beginn der Datei wird die
./configure
-Zeile angezeigt.
Wenn
ich
PHP
mit
der
GD-Library
compiliere
,
tauchen
seltsame
Compilerfehler
auf
oder
PHP
startet
nicht
.
Stellen
Sie
sicher
,
dass
PHP
und
die
GD-Library
gegen
die
selben
Bibliotheken
wie
libPNG
gelinkt
sind
.