Kyp: Apache Linux Prob

Hiho

ich hab nen Apache auf meinem Debian System installiert, nun kann ich aber mit http://localhost nur sachen aufrufen die im root verzeichniss von apache liegen. Wenn ich z.B. http://localhost/www/index.html aufrufen möchte kann er diese nicht öffnen (er verbietet es) wie kann ich das umstellen? Des weiteren habe ich noch probleme mit PHP. eine PhP Seite zeigt er mir gar nicht an, obwohl ich sie im root liegen hab und alle notwendigen pakete installiert habe.

Hoffe mir kann jemand helfen

DAnke schon mal

  1. Hi,

    ich gehe mal davon aus, dass die datei www/index.html exisitiert, beziehungsweise via alias "virtuell" ins root verzeichnis des apachen gelegt wurde.

    Hast du überprüft, ob der apache leserechte auf die datei hat?

    bei einer apache installation kann es durchaus passieren, dass dateien unter falscher berechtigung angelegt werden.

    prinzipiell ist es sinnvoll, den apachen unter dem use nobody (oder einem extra für den apachen angelegten benutzer) läuft. dann muss der user nobody (bzw. die group nogroup) auch leserechte auf den ordner und die datei haben.

    Überprüfe, unter welchem benutzer dein apache läuft (user eintrag in der httpd.conf) und gucke, ob der user zurgriff auch die datei hat.

    Gruß

    Phil

    --
    ich bin ein nachmacher: http://www.eppstein.de
    1. hmmmmm

      Die datei ist sicher da aber ich habe sie nicht via alias "virtuell" ins root verzeichnis des apachen gelegt. Kann ich nicht einfach sagen das der apache den zugriff auf alle unterferzeichnisse des root erlauben soll? weil da liegen ca 100 projekte und ich kann schlecht jedes einzelt eintragen.

      1. hi,

        ich nehm mal an, wenn wir von root reden, reden wir nicht von / sondern von z.B. /usr/local/apache/htdocs, oder?

        natürlich kannst du dem apachen den zugriff erlauben, schau nach, unter welchem benutzer der apache läuft, und gewähre dem user auf das htdocs verzeichnis lesezugriff, und übernehm diese einstellung vür alle unterverzeichnisse. dann klappt das ;)

        Gruß

        Phil

        --
        ich bin ein nachmacher: http://www.eppstein.de
        1. ah

          also hat das nix mit der apache einstellung zu tun sondern mit der vom Linux. OK

          Hast du jetzt noch ne idee warum PHP nicht funzt?? der kann es einfach nicht nutzen aber installiert hab ich es. Muss ich da noch nen paar einträge in die apache conf von hand machen??

          1. Hi,

            ums dir ganz easy zu machen, geh in das verzeichnis über htdocs,

            dann tippst du: chmod -R 0755 htdocs dann soltle es auf jeden fall gehen :o)

            hmm.. php... hast du php als eigenständige applikation am laufen, oder als build-in version?

            Gruß

            Phil

            --
            ich bin ein nachmacher: http://www.eppstein.de
            1. ähhhmmmmm keine ahnung.
              sorry und ich bin auch nicht vor dem system sondern im büro. wie kann ich das denn schauen??

              1. Hi,

                hast du php selber installiert, oder irgendein gesamt paket (wie xampp) oder vorinstalliert bei irgendeinem provider?
                Gruß

                Phil

                --
                ich bin ein nachmacher: http://www.eppstein.de
                1. über apt-get install

                  1. ok,

                    dann muss ich mich an der stelle ausklinken, ich benutze redhat, das hat so schöne sachen wie apt-get leider nicht... wo sind die debian pros? =)

                    Gruß

                    Phil

                    --
                    ich bin ein nachmacher: http://www.eppstein.de
                    1. hehe
                      danke dennoch ich denke ich werde das heute abend schaffen.

    2. hallo Phil,

      Hast du überprüft, ob der apache leserechte auf die datei hat?

      Die hat er, jedenfalls wenn er gerade frisch installiert worden ist.

      bei einer apache installation kann es durchaus passieren, dass dateien unter falscher berechtigung angelegt werden.

      Nein, nicht bei der Installation. Die Installation machst du eh als root, anders machts keinen Sinn. In der Regel legt Apache das von dir angesprochene "htdocs"-Verzeichnis, das ja default das "DocumentRoot" ist, erst an, das heißt, es wird auch von root angelegt.

      prinzipiell ist es sinnvoll, den apachen unter dem use nobody (oder einem extra für den apachen angelegten benutzer) läuft.

      Nicht zwingend. Apache startet grundsätzlich als root und sollte auch im runlevel ein Startscript bekommen, so daß er bei Systemstart gleich mit als "Dienst" hochgefahren werden kann. Ein Kindprozeß kann dann an einen anderen Benutzer übergeben werden.

      Grüße aus Berlin

      Christoph S.

      1. richtig, starten tut er unter root... nur wechselt es dann den benutzer, und DAS ist wirklich nützlich ;o)

        aber wenn wir schon am fehlerteufeln sind:

        Apache neu starten? komishc, mir genügt ein SIGHUP ;)

        Gruß

        Phil

        --
        ich bin ein nachmacher: http://www.eppstein.de
        1. hi,

          Apache neu starten? komishc, mir genügt ein SIGHUP ;)

          Ein radikaler Neustart des ganzen Servers ist nicht erforderlich, aber bei einem weniger Geübten durchaus zu empfehlen  -  er stört ja keinen laufenden Betrieb damit. Wie weit ein SIGHUP ausreicht, kann ich schlecht beurteilen. Aber du kannst eine geänderte Konfiguration auch mit "rcapache reload" neu einlesen, ohne den Server insgesamt neu zu starten.

          Grüße aus Berlin

          Christoph S.

          1. HMMMMMMMM

            also ich hab als Docroot den ordner /var/www/ und da drinne geht nix mit unterferzeichnissen. Jetzt hat mich eben beim rumlessen so stutzig gemacht das der ja nach der ervolgreichen installation eigentlich so ne seite bringen soll wenn ich den Localhost aufrufe. Diese hat er jedoch nicht mit installiert. was mir jedoch grade eingefallen ist das es ja sein kann das der der das ganze installiert hat bei der installation schopn das doc root verzeichnis geändert hat.

            Na ja ich danke schon mal für alles was bisher kahm, ich muss jetzt heute abend erst mal nen bissel rumtesten und dann werde ich mich nochmal an dieser stelle melden wenn es nötig ist.

            DANK!!!

            1. hi,

              es ja sein kann das der der das ganze installiert hat bei der installation schopn das doc root verzeichnis geändert hat.

              Das heißt, du läßt auf deinem Rechner jemand anderen Software installieren? Sollte man nicht tun. Und ds DocumentRoot kannst du während der Installation selbst nicht festlegen  -  es sei denn, du kompilierst dir den Apache aus den Sourcen von Grund auf selbst neu.

              Grüße aus Berlin

              Christoph S.

              1. Ich bin neu in sachen Linux und hab mir von nem guten freud das ganze grundinstallieren lassen. jetzt hab ich was woran ich üben kann und das system ist dennoch gut abgestimmt.

                Selbst kompeliert haben wir das nicht, wir haben den apt genutzt.
                Ich denke ich werde erst mal hin gehe und alles was mit dem Apache MySQL und PHP zu tun hat runterlösche und dann nochmal neu installiere.

                apt-get install apache php4 php4-cgi mysql-server phpmyadmin

                sollte alles mit installen was ich brauche.

                und dann werde ich mal weiter sehen, ihr habt mir ja schon nen paar gute ansätze geliefert.

                Danke

  2. hallo,

    ich hab nen Apache auf meinem Debian System installiert

    Welchen Apache? Du solltest dir entweder von http://ftp.de.debian.org/debian/pool/main/a/apache/ einen Apache 1.3.29 holen oder von http://ftp.de.debian.org/debian/pool/main/a/apache2/ einen Apache 2.0.49.

    nun kann ich aber mit http://localhost nur sachen aufrufen die im root verzeichniss von apache liegen

    Apache hat kein "root-Verzeichnis". Es gibt aber ein "DocumentRoot", und dort mußt du den gewünschten Pfad zu deinem Webverzeichnis korrekt eintragen.

    Wenn ich z.B. http://localhost/www/index.html aufrufen möchte kann er diese nicht öffnen (er verbietet es)

    Dann existiert dieses Verzeichnis mit höchster Wahrscheinlichkeit nicht. Als "DocumentRoot" mußt du in der httpd.conf das Verzeichnis angeben, das dir von http://localhost als Startverzeichnis angezeigt werden soll, du hast ungehinderten Zugriff auf alle Unterverzeichnisse darin.

    Des weiteren habe ich noch probleme mit PHP. eine PhP Seite zeigt er mir gar nicht an, obwohl ich sie im root liegen hab und alle notwendigen pakete installiert habe.

    Es ist anzunehmen, daß du PHP als mod_php einbinden möchtest. Dazu muß in der Modul-Liste der httpd.conf das Modul vorhanden sein, außerdem müssen in der httpd.conf ungefähr diese Zeilen stehen:
    <IfModule mod_php4.c>
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php .php4
      AddType application/x-httpd-php-source .phps
    </IfModule>

    Selbstverständlich weißt du, daß du den Apache nach jeder Änderung der Konfiguratio neu starten solltest.

    Grüße aus Berlin

    Christoph S.