PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache 1.3.31 + PHP 5.0.2: Apache verarbeitet php files nicht



GreenShadow
21.10.04, 14:52
Ich hab auf meiner Slackware Box Apache 1.3.31 und PHP 5.0.2 installiert, bin dabei den INSTALL Files gefolgt. Mod_ssl 2.8.20 Hab ich ebenfalls installiert und auch erfolgreich zum Laufen gebracht.

Wenn mein Apache aber zu einer PHP File kommt, will er sie nicht verarbeiten sondern bietet sie mir zum Download an.

In meiner mod_php.ist folgendes bereits enthalten:


# Tell Apache to feed all *.php files through the PHP module
AddType application/x-httpd-php .php


Wieso macht er das dennoch nicht? Vielleicht liegt das daran, dass er die PHP Module nicht laden will, wenn das nicht fest im Apache enthalten ist. Er nimmt folgende Zeilen in der selben Config nämlich nicht wirklich an:


LoadModule php4_module /usr/local/apache/libexec/libphp5.so
AddModule mod_php5.c


Führe ich Apache aus kommt:


root@server:~# apachectl start
Syntax error on line 5 of /etc/apache/mod_php.conf:
Cannot load /usr/local/apache/libexec/libphp5.so into server: /usr/local/apache/libexec/libphp5.so: cannot open shared object file: No such file or directory
/usr/sbin/apachectl start: httpd could not be started


Ich habe aber auf dem ganzen System keine libphp5.so! Obwohl ich php doch compiled habe... Woran liegt das?

Ich geh grad die php.ini durch...
Wäre um jeden Beitrag dankbar, muss mysql nämlich noch zum laufen kriegen *g*

Vielen Dank im Vorraus,
MFG GreenShadow

Tomek
21.10.04, 15:01
Wie und mit welchen configure-Parametern hast du denn PHP kompiliert und installiert? Hast du vorher auch die Apache Entwicklerpakete installiert?

So wie es aussieht hast du PHP nur für die Shell kompiliert, aber eben nicht das Apache Modul.

tebas
21.10.04, 15:35
du musst beim configure für php den apache-modul-loader namens APache-eXtenSion-tool ("apxs" bzw. "apxs2" für apache 2) angeben

ein php-configure-beispiel von mir:


./configure \
--prefix=/u/ia02/s51366/testweb/php \
--with-mysql=/u/ia02/s51366/testweb/mysql \
--with-apxs2=/u/ia02/s51366/testweb/apache2/bin/apxs



um den apache2 zu übersetzen:


./configure \
--prefix=$HOME/web/apache2 \
--enable-php \
--with-mpm=worker
make all install



wobei ich dazu übergegangen bin alles nur noch per apt-get install zu machen ... selber kompilieren bringts nicht wirklich und patches einspielen für selbstgebautes ist auch zu viel arbeit :-)

GreenShadow
21.10.04, 15:55
Danke für die raschen Antworten :)

Ja also apxs hab ich schon berücksichtigt. Hab bei PHP Hab ich folgende Optionen verwendet:


./configure --with-mysql --with-apxys=/usr/local/apache/bin/apxs

Apache Entwicklerpakete? Welche meinste denn da?

Tomek
21.10.04, 16:53
Die Binary apxs und andere Dateien, die für die Kompilierung vom Apache-PHP-Modul notwendig sind, sind in dem Apache Entwicklerpaket.

GreenShadow
21.10.04, 17:09
Erm, ich installier doch von den Sourcen! apxs hab ich

tebas
21.10.04, 17:41
du musst _zuerst_ apache übersetzen, damit apxs verfügbar ist

und dannach sollte man ohne probleme php übersetzen und nutzen können

und apache muss auch installiert sein (make install), damit apxs gefunden wird

GreenShadow
21.10.04, 17:57
Jap. Apache installiert ( make install erfolgreich ). DANACH php installiert. War auch erfolgreich. Dennoch sind die Probleme vom Anfang nicht gelöst. Er findet die selben dateien nicht ( s. o. ).

tebas
21.10.04, 18:20
also, ich bin nicht gerade nen kernel-hacker und 100%ig kenn ich mich mit shared-objects auch nicht aus, deswegen mal wie ichs gemacht habe:

- mysql übersetzen
- apache installieren (s.o.)
- php übersetzen (s.o.)
- aus meiner httpd.conf/apache2.conf:


.....
LoadModule php4_module modules/libphp4.so
.....
AddType application/x-httpd-php .php
....

--> das ist alles im zusammenhang mit php außer dem index-ing (unwichtig hier)



da du geschrieben hast, dass du die php-files zum download angeboten bekommst, würd ich fast mal davon ausgehen, dass apache die endung ".php" nicht kennt --> dir fehlt die letzte zeile meines quotes oben ("AddType application/x-httpd-php .php")

zusätzlich ne fehlerquelle könnt ich mir noch vorstellen ist, dass die "LoadModul"-anweisung als pfad relativ vom ServerRoot ausgeht ... im allgemeinen also das apache-verzeichnis /usr/local/ oder sonstwas


