Apache2 und PHP5 laufen nicht zusammen

R

reiser

Neues Mitglied
Thread Starter
Dabei seit
26.10.2005
Beiträge
11
Reaktionspunkte
0
Hallo und guten Tag!

Vorweg 1:
Ich bin neu hier. Darum bitte ich schon einmal vorab um Nachsicht für die epische Breite meiner vielleicht naiv :eek: erscheinenden Fragen. (Wirklich unverzeihlich ist aber anscheinend meine Naivität, zu glauben, ich könnte mit einem Aufwand unter 100 Stunden einen Apache2-Server nebst PHP5 einrichten.)
> kopfkratz

Vorweg 2:
Meine Konfiguration:
PB 12" 887MHz, 1,125/100G, OS 10.4.2
Apache2: Complete Apache 2.0.52-Package von ServerLogistics
PHP: PHP 5.0.4 für Apache 2 von Entropy

Was war – was ist:
Mein Ziel: Weg von MAMP (ein großartiges Produkt aber eben nicht ganz so gut geeignet für den Server-Betrieb) und hin zu einer Installation von Apache, PHP und MySQL, die sich für den häuslichen Serverbetrieb eignet.
Auf einigen Umwegen (unter anderem hatte mir eine fehlgeschlagene WebMin-Installation die Rechte auf meinem Home-Verzeichnis zerschossen :() bin ich dann gestern dahin gekommen, dass Apache 1.3 (Apples Original) und PHP5 brav und auch im Netzwerk liefen.
Dann habe ich Apache2 und das entsprechende PHP5 für Apache2 installiert und neu gestartet – sicher ist sicher.

Ergebnis:

  1. Apache2 ist zwar aktiv und zeigt die Standardseite im DocumentRoot-Verzeichnis an ("Es klappt! Der Apache-Webserver ist auf dieser Website installiert" etc.), ABER
  2. Aufs Home-Verzeichnis kann nicht zugegriffen werden ("Safari kann die Seite "http://localhost/~xyz/" nicht öffnen, da Safari keine Verbindung zum Server „localhost“ aufbauen konnte.").
  3. PHP ist nicht vorhanden. Die entsprechende Anweisung
    Code:
    LoadModule php5_module  /usr/local/php5/libphp5.so
    führt zu einer Fehlermeldung beim Syntax-Check von apachectl:
    Code:
    Syntax error on line 286 of /Library/Apache2/conf/httpd.conf:
    Cannot load /usr/local/php5/libphp5.so into server: 
    Library not loaded: /opt/apache2/lib/libaprutil-0.0.dylib
    Referenced from: /usr/local/php5/libphp5.so
    Reason: image not found
  4. Apache2 startet nicht automatisch nach einem Reboot, lässt sich aber über die Apache2-PreferencePane von ServerLogistics manuell starten. Das Web-Sharing (Apache 1.3) ist ausgeschaltet und beide Einträge sind in /private/etc/hostconfig entsprechend gesetzt:
    Code:
    WEBSERVER=-NO-
    APACHE2=-YES-
  5. Wenn ich es in der Preference-Pane ausschalte, wird es dennoch weiter als "running" bezeichnet. Im Activity Monitor dagegen sind die httpd-Prozesse verschwunden, Apache ist also tatsächlich aus.

Woran liegt's?
  1. Vielleicht an der etwas sonderbaren Installation des Apache2-Pakets? Ich finde es jedenfalls merkwürdig,
    • das ServerRoot-Verzeichnis in die Library zu legen (/Library/Apache2) und
    • darin das DocumentRoot-Verzeichnis zu verstecken (/Library/Apache/htdocs).
    Nach allem, was ich in letzter Zeit über die Unix-Gepflogenheiten gelernt habe, gehören solche Sachen doch eher ins /usr/local-Verzeichnis, oder?
    Andererseits sind diese Verzeichnisse in httpd.conf referenziert und die Begrüßungsseite wird ja auch richtig dargestellt.
    Blöderweise kann man die Sache nur mit Einschränkungen nach /usr/local verschieben, weil die Pfade im Apache2-Preference-Panel anscheinend hardcodiert sind.
  2. Auch das UserDir-Verzeichnis ist in httpd.conf m. E. korrekt gesetzt:
    Code:
    UserDir Sites
  3. Natürlich liegen in meinem ~/Web-Sites-Verzeichnis auch die passenden html-Dateien (derzeit noch die Original-Seite von Apple und eine info.php).
  4. Die PHP-Installation von Entropy für Apache 1.3 schreibt ans Ende der httpd.conf einige Anweisungen:
    Code:
    Include /usr/local/php5/httpd.conf.php
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    DirectoryIndex index.html index.php
    Die zugehörige Include-Datei enthält folgende Statements:
    Code:
    LoadModule php5_module /usr/local/php5/libphp5.so
    <IfDefine !APACHE2>
    	AddModule mod_php5.c
    </IfDefine>
    Dagegen bleibt die httpd.conf im Apache2-Verzeichnis unberührt von der Installation des PHP2-Pakets für Apache2: Es taucht darin kein auf PHP bezogener Eintrag auf. Entsprechend wird PHP bei einem Reboot nicht gestartet.
  5. Diese Anweisungen in die httpd.conf für Apache2 zu kopieren bringt natürlich auch nichts, da Apache2 mit AddModule nichts mehr anfangen kann. Auch mit diesen Anweisungen wird PHP nicht gestartet.
  6. Die Rechte von UserDir sind m. E. auch richtig gesetzt:
    Code:
    drwxr-xr-x   14  reis  reis  476 Oct 27 23:08 sites

Wer bis hierher gelesen hat
… bekommt schon mal ein großes Dankeschön von mir und eine virtuelle Banane: banana !
Für jede Hilfe bin ich natürlich noch dankbarer.

reiser
 
welches apache2 worker modell benutzt du denn? php ist nicht wirklich thread-safe und die meinsten linux distros binden da ihre pakete an den prefork-worker...

Library not loaded: /opt/apache2/lib/libaprutil-0.0.dylib
sollte dir eigentlich sagen, warum er php4 nicht lädt, ist apr installiert?
 
Erstmal herzlichen Dank für die Antwort an oneOeight!

Vielleicht hast du (oder jemand anders) ja noch die Geduld, mir zu erklären, was die verschiedenen Hinweise bedeuten. Neugierig und gelehrig bin ich zur Genüge. Aber eben kein Insider.

  1. Zum ersten Teil der Antwort:
    oneOeight schrieb:
    welches apache2 worker modell benutzt du denn?
    Wenn ich wüsste, was ein "Apache2 worker modell" ist, könnte ich es dir sagen.
    (Die neuesten Ethno-Trends in der Fotografie mit Industriearbeitern indianischer Abstammung?) :D
    Im Ernst: Was ich weiß, ist folgendes: Die Distribution stammt von ServerLogistics und enthält die Apache-Version 2.0.52. Dass sie vom Mac-Installationsprogramm im /library-Verzeichnis abgelegt wird, hatte ich ja schon erwähnt.
  2. php ist nicht wirklich thread-safe und die meinsten linux distros binden da ihre pakete an den prefork-worker...
    Das hatte ich befürchtet…
    (Klar. Wenn PHP wirklich nicht fadensicher ist, sind die Linux-Bistros ja quasi gezwungen, ihre Pakete an etwas Anderem festzubinden, und sei es so ein armer Schlucker von Vorgabel-Arbeiter, die sowieso immer die Drecksarbeit machen müssen. Wahrscheinlich auch noch für 1 Euro/Stunde! :rolleyes:
    Verstehe ich richtig: Weil php entweder nicht multithread-fähig ist oder dabei nicht sicher läuft, gibt es bei den verschiedenen Distributionen unterschiedliche Runtime-Librarys, die diese Probleme umgehen?
  3. Library not loaded: /opt/apache2/lib/libaprutil-0.0.dylib sollte dir eigentlich sagen, warum er php4 nicht lädt.
    Sagt es mir aber nicht. Aber vielleicht verrätst du es mir?
    Übrigens geht es um PHP5 auf dem Mac. Ich verstehe nicht ganz, was mein Problem mit Linux-Distributionen zu tun hat, denn ich verwende Mac-Installationspakete, die ich – wie gesagt – von www.entropy.ch (PHP) bzw. von www.serverlogistics.de (Apache2) habe.
  4. Ist apr installiert?
    Wer oder was ist ein apr? (Ok, ok, ich halt schon meine Klappe.)
    Code:
    tcsh: apr: Command not found

Mal ganz dumm gefragt: Ist es eigentlich erforderlich, dass ich mir für die Installation der aktuellen Server-Software auf dem Mac meine Pakete selbst kompiliere? Ich meine, wenn die Straße, auf der ich fahren will, selbst asphaltieren muss, geht das ja noch in Ordnung, aber dass ich mir zuvor auch noch die Asphaltiermaschine bauen soll…

Es muss doch einen Mittelweg geben zwischen MAMP und einem selbst kompilierten Apache mit prefork-worker, work-arounds und einem Viertelpfund Compiler-Optionen. Oder bin ich da (wieder) zu naiv?

Und wie gesagt: Es geht um die Installation auf einem Mac mit OS 10.4.

Das heißt ja nicht, dass ich mich nicht einarbeiten will, im Gegenteil. Aber ich möchte dafür nicht das [blabla]das Rad neu erfinden[/blabla].

Vielen Dank trotzdem für die Antwort!!

reiser
 
[bump]Apache2 und PHP5 laufen nicht zusammen

Entschuldigung für's bumpen, ich tu's nur, weil mir ja keiner mehr antwortet <schluchz>, das Problem aber leider überhaupt noch nicht gelöst ist.

reiser
 
http://apr.apache.org/
weiß nicht, ob die pakete das mitliefern, aber anscheinend will ja irgendwas die lib laden, ist es jetzt dein selbst-kompiliertes (vielleicht hast da irgendwelche pfade beim configure falsch drin) oder sind es die pakete?
 
Apache2 und PHP5

Vielen Dank für den Link - jetzt weiß ich wenigstens, was und wozu apr gut ist: Offenbar bin ich nicht der Einzige mit dem Problem, dass Apache bei mir irgendwie was anderes macht als bei anderen.

Aber selbst kompiliert habe ich es NICHT, da hab ich mich vielleicht unklar ausgedrückt.

Hat es denn für einen "user" wie mich (also kein abgehärteter nerd) überhaupt Sinn, das Compilieren zu versuchen?

Also, die Developer Tools hab ich ja auf meinem PB drauf und habe auch vor 100 Jahren mal einige Tutorials-Kapitel mit Code Warrior durchgeackert. Aber wenn die Sourcen so generisch sind, muss man da ja erst noch zig Konstanten anpassen und Flags setzen usw. Ich weiß ja nicht … :/

Trotzdem nochmals vielen Dank für die Antwort. Und wenn jemand noch 'nen Tipp für die Konfiguration von Apache2 und PHP5 haben, immer her damit! Oder auch eine alternative Bezugsquelle für Apache2, denn, wie gesagt, meine hab ich von ServerLogistics, und die ist anscheinend noch auf Panther ausgerichtet.

Gruß

reiser
 
Gibts jetzt eine Lösung php5 von entropy mit dem apache2 zum laufen zu bringen?
Hab keine Ahnung wo i ansetzen soll, wenn ich den apache selbst kompilieren soll.


Jens
 
Zurück
Oben Unten