Apache2 und PHP5 laufen nicht zusammen

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von reiser, 28.10.2005.

  1. reiser

    reiser Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    Registriert seit:
    26.10.2005
    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 :o 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
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.803
    Zustimmungen:
    3.632
    Registriert seit:
    23.11.2004
    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?
     
  3. reiser

    reiser Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    Registriert seit:
    26.10.2005
    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:
      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. 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. 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. 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
     
  4. reiser

    reiser Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    Registriert seit:
    26.10.2005
    [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
     
  5. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.803
    Zustimmungen:
    3.632
    Registriert seit:
    23.11.2004
    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?
     
  6. reiser

    reiser Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    Registriert seit:
    26.10.2005
    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
     
  7. stenser

    stenser MacUser Mitglied

    Beiträge:
    777
    Zustimmungen:
    2
    Registriert seit:
    21.10.2003
    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
     
Die Seite wird geladen...

Diese Seite empfehlen