Reddock: Vorgehen

Hi,
ich bastle neben meinem Studium immer mal wieder für kleinere Kunden Websites. Nun wird es diesmal ein größeres Projekt werden, und der Kunde will einen Testserver (bzw. eine Subdomain mit dem Präfix dev). Die Website selbst ist bei einem Hoster gelagert (goneo).

Nun meine Frage, wie macht man das am besten? Ich würde auch gerne eine Versionierung nutzen, aber bei dem Hoster ist das nicht möglich.

Mein Vorgehen war wie folgt:

a) ich richte mir eine lokale Testumgebung ein, die annähernd dem des Hosters entspricht. Dort richte ich auch meine Versionierung ein.

b) ich entwickle das projekt lokal. An gewissen Meilensteilen spiele ich ich das Projekt auf den dev.example.com Server.

c) läuft das gut und wird freigegeben, spiele ich es von dev.example.com nach example.com und bringe es somit live. (kann man überhaupt von einem FTP-Server zum anderen kopieren? Mein Totalcommander bietet diese Möglichkeit gar nicht an ....)

d) Die Dateien selbst werden ausschließlich lokal bearbeitet.

e) Zusatzfrage: Wenn alles auf dev.example läuft, ist es ja noch keine Gewähr, dass es auf example.com ebenso läuft, z.b. wegen falscher Pfadangaben etc. Wie testet man sowas vorweg?

Ist das ein vernünftiges Vorgehen? Oder kann man es besser machen?