eine zeimlich brauchbare anleitung:
htw (http://wwwbs1.informatik.htw-dresden.de/internet/apache/index.apache.html)
login: "htw"
passwd: "1997"
speziell die zeile Konfiguration von httpd.conf apache2.0.44 (http://wwwbs1.informatik.htw-dresden.de/internet/apache/conf.httpd.conf.html) hilft schnell


tebas

GreenShadow
21.10.04, 19:20
Vielen Dank erstmal, fuer deinen ausführlichen Beitrag! Noch dankbarer waere ich, wenn du meinen Post ganz oben besser lesen wuerdest...

Die beiden zeilen habe ich in meiner Config stehen.
Das "AddType application/x-httpd-php .php" ist drin.

Das lustige is aber, dass ich im ganzen System kein libphp4.so habe!!! Obwohl die php install keine Fehler baut beim compilen...



root@server:/etc/apache# apachectl start
Syntax error on line 5 of /etc/apache/mod_php.conf:
Cannot load /usr/local/apache/libexec/libphp5.so into server: /usr/local/apache/libexec/libphp5.so: cannot open shared object file: No such file or directory
/usr/sbin/apachectl start: httpd could not be started


Das habe ich oben aber auch schon mal geschrieben.....

Ich les mir grad deine Links durch. Danke fuer deinen Beitrag
GreenShadow

P.S.: Nochwas. Ich benutze Apache 1.3.31 *wiederhol*

DrachenKaiser
21.10.04, 19:44
Kannst du mal die mod_php.conf Posten?
In Zeile 5 Scheint ein Fehler zu sein.

GreenShadow
21.10.04, 19:51
Klar. Kein Thema. Ich sagte doch schon bereits, was da steht....



LoadModule php4_module /usr/local/apache/libexec/libphp5.so
AddModule mod_php5.c

# Tell Apache to feed all *.php files through the PHP module
AddType application/x-httpd-php .php

# This will display PHP files in colored syntax form. Use with caution.
AddType application/x-httpd-php-source .phps


Die Datei gibt es aber im GANZEN SYSTEM NICHT!!! *g*

DrachenKaiser
21.10.04, 19:57
LoadModule php4_module /usr/local/apache/libexec/libphp5.so
Steht in deiner mod_php.conf
So Wäre es richtig:
LoadModule php5_module /usr/local/apache/libexec/libphp5.so

GreenShadow
21.10.04, 20:14
Brachte exakt

=>> 0 <<=

Selbe Meldung, nur die Zahl ist anders *g*
Kommt schon, zusammen schaffen wir das doch....

DrachenKaiser
21.10.04, 21:00
Und was kommt Jetzt für eine Fehlermeldung?

GreenShadow
21.10.04, 21:21
Hallo? Sag mal hörst du mir überhaupt zu? Was heisst das denn, wenn ich sage "Selbe Meldung" !??! Scroll halt 5-6 Zeilen hoch und schau dir an was kam mein gott.... :mad:



root@server:/etc/apache# apachectl start
Syntax error on line 5 of /etc/apache/mod_php.conf:
Cannot load /usr/local/apache/libexec/libphp5.so into server: /usr/local/apache/libexec/libphp5.so: cannot open shared object file: No such file or directory
/usr/sbin/apachectl start: httpd could not be started


Lies dir doch durch, was ich hier so poste, wenn du mir schon helfen willst.

foolish
21.10.04, 21:39
hi,


Ja also apxs hab ich schon berücksichtigt. Hab bei PHP Hab ich folgende Optionen verwendet:

./configure --with-mysql --with-apxys=/usr/local/apache/bin/apxs


sollte das nicht --with-apxs sein also,

./configure --with-apxs=/usr/local/apache/bin/apxs

edit: apache 1 sry,

GreenShadow
21.10.04, 22:17
Japs. Warn tippfehler. Hab den Befehl fürs configurieren aus meinen Notizen hier reinkopiert...

foolish
21.10.04, 22:54
oki,

noch nen tip http://www.php.net/manual/en/install.unix.apache.php
vllt. hilfreich ...

tebas
21.10.04, 22:57
nicht so agro :-P


ich habe bei mir apache ca. 1 stunde vor php übersetzt:

ls -dl php apache2


drwxr-xr-x 15 s51366 ia02 4096 2004-03-25 17:54 apache2/
drwx--x--x 6 s51366 ia02 4096 2004-03-25 18:51 php


schauen wir nun in die apache-module rein:

ls -l apache2/modules/


-rw------- 1 s51366 ia02 8301 2004-03-25 17:51 httpd.exp
-rwxr-xr-x 1 s51366 ia02 2947412 2004-03-25 18:51 libphp4.so




also du machst was beim configure falsch, davon gehe ich aus !!
wenn du wirklich apache mit "--enable-php" UND php mit "--with-apxs2=/pfad/zu/apache2/bin/apxs" configurierst, dann findest du nach dem "make all install" zu php definitiv eine libphp4.so im apache/modules-verzeichnis

alle löschen --> apache configure;make all install --> schauen ob alle modules-verzeichnis da ist --> php configure;make all install

GreenShadow
21.10.04, 23:10
Hey, ich bin ganz ruhig :) Mich regt es nur auf, wenn jemand nicht liest, was ich schreibe, aber ok.

Hab mal php weggeputzt und komplett neu gemacht. Jetzt bin ich immerhin schon so weit, dass er mir die php dateien nicht mehr zum Download anbietet. Die Scripts will er aber dennoch nicht ausführen. Er verarbeitet die php files immernoch nicht. Die php config ist an ort und stelle *g*

Danke für die Antworten
MFG GreenShadow

P.S.: An tebas:
Ich use Apache 1.3.31. Da gibt es kein --enable-php. Und --with-apxs2 dementsrpechend auch nicht. *G* Bitte lies doch auch du, was ich poste....

foolish
21.10.04, 23:28
hi,


Note: Apache's default httpd.conf currently ships with a section that looks like this:

User nobody
Group "#-1"

Unless you change that to "Group nogroup" or something like that ("Group daemon" is also very common) PHP will not be able to open files.

Hast Du nach dem mal geguckt?

GreenShadow
21.10.04, 23:42
Jap, danke für den Tip. Der war halt wirklich mal wertvoll :)
Leider war es das nicht. Steht bei mir auf "nogroup"...