Apache 2.0

  • Hallo Lutz,
    deine Antworten sind immer so vielversprechend, aber wenn ich dann versuche sie umzusetzen muss ich leider immer feststellen, dass es wohl doch nicht so einfach ist.
    OK, fangen wir mal an.
    php.ini: welche der vielen denn? Ich habe mich für die entschieden:

    Code
    /share/HDA_DATA/.qpkg/Optware/etc/php.ini


    Dort gibt es auch den besagten Abschnitt mit den extensions, wo ich dann auch curl und imap hinzugefügt habe. Nach Starten des Apache2 waren diese allerdings immer noch nicht in der phpinfo aufgelistet.
    In der phpinfo steht als "Loaded Configuration File" allerdings diese Datei

    Code
    /mnt/HDA_ROOT/.config/php.ini


    In dieser Datei allerdings gibt es kein extension Bereich. Dort scheint jedes Modul in eckigen Klammern aufgelistet zu sein. Falls das die richtige Datei seien sollte, wie müssten dann die entsprechenden Einträge aussehen?
    apache.conf: auch hier die Frage, welche denn? Im apache2 Verzeichnis gibt es nur eine http.conf, in welcher es aber kein StartServers gibt.


    Mal noch eine andere Frage, ist es richtig, dass der apache2 mit

    Code
    httpd -k start


    gestartet wird? Für was steht denn die Option -k?
    Ich denke aber so kurz vor dem Ziel werden wir das schon schaukeln.
    Danke!


    Ciao Stefan :)

  • Ich bin es nochmal.
    Also das mit dem Webserver, egal ob der vorinstallierte Apache oder ein Apache2 oder gar ein anderer Webserver, ist ja die eine Sache, aber wo ich noch gar nicht durchgestiegen bin ist die Erweiterung von PHP. Gerade wenn man aus der Windows-Welt kommt, wo man die EINE php.ini editiert und die entsprechenden Extensions einfach auskommentiert/aktiviert, fühlt man sich unter Linux ein bisschen hilflos. Zum Einen gibt es mehrere php.ini Dateien in unterschiedlichen Verzeichnissen, wo man nicht weiß, welche die richtige ist und zum Anderen scheint das mit den Extensions auch etwas anders zu sein. Wie ich bereits geschrieben habe, gibt es diesen Extensions Bereich gar nicht (zumindest nicht in der gewohnten Form) in einigen php.ini Dateien. Des weiteren frage ich mich, wie das mit diesem ./configure Command ist. Normalerweise würde ich erwarten, und ich vermute dass es wahrscheinlich auch so ist, das sich diese Konfigurationszeile je nach installierten Modulen bzw. angepasster php.ini selbst anpasst.
    Wie gesagt, leider habe ich das noch nicht geschafft. Der Output von phpinfo zeigt nachwievor keine Veränderungen bzw. neue zusätzliche PHP Module.
    Kann mir das vielleicht nochmal jemand Schritt für Schritt erklären, vor allem wie das im speziellen auf einem QNAP funktioniert. Es gibt ja auch diverse Anleitungen im Internet für die unterschiedlichsten Distributionen, aber auf einem QNAP scheint es dann doch nochmal etwas anders zu sein.
    Danke!


    Ciao Stefan :)

  • Ok, nochmal alles schön langsam und mit Verstand durchgegangen.
    Ich denke ich habe jetzt erfolgreich Lighttpd + PHP (als FastCGI) + MySQL + ein paar zusätzliche Module installiert.
    Eine kleine Anleitung werde ich die Tage sicher noch nachreichen.
    Aber etwas verwundert mich gerade noch.
    Zunächst hatte ich Lighttpd + PHP standardmäßig installiert und die phpinfo wurde ordnungsgemäß angezeigt. Danach hatte ich dann noch php-curl, php-gd, php-imap & php-mysql installiert, so dass danach die entsprechenden *.so Dateien im Extension-Verzeichnis lagen. Nun hatte ich die php.ini entsprechend angepasst und diese vier zusätzlichen Extensions hinzugefügt. Server neu gestartet und was passierte? Ein HTTP Response Code 500.
    Dacht ich mir biste mal wieder clever und kommentierst die vier Extension Zeilen nochmal aus. Server wieder neu gestartet und die phpinfo wird wieder sauber angezeigt. Puh, Glück gehabt.
    Jetzt kommt's aber: die vier Module werden im Output als aktiv aufgelistet.
    Kann mir das bitte jemand erklären? Ist das noch irgendwo gecached?
    Danke!


    :EDIT: musste leider feststellen, dass mir der Lighttpd öfters abschmiert.
    Wie kann ich denn verifizieren, an was das liegen könnte? Im error.log steht zumindest schonmal nix drin.
    Wenn ich mir die Prozesse mit ps anzeigen lasse, ist der lighttpd auch nicht mehr zu sehen.


    Ciao Stefan :)

  • Zitat von "Loewe81"

    Jetzt kommt's aber: die vier Module werden im Output als aktiv aufgelistet.
    Kann mir das bitte jemand erklären? Ist das noch irgendwo gecached?


    Habe gestern abend herausgefunden an was das liegt, PHP ließt zusätzlich Konfigurationen aus diesem Verzeichnis:

    Code
    /opt/etc/php.d


    Und darin befindet sich von jedem zusätzlich installierten PHP-Modul eine entsprechende ini-Datei mit dem Inhalt:

    Code
    extension=modul.so


    Da meine Versuche mit Lighttpd doch auch ernüchternd waren, habe ich mich gestern abend nochmal an den Apache2 gemacht, wo mir ja quasi eigentlich nur noch das Einbinden zusätzlicher Module gefehlt hat. Nach Aktivierung des Apache2 mit PHP und einem Blick in den phpinfo-Output musste ich feststellen, dass das imap-Modul geladen war, jedoch die anderen Module wie curl oder gd noch nicht. Demnach habe ich dann mal nach der imap.so gesucht und tatsächlich im Vergleich zu curl und gd ZWEI Treffen gefunden. Der Apache2 scheint nachwievor die standard PHP-Installation und entsprechend dessen Extension-Verzeichnis zu nutzen, wo das imap-, jedoch noch nicht das curl- und gd-Modul vorhanden war(en). Also habe ich dann mal schnell die curl.so, gd.so, mysql.so und mysqli.so dort hin kopiert. Und siehe da, nun werden auch diese Module im phpinfo-Output aufgelistet.
    Es ist also doch gar nicht so schwer.


    Ok, jetzt brauche ich aber noch ein paar zusätzliche Modifikationen. Bei meinem PHP-Code bekomme ich nun diese Fehlermeldung:

    Code
    Call to undefined function utf8_encode()


    Nach etwas googlen scheint es wohl am --disable-xml Parameter zu liegen, mit dem PHP aktuell configuriert ist. Wie kann ich das denn ändern?
    Vermutlich am besten, in dem ich PHP neu, ohne diesen Parameter, konfiguriere. Aber wie mache ich das bzw. in welchem Verzeichnis kann ich diesen ./configure Befehl ausführen?
    Danke!


    Ciao Stefan :)

  • Ich habe gerade mal folgendes eingegeben:

    Code
    find / -type f -name *php* | xargs grep disable-xml


    Als Ergebnis habe ich die Datei /opt/libexec/libphp5.so identifizieren können. Diese kann ich nun aber nicht so ohne weiteres editieren oder durch eine andere libphp5.so (nämlich z.B. die unter /mnt/HDA_ROOT/apache/libexec/libphp5.so) ersetzen. Auf einem "richtigen" Linux System müsste ich ja im PHP-Installationsverzeichnis den configure-Befehl mit entsprechend geänderten Parametern aufrufen und dann neu kompilieren. Aber ich vermute mal, dass das so auf dem QNAP nicht funktioniert. Ich hoffe aber, dass es überhaupt funktioniert und nun nicht schon wieder an so einer Kleinigkeit hängt.


    :EDIT: zusätzlich musste ich gerade feststellen, dass leider kein SSL im Registered Stream Socket Transports aufgelistet wird. Ich vermute mal das kommt vom fehlenden openssl. Dies ist allerdings via ipkg bereits installiert. Wie binde ich das also in PHP/Apache ein? Wahrscheinlich mit einem --with-openssl, womit wir wieder bei meinem ersten Problem wären.


    :EDIT2: Das openssl-Problem konnte ich dann doch ausnahmsweise recht schnell und einfach lösen. Wie gesagt war openssl bereits durch die Installation von php mitinstalliert worden. Entsprechend gab es auch eine openssl.so Datei. Diese habe ich ins richtige Extension-Verzeichnis kopiert und in der ini geladen. Wird nun sauber in phpinfo angezeigt.


    Danke!


    Ciao Stefan :)

  • Konnte mein xml und openssl Problem lösen. Nix mit PHP Neukompilieren. Einfach die entsprechende dom.so, xml.so & openssl.so per Extension in PHP einbinden.
    Was mir dabei aber aufgefallen ist, PHP ließt als zusätzliches Verzeichnis für weitere .ini Dateien das ein:

    Code
    /opt/etc/php.d


    Das "Loaded Configuration File" ist aber nachwievor:

    Code
    /mnt/HDA_ROOT/.config/php.ini


    Dies ist doch aber vom Standard-PHP und nicht von dem nachinstallierten PHP, wo die .ini Datei hier liegt:

    Code
    /opt/etc/php.ini


    Entsprechend wird als Extension-Verzeichnis auch

    Code
    /usr/local/apache/libexec


    anstatt

    Code
    /opt/lib/php/extensions


    verwendet.
    Hat jemand ne Ahnung an was das liegt bzw. wie man das grade ziehen kann?
    So muss ich nämlich zur Zeit alle .so-Dateien nochmal händisch in das libexec-Verzeichnis kopieren. Es funktioniert zum Glück, aber so richtig glücklich bin ich damit nicht.
    Danke!


    Ciao Stefan :)

  • So ich hätte dann mal noch eine Frage zur IMAP-Extension.
    Aktuell wird in der phpinfo lediglich eine Zeile ausgegeben:

    Code
    IMAP c-Client Version 	2007a


    Ich bräuchte allerdings noch den SSL Support enabled. Kann ich das nachträglich noch ändern/installieren? Geht das überhaupt mit dieser IMAP-Version oder brauche ich da eine aktuellere Version und wo könnte ich die herbekommen?
    Danke!


    Ciao Stefan :)

  • ERASER EMC2


    Guten Tag
    Ich bin ja echt froh um Dein know-how, das Du hier vermittelst. Hingegen: Obwohl ich Deine Ratschläge befolge, entstehen Fragen über Fragen (und funzen tut seit wochen nichts):
    chroot für Apache2 (start). Wieso behauptet mein QNAP 209 II pro, dass diese Files nicht existieren obwohl sie da sind?
    Apache startet niemals, egal wie man den chroot formuliert:


    [~] # chroot /opt/etc/init.d/S80apache start
    chroot: cannot change root directory to /opt/etc/init.d/S80apache: Not a directo ry
    [~] # chroot share/HDA_DATA/optware /opt/etc/init.d/S80apache start
    chroot: cannot change root directory to share/HDA_DATA/optware: No such file or directory
    [~] # chroot share/HDA_DATA/Optware /opt/etc/init.d/S80apache start
    chroot: cannot change root directory to share/HDA_DATA/Optware: No such file or directory
    [~] # chroot /share/HDA_DATA/.qpkg/Optware etc/init.d/S80apache start
    chroot: cannot execute etc/init.d/S80apache: No such file or directory
    [~] # chroot /share/HDA_DATA/.qpkg/Optware/etc/init.d/S80apache start
    chroot: cannot change root directory to /share/HDA_DATA/.qpkg/Optware/etc/init.d /S80apache: Not a directory
    [~] # chroot /share/HDA_DATA/.qpkg/Optware/etc/init.d S80apache start
    chroot: cannot execute S80apache: No such file or directory


    Zudem gibt es ja an 1000 orten in diesem TS 209 ein config file für Apache - für einen nicht Linux die absolute Verwirrung. Welches ist denn nun dasjenige welche?


    Da ich nun schon eine Woche (!) dran sitze, versuch' ich nun doch noch das Forum - ich hab das ganze Web abgeklappert nach Tutorials oder Hints. Keine Chance.


    Ganz zu Schweigen vom Einrichten des autorun.sh: Wo liegt dieses? Was muss da genau drin stehen? ist das eine bestehende Datei, die ergänzt werden muss, eine neu zu erstellende? Fragen über Fragen. Bin echt nirgends fündig geworden.



    Für ein allfälliges RE danke ich schon jetzt.





    Zitat von "Eraser-EMC2-"

    Zum starten von Apache muß du dann nur

    Code
    chroot /share/HDA_DATA/optware /opt/etc/init.d/S80apache start

    eingeben,
    bzw. es in die autorun.sh eintragen, damit der Apache auch bei jedem start des NAS mitstartet.


    Code
    mount -t ext2 /dev/mtdblock5 /tmp/config
    vi /tmp/config/autorun.sh
    umount /tmp/config


    Die Config-Datei vom Apache findest du dann unter /opt/etc/apache2/httpd.conf .

  • Hallo,


    das mit dem chroot ist eigentlich mit dem neuen Optware Vergangenheit.


    Zitat von "powelli"

    Wieso behauptet mein QNAP 209 II pro, dass diese Files nicht existieren obwohl sie da sind?


    Inzwischen solltest du den apache schon alleine mit

    Code
    /opt/etc/init.d/S80apache

    starten können.


    Zitat von "powelli"

    Zudem gibt es ja an 1000 orten in diesem TS 209 ein config file für Apache -


    Die configs für alle IPKG/Optware-programme liegen in /opt/etc .


    Hoffe, dass es dich eine Schritt weiter bringt.


    Stefan

  • Hallo,


    habe mal ein Frage in die ganz andere Richtung!


    ich hatte Apache2 via IPKG am laufen bzw. zur zeit noch immer.
    Darauf lief eine groupware mit php, mysql usw. alles in der Optware.


    Das benötige ich alles nicht mehr. ich habe den Eindruck das durch den Server die festplatten am laufen gehalten werden.
    Daher möchte ich das alles wieder los werden. Aber natürlich so, das der Qnap den Rest normal ausführt.


    Wie kann ich das alles Entfernen? Möchte ungerne etwas löschen? Nachher fährt der Qnap nicht mehr hoch und dann stehe ich da..