vielen dank!
reddock

  1. Moin,

    (kann man überhaupt von einem FTP-Server zum anderen kopieren? Mein Totalcommander bietet diese Möglichkeit gar nicht an ....)

    Das geht nicht einfach so, wenn man keinen SSH-Zugriff auf den Server hat. Aber es sollte ja kein Problem sein, dieselbe Version erst auf den dev.example.com und - sofern es funktioniert - auf example.com zu bringen.

    Es gibt auch PHP-Remote-Upload-Skripte; wie gut die allerdings funktionieren weiß ich nicht.

    Grüße Marco

    1. Hi,

      (kann man überhaupt von einem FTP-Server zum anderen kopieren? Mein Totalcommander bietet diese Möglichkeit gar nicht an ....)

      Das geht nicht einfach so, wenn man keinen SSH-Zugriff auf den Server hat.

      SSH-Zugriff hab ich, Gott sei dank. Da tut sich goneo gegenüber all-inkl echt hervor. Bei all-inkl. war ich früher.

      1. Moin,

        SSH-Zugriff hab ich, Gott sei dank. Da tut sich goneo gegenüber all-inkl echt hervor. Bei all-inkl. war ich früher.

        Dann hast du ja keine Probleme, die Daten per FTP von dem anderen Server zu ziehen.

        Zu deinem sonstigen Vorgehen kann ich nicht viel sagen. Für mich klingt es logisch und vernünftig, aber ich habe zu wenig Erfahrung in dem Bereich.

        Grüße Marco

      2. SSH-Zugriff hab ich, Gott sei dank. Da tut sich goneo gegenüber all-inkl echt hervor. Bei all-inkl. war ich früher.

        Ich kann bei all-inkl. für jeden meiner Accounts einen SSH-Zugang anlegen (KAS->Tools->SSH-Zugänge).

        Darüber hinaus kann man die Daten von einem anderen Server automatisch einspielen lassen, wenn man die FTP-Daten angibt (KAS->Tools->Account-Übertragung). Aber ist ja nicht mehr relevant.

        1. SSH-Zugriff hab ich, Gott sei dank. Da tut sich goneo gegenüber all-inkl echt hervor. Bei all-inkl. war ich früher.

          Ich kann bei all-inkl. für jeden meiner Accounts einen SSH-Zugang anlegen (KAS->Tools->SSH-Zugänge).

          komisch, gerade nachgesehen, den Punkt gibts bei mir nicht. Vermutlich liegts am Paket...

          danke trotzdem!

          1. komisch, gerade nachgesehen, den Punkt gibts bei mir nicht. Vermutlich liegts am Paket...

            Das kann sein. Ich hab das Premium-Paket für 10 Euro/Monat inkl. 5 Domains. Aber die Pauschalaussage "gibt's bei all-inkl. nicht" wollte ich als seit 10 Jahren extrem zufriedener all-inkl.-Kunde nicht einfach so stehen lassen  ;)

  2. Hallo,

    c) läuft das gut und wird freigegeben, spiele ich es von dev.example.com nach example.com und bringe es somit live. (kann man überhaupt von einem FTP-Server zum anderen kopieren? Mein Totalcommander bietet diese Möglichkeit gar nicht an ....)

    Das mußt du gar nicht. Wenn du bei deinem Hoster Subdomains einrichten kannst, kannst du diese i.d.R. mit einem bestimmten Verzeichnis verknüpfen.

    Deine Verzeichnisstruktur sieht also z.B. so aus (von deinem home-Verzeichnis aus gesehen):

    /dev/www
    /live/www

    dev.example.com zeigt nun nach /dev/www
    example.com zeigt nach /live/www

    Wenn du fertig bist, kopierst du auf dem Server die Dateien von einem Ordner zum anderen.

    e) Zusatzfrage: Wenn alles auf dev.example läuft, ist es ja noch keine Gewähr, dass es auf example.com ebenso läuft, z.b. wegen falscher Pfadangaben etc. Wie testet man sowas vorweg?

    Da es auf demselben Server läuft sollte es alles funktionieren, sofern du in deinen Verweisen keinen Domainnamen verwendest.

    vg ichbinich

    --
    Kleiner Tipp:
    Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
    1. hi,

      e) Zusatzfrage: Wenn alles auf dev.example läuft, ist es ja noch keine Gewähr, dass es auf example.com ebenso läuft, z.b. wegen falscher Pfadangaben etc. Wie testet man sowas vorweg?

      Da es auf demselben Server läuft sollte es alles funktionieren, sofern du in deinen Verweisen keinen Domainnamen verwendest.

      und du keine pfade fest rein schreibst die von dem obrigen Beispiel das "dev/seite/" enthalten. Die müsstest du sonnst auf z.b. "live/seite/" ändern

      Gute Idee es lokal zu entwickeln. Beachte aber das lokal manche Funktionen nicht korrekt gehen (grade bei Windows). Daher am besten ein VM mit Linux als Server einrichten. Ist auch einfacher wenn es um IP Sachen geht. Da man so wirklich 2 verschiedene IPs für Server und Client hat.
      Bei der VM am besten schauen das du die gleiche Apache und SQL Version nimmst, dann dürftest du auf dem Online-Server keine großen Überraschungen erleben (phpinfo vergleichen!)

      Gruß Niklas

      --
      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
    2. Hallo

      c) läuft das gut und wird freigegeben, spiele ich es von dev.example.com nach example.com und bringe es somit live. (kann man überhaupt von einem FTP-Server zum anderen kopieren? Mein Totalcommander bietet diese Möglichkeit gar nicht an ....)
      Das mußt du gar nicht. Wenn du bei deinem Hoster Subdomains einrichten kannst, kannst du diese i.d.R. mit einem bestimmten Verzeichnis verknüpfen.

      Deine Verzeichnisstruktur sieht also z.B. so aus (von deinem home-Verzeichnis aus gesehen):

      /dev/www
      /live/www

      dev.example.com zeigt nun nach /dev/www
      example.com zeigt nach /live/www

      Wenn du fertig bist, kopierst du auf dem Server die Dateien von einem Ordner zum anderen.

      Wie wäre es damit, die Verzeichnisnamen gleich generischer zu vergeben (z.B. live: v1/www, example.com; dev: v2/www, dev.example.com) und nach Fertigstellung example.com von v1/www auf v2/www umzustellen. Das spart jegliches Kopieren und eventuell fest vorgegebene Pfade können so bleiben, wie sie sind.

      Tschö, Auge

      --
      Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
      Terry Pratchett, "Wachen! Wachen!"
      ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
      Veranstaltungsdatenbank Vdb 0.3
  3. kann man überhaupt von einem FTP-Server zum anderen kopieren?

    Ja.

    Mein Totalcommander bietet diese Möglichkeit gar nicht an

    Upgrade auf Version 8

    1. Moin,

      kann man überhaupt von einem FTP-Server zum anderen kopieren?
      Ja.

      Sofern es unterstützt wird.

      Grüße Marco

  4. Hallo,
    Klingt gut für mich. Eventuell könntest Du noch überlegen, eine Art "Deployment-Prozess" zu basteln, welcher die Dateien von einer Instanz auf die andere schiebt:

    Bei großen, längeren Projekten hat man nach meiner Erfahrung zwangsläufig irgendwann das Problem, dass man auf bestimmten Instanzen bestimmte Dateien/Einstellungen/Konfigurationen braucht, die woanders dann wieder anders sein müssen (klassiches Beispiel: Konfigurations-Dateien für Entwicklungs-/Abnahme-/Produktionsdatenbanken). Man kann das natürlich alles jedesmal von Hand anpassen, dann muss man das aber auch immer im Kopf haben.

    => In solchen Fällen kann daher eine automatisierte Lösung sinnvoll sein. Entweder man strickt sich selbst irgendwas (Shell-/Perl-/Python-Skript oder sowas in der Art), oder nutzt eine Continous Integration-Umgebung, z.b. Jenkins (das ist dann allerdings schon was größeres bis man da alles am Laufen hat, rentiert sich für kleinere Projekte eher nicht).
    Es gibt auch ein paar Frameworks, die Funktionen für Staging und Deployments schon mitbringen.

    Viele Grüße,
    Jörg