PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php - komm nicht weiter



fons
05.07.02, 12:19
also ich will php installieren
www.baach.de bringt mich nicht weiter


folgendes:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-versioning --enable-track-vars=yes --enable-url-includes --enable-sysvshm=yes --enable-sysvsem=yes --with-config-file-path=/etc

geht soweit alles

make fängt er auch an und rattert bis das kommt:

/bin/sh /usr/local/src/php-4.2.1/libtool --silent --mode=compile gcc -I. -I/usr/local/src/php-4.2.1/sapi/apache2filter -I/usr/local/src/php-4.2.1/main -I/usr/local/src/php-4.2.1 -I/usr/local/apache2/include -I/usr/local/src/php-4.2.1/Zend -I/usr/local/src/php-4.2.1/ext/mysql/libmysql -I/usr/local/src/php-4.2.1/ext/xml/expat -D_REENTRANT -I/usr/local/src/php-4.2.1/TSRM -DTHREAD=1 -g -O2 -pthread -DZTS -prefer-pic -c php_functions.c
php_functions.c:93: parse error
make[3]: *** [php_functions.lo] Error 1
make[3]: Leaving directory `/usr/local/src/php-4.2.1/sapi/apache2filter'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/php-4.2.1/sapi/apache2filter'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/php-4.2.1/sapi'
make: *** [all-recursive] Error 1

was muss ich hier noch machen?
was ist das sapi genau?
was fehlt wenn das gehen würde? (httpd.conf <--< module hinzufügen)

fons
05.07.02, 13:41
was macht sapi?

Vito
05.07.02, 15:37
Ciao,

bin zwar ein blauäugiger Newbie, aber wenn ich PHP + Apache + Probleme hören denke ich an diese Threads:

http://www.linuxforen.de/forums/showthread.php?s=&threadid=35826&pagenumber=2
und
http://www.linuxforen.de/forums/showthread.php?s=&threadid=34870&perpage=15&pagenumber=2

Vielleicht liegt da ja die Antwort :)

Ciao Vito

stefaan
05.07.02, 16:48
Servus!

Schau einmal die Newsgroups durch, da gibts was dazu:
Google groups (http://groups.google.at/groups?hl=de&lr=&ie=ISO-8859-1&q=php-4.2.1%2Fsapi%2Fapache2filter)
Habs nur ueberflogen, kann aber ein Bug sein, wenn du Apache Version 2 verwendest.

Gruesse aus Kanada,
Stefan

fons
11.07.02, 17:02
@stefaan

es ist echt ein bug, also das denk ich mal, weil mit der alten version is es ohne probleme gegangen

THX

quinte17
11.07.02, 17:09
öffne die datei:
phpSRC/sapi/apache2filter/php_functions.c

gehe zur zeile 93 und ändere sie wie folgt ab:

#if MODULE_MAGIC_NUMBER < 20020506

dann sollte php auch durchlaufen... es ist nur ein kleiner bug der nichtmal viel ausmacht... viel spaß noch
mit apache 2.0.39 und php 4.2.1

cu

fons
11.07.02, 18:13
jetzt mal im ernst
wie kommt man auf sowas?
bzw wo stand das?
oder bist du phpentwickler? oderso?

Vito
12.07.02, 07:09
Ich denke die Antwort ist diese von Pitu:


Original geschrieben von pitu
Hi Guru, leider hab ich es am montag zu spaet erfahren, und gestern, war aj Linuxforen anscheinend down.

Also, du hast deine Version vom ftp-Server. Laut meinen Informationen hat SuSE bisher davon nix gewusst. Wie auch, ftp-Versionan haben schliesslich keinen Support ;)

Das Problem ist also tatsaechlich soetwas wie ein Bug, nicht in PHP sondern im mm-Modul. Nur ein kleiner, aber ein ziemlicher Mist. Und zwar holt sich das mm-Modul zur COMPILEzeit seine Informationen darueber, wieviel Momory es sich krallen darf. Nicht zur Laufzeit. Frueher war das Maximum 32 MB. heute liegt es bei 64 MB.

Das Modul holt sich die Infos, wieviel es verwenden darf also zur Compile-Zeit aus dem Kernel:
/proc/sys/kernel/shmmax
Ich hab z.B. auch 32 MB drinstehen.

So, PHP ist nun mit mm-modul support compiliert worden und hat den Wert des Rechners bei SuSE drinstehen. Die Kiste war wohl etwas groesser, weswegen mm mit 64 MB angegeben ist. PHP, anstatt seinen eigene Version zu verwenden verlaesst sich nun auf das MM-Modul und sagt mm-modul, "gib mir soviel wie ich kriegen kann". Und das mm-modul sagt dan "64 MB" worauf hin php versucht 64 MB zu kriegen, der Kernel aber nur 32 MB erlaubt.

Und bumms.

Nun, dass dieses Paket auf dem ftp-Server liegt war ein Versehen und bisher wussten sie darueber noch nix. Denn in der Version die auf CD ausgeliefert wurde, war dieser Fehler behoben, indem das mm-module mit dem System default von 32 compiliert wurde.
Damit dies geht musste es uebrigens hard eincompiliert werden. Im chanchlog zum mm-Paket solltest du mehr finden.

Also, mm-modul updaten, dann sollte es gehen. Wenn du allerdings eine Maschiene hast, die soviel Speicher hat, dass du einen hoeheren shmax-Wert vertragen kannst, dann kannst du auch folgendes machen:

echo $((64*1024*1024)) >/proc/sys/kernel/shmmax

Also, entweder dies, oder das Paket vom ftp-Server updaten. seit gestern ist das Paket uebrigens auf dem ftp-server:
ftp://ftp.suse.com/pub/people/poeml/8.0/mm-1.1.3-278.i386.rpm

So, hier war nix mit kaputter konfig etc von SuSE und mit tollem rumgerede hat man es loesen koennen. Hier hat einfach das mm-Modul einen Fehler und ein Update mit einem workaround liegt auf dem ftp-Server.

pitu

Quelle: ist aus dem oben geposteten (der erste) Link von mir!

Ciao Vito (das sich gerne belehren lässt, falls dem nicht so ist :) )

quinte17
12.07.02, 08:26
dass was du oben gepostet hat, hatte nicht soviel damit zu tun... hier war ja nicht dass problem, dass ein vorkompiliertes paket nicht ging, sondern einfacch mal die erfahrung zu machen, den apache selbst zu compilieren, da entsteht ein solches problem im normalfall nicht...
da gibts nur 2 arten von probs, 1. configure läüft nicht durch... = ein benötigtes programm/bibliothek kann nicht gefunden werden einfach nachinstallieren problem gelöst...
2. make läuft nicht durch... viel kann man da meist auch nicht machen... liegt dann nähmlich am quellcode... wenn man ein wenig erfahrung und zeit hat, dann kann man den fehler meist recht schnell finden und beheben... aber im normalfall sollte man diese lösung nicht wählen, sondern auf eine neue version abwarten, und hoffen dass der fehler dann weg is...


cu
quinte17

fons
30.08.02, 14:52
ich glaub der fehler ist bei der 4.2.2 auch noch nicht weg