Migrationsfragen

  • Moin liebes Netcup-Forum :)
    Ich möchte grade meine Websiten von Dreamhost zu netcup umziehen und bin dabei auf ein paar Sachen gestoßen, bei denen ich hoffe das ihr mir helfen könnt.

    • Bei Dreamhost habe ich mehrere mySQL-Datenbanken, die ich auch schon zu netcup umziehen konnte. Bei Dreamhost war es so, dass wenn ich einen User hatte der Zugriff auf alle Datenbanken hatte, ich auch alle in phpMyAdmin sehen konnte. Bei netcup scheint dies nicht der Fall zu sein. Lässt sich das ändern, bzw. woran liegt das? Hat jetzt keine Auswirkungen, aber interessiert mich.
    • Dreamhost und netcup unterscheiden sich in der Ordnerstruktur, was meine php Scripte bzw. mich beim ändern dieser verwirrt.
      Dreamhost:
      • home
        • dh_abcxyz
          • foobar.tld
            • index.html
            • assets
              • php
                • db_insert.php
                • db_request.php
          • assets
            • php
              • dbuser.php
          • phpMailer

      netcup:

      • home

        • a

        • b

        • c

        • foobar2.tld

          • httpdocs

            • index.html

            • assets

        • x

        • y

        • z

      Was mich nun verwirrt ist, dass ich auf Dreamhost einfach den assets-Ordner mit dem dbuser außerhalb des Seitenverzeichnes legen konnte und ihn ohne Probleme referenzieren konnte, auf netcup aber nicht. Ich kann zwar den Umweg gehen und über php den kompletten Webspace freigeben, aber das wäre etwas was ich ungerne tun würde und selbst dann werden die pfade mit /var/www/etc angegeben, was vorher nicht der Fall war.
      Im Endeffekt ist meine Frage: Wieso ist das Endergebnis für mich als user so unterschiedlich, wenn beides Apache-Server sind und wie kriege ich das ähnlich hin wie auf Dreamhost, so dass ich meinen dbuser nicht direkt auf dem Silbertablett serviere, aber auch nicht den kompletten Webspace freigeben muss?
      Aus der bisherigen Forumsrecherche hab ich gelesen, dass viele sowas einfach über htaccess lösen, diesen Weg musste ich aber vorher nicht gehen und auf z.B. stackoverflow wird das alleinige lösen über htaccess auch nicht als best practice beschrieben, sonder eigentlich die Kombi aus beidem. (z.b. hier https://serverfault.com/questi…nfig-in-the-public-folder)

    • Das löst sich eigentlich mit meiner zweiten Frage, aber wo packt ihr dann den phpMailer hin? Wie ihr seht war der ursprünglich auf der selben Ebene außerhalb wie mein dbuser, aber damit hab ich hier noch gar nicht angefangen, weil das schon hier nicht klappt.

    Vielen Dank im vorraus, ich hoffe ihr verzeiht anfängerfragen und LG

    flashedk

  • Der phpMailer funktioniert per PHP (was keiner gedacht hätte). Bei PHP gibt es die Einstellung open_basedir. Wenn sie wie in den netcup Webhostings aktiviert ist. Mag sein, dass open_basedir bei Dreamhost nicht aktiv ist oder eben den ganzen Webspace plus einige notwendige Systemverzeichnisse freigibt. Deaktivieren kannst du es bei netcup im Webhosting nicht. Aber du kannst es so einstellen (PHP-Einstellungen, einfach die open_basedir-Variante mit WEBSPACEROOT wählen), dass du auf den ganzen Webspace per PHP zugreifen kannst. Wohlgemerkt, nur per PHP, der Apache darf das weiterhin nicht. Wenn du also meinst, dass das unsicherer sei als bei Dreamhost, dann ist es sehr wahrscheinlich nicht so. Eher andersrum, die Defaulteinstellung bei netcup ist sehr wahrscheinlich sicherer als bei Dreamhost. Sieht man ja schon daran, dass du dort anstandslos auf die ausgelagerten Dateien zugreifen konntest, hier aber nicht. Die zweite Antwort in deinem Link scheint davon auszugehen, dass PHP das immer darf. Das ist aber nur der Fall, wenn open_basedir inaktiv ist oder das entsprechende Verzeichnis freigegeben ist. In der Defaulteinstellung bei netcup ist es das Verzeichnis eben nicht freigegeben, sondern nur Verzeichnisse innerhalb und unterhalb des Dokumentenstamms (document root).


    Die Ordnerstruktur bei netcup ist nur ein Vorschlag, du kannst den Dokumentenstamm einer Domain hinlegen wo du willst innerhalb deines Webspace. Nur wenn du die Defaulteinstellungen wählst, dann ist es eben so wie von dir beschrieben angelegt. Ob man php-Dateien unbedingt unter assets haben will? Ich nicht. Das ist ein Ordner, der typischerweise für den Apache-Webserver zugänglich sein sollte, weil der eventuell darin befindliches CSS oder Bilder ausliefern muss. Wenn man die php-Dateien nicht zugänglich haben will, dann gehören sie da eher nicht hin. Abgesehen davon, dass php-Dateien ja normalerweise durch den PHP-Interpreter bearbeitet werden und nicht einfach als Textdatei vom Webserver ausgeliefert werden. Normalerweise, bei einer Fehlkonfiguration eventuell nicht. Um dich fü diesen Fall abzusichern, kannst du deine Verzeichnisstruktur so anlegen wie bei Dreamhost und dann eben den gesamten Webspace für den Zugriff per PHP freigeben, wie es bei Dreamhost wohl auch sein wird, sonst würde es ja nicht funktionieren. Außer natürlich, du kannst dort explizit alles innerhalb von dh_abcxyz freigeben für PHP (aber nicht z.B. einen parallelen Ordner dh_defxyz).


    Edit: Wegen der Pfade mit /var/www/...: Das sind die wirklichen Pfade, so wie der Webserver oder PHP sie sehen. Auf der Shell (SSH) bist du in einer chroot Umgebung,wo die Pfade dann eben anders aussehen.

  • Danke für deine Antwort!

    Mag sein, dass open_basedir bei Dreamhost nicht aktiv

    Ich denke damit lagst du richtig. Aus der phpconfig ausgelesen steht bei Dreamhost:

    open_basedir no value


    Da das Konzept von Webspaceroot und Documentroot für mich jetzt sehr neu ist. dh_abcxyz wäre webspaceroot und analog ist home/Basisverzeichnis webspaceroot bei netcup? Documentroot wäre dann foobar.tld und analog foobar2.tld/httpdocs (ja kann geändert werden, aber im moment ist das so bei netcup angegeben). Ich schließe also das es ohne Webspaceroot bei netcup nicht gehen wird, naja ist dann halt so bzw. eigentlich war es dann ja nie anders.


    Ob man php-Dateien unbedingt unter assets haben will?

    Das ist ein berechtigter Einwand, den ich bis jetzt nicht bedacht hatte. Da das ja nur Backend-Scripte sind, kann ich diese auch verschieben, das stimmt. Danke!

    Wäre das denn "gelöst" wenn ich unter foobar2.tld parallel zu httpdocs einen script-Ordner meinen phpMailer einfügen würde? Das wäre nach meinem Verständnis ja eine Ebene über Documentroot.


    Normalerweise, bei einer Fehlkonfiguration eventuell nicht.

    Das stimmt, aber genau wegen diesen nicht-normalen Fällen tun wir ja bestimmte Sachen, damit wenn sie eintreten, es nicht dramatisch wird.

  • Da das Konzept von Webspaceroot und Documentroot für mich jetzt sehr neu ist. dh_abcxyz wäre webspaceroot und analog ist home/Basisverzeichnis webspaceroot bei netcup? Documentroot wäre dann foobar.tld und analog foobar2.tld/httpdocs (ja kann geändert werden, aber im moment ist das so bei netcup angegeben). Ich schließe also das es ohne Webspaceroot bei netcup nicht gehen wird, naja ist dann halt so bzw. eigentlich war es dann ja nie anders.

    Doch das geht, der Pfad muss nur entsprechend in den open_basedir aufgenommen werden.

    Apache ist nicht gleich Apache, hier gibt es mehrerer Möglichkeiten PHP auszuführen und im Dateisystem zu beschränken.

  • Doch das geht, der Pfad muss nur entsprechend in den open_basedir aufgenommen werden.

    Prinzipiell ginge sowas. Aber ich habe jetzt doch schon einige Shared Hoster durch und eigentlich nirgends eine solche Möglichkeit vorgefunden. Mit Ausnahme von ub*rsp*ce vielleicht, da konnte man eine eigene php.ini benutzen und hätte eventuell eine solche Einstellung vornehmen können. Sonst konnte man meist gar nichts dergleichen einstellen und hatte entweder open_basedir immer inaktiv (also "no value") oder es war halt der gesamte Webspace freigegeben. Ok, gelegentlich hatte man noch eine Ebene drüber, die nicht freigegeben war. Aber auch da konnte man Projekte nicht gegeneinander "abschotten", was prinzipiell wünschenswert wäre. Es müssen ja nicht gleich alle Projekte kompromittiert sein wenn eins gehackt wurde, wobei ich aber in so einem Fall trotzdem davon ausgehen würde. Im Zweifelsfall bei sehr wichtigen und schutzbedürftigen Projekten eben besser gleich ein eigenes Webhosting für das Projekt.

  • Da das Konzept von Webspaceroot und Documentroot für mich jetzt sehr neu ist. dh_abcxyz wäre webspaceroot und analog ist home/Basisverzeichnis webspaceroot bei netcup? Documentroot wäre dann foobar.tld und analog foobar2.tld/httpdocs

    Genau.


    Wäre das denn "gelöst" wenn ich unter foobar2.tld parallel zu httpdocs einen script-Ordner meinen phpMailer einfügen würde? Das wäre nach meinem Verständnis ja eine Ebene über Documentroot.

    Ja, das sollte dann passen, damit sollte der Apache die Skripte nicht mehr anzeigen können.