Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Mozilo-CMS per Skript von Github holen und auf dem Webspace auspacken lassen

Begonnen von mozzi, 05. August 2015, 19:15:58

« vorheriges - nächstes »

mozzi

Hallo allerseits,

bei Webspace-Anbietern, die das Öffnen entfernter Dateien von PHP aus erlauben, sollte es doch weit überwiegend möglich sein, per Skript das Mozilo CMS von Github abzuholen und zu entzippen. Vielleicht optional auch noch "außen rum" vom Skript per FTP auf den eigenen Webspace aufspielen lassen, damit Benutzerrechte korrekt gesetzt sind?

Damit alles während der Installation sicher ist, könnte das Skript noch eine htaccess mit Paßwortschutz oder (nach automatischer Abfrage) ansonsten mit allgemeinem Zugriffsverbot erstellen. Einfacher ist es natürlich, einen langen kryptischen Verzeichnisnamen zu wählen und erst nach dem Admin-Paßwort- Update umzubenennen.

Manchmal würde ich z.B. gern einfach mal kurz ein Plugin testen, ohne eine produktive Installation dafür herzunehmen. Auch für solche Zwecke wäre ein schnelles Installationsskript eine echte Zeitersparnis.

Und wer ein bißchen programmieren kann, könnte auf dieser Basis dann vielleicht auch eine Update-Routine umsetzen.
Beim Thema Update fällt mir noch ein: Eine benutzerspezifische Tabelle mit Angaben dazu, welche Dateien bei Updates übergangen oder upgedatet werden sollen, wäre ein nettes Feature einer Update-Routine - vielleicht läßt sich das ja auch mit dem Installationsskript zusammenfassen!

??

Grüße
mozzi
Signatur? Ich nehm die Vorlage: "Die Bilder in ihrer Signatur dürfen nicht größ als 640x320 Pixel sein" ... ;-)

mozzi

Naja wenns sonst keiner macht, mache ich es halt...

Das Skript holt Mozilo als Zip von Github und kopiert es neben sich auf den Webspace.
Dann kann man wählen, in welche Verzeichnisse NEBEN dem Skriptverzeichnis man Mozilo entpackt haben möchte.
Man kann das bereits geholte Mozilo-Archiv in mehrere Verzeichnisse entpacken.

Zwischen dem Holen und dem Entpacken sollte man keine weiteren Verzeichnisse auf derselben Ebene anlegen, da diese jeweils durchgezählt werden (um keine Dateipfade bzgl. Mißbrauch prüfen zu müssen) und Mozilo ansonsten in ein nicht gewünschtes Verzeichnis entpackt werden könnte.

Meines Wissens ist beim aktuellen Stand mindestens PHP 5.2 und die Unterstützung von Zip erforderlich, evtl. auch etwas darüber.

Bei meinem hervorragenden Provider www.netcup.de ist es möglich, die entpackten Dateien hinterher per FTP wieder zu löschen. Das muß nicht zwingend auch bei anderen Providern der Fall sein!
Wenn jemand plötzlich dumm aus der Wäsche guckt, einfach mal nach webadmin.php googeln, das hilft tendenziell weiter. Ob man aber volle Verzeichnisse damit löschen kann, weiß ich momentan nicht mehr genau.

Code (_unzip/index.php) Auswählen
<?php

  
/*/

  Aufruf produktiv: [url]http://www.meinedomain.tld/.../_unzip/[/url]
  Wobei dieses Skript natürlich im Verzeichnis "_unzip" liegt.
  Direkt nach dem Aufruf wird Mozilo von Github geholt und in dieses Verzeichnis kopiert.

  Aufruf zum Testen: [url]http://www.meinedomain.tld/.../_unzip/?test[/url]
  Dazu muß ein Zip-Archiv namens master.zip im Verzeichnis "_unzip" existieren.

  /**/


  
if ($_POST['sel_done'] == '0123456789') {

    
$tpath false;

    
$tdir '../';
    
$dircont scandir($tdir);
    
$counter 0;
      foreach (
$dircont as $key => $value) {
      if (!
in_array($value, array('.''..'))) {
        if (
is_dir($tdir DIRECTORY_SEPARATOR $value)) {
          
$counter ++;
          if (
$counter == $_POST['sel_dir']) {
            
$tpath realpath($tdir $value);
          }
        }
      }
    }

    
$file 'file.zip';

    if (
$tpath !== false) {

      
$zip = new ZipArchive;
      if (
$zip->open($file) === TRUE) {
        
$zip->extractTo($tpath);
        
$zip->close();
        
$uz_msg "Die Datei <b>$file</b> wurde erfolgreich nach <b>$tpath</b> entzippt.";
      } else {
        
$uz_msg "Die Datei <b>$file</b> konnte nicht gefunden/geöffnet werden.";
      }

    } else {

      
$uz_msg 'War wohl nix!';

    }

    echo 
"<span style='font-family: arial; font-size: 10pt;'>$uz_msg</font>";

  } else {

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<title>Zielverzeichnis wählen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">
.button {
  width: 12em;
  height: 2em;
}
.pop {
  background-color: #d7dfef;
  font-family: Arial,Helvetica,sans-serif;
  font-weight: bold;
  font-style: italic;
  font-size: 1.1em;
}
.pop select {
  min-width: 150pt;
  background-color: #e7e7ff;
}
.pop input[type="text"], .pop input[type="file"] {
  background-color: white;
}
body {
  margin: 0;
  background-color: #e7e7ff;
}
form {
  margin: 0;
}
</style>

</head>

<body>

<!-- Zentriertabelle --><table style="width: 100%; height: 100%;" class="pop" border="0"><tr><td style="text-align: center; vertical-align: middle;"><center>

Verzeichnisauswahl<br>

<form target="uz_res"
      method="post"
      action=""
      name="form_seldir"
      style="margin: 5;">

    <select name="sel_dir"
            size="5"
            title="Verzeichnisauswahl">

<?php

  $tdir 
'../';
  
$dircont scandir($tdir);
  
$counter 0;
    foreach (
$dircont as $key => $value) {
    if (!
in_array($value, array('.''..'))) {
      if (
is_dir($tdir DIRECTORY_SEPARATOR $value)) {
        
$counter ++;
        echo 
"      <option value='$counter' title='$counter'>$value</option>\r\n";
      }
    }
  }

?>


    </select><br>

    <font size="-2"><br></font>

    <input type="hidden"
           name="sel_done"
           value="0123456789" />

    <input type="submit"
           name="inp_sub"
           id="id_inp_sub"
           value="Mozilo entpacken"
           class="button" />

</form>

<br>

<?php

  $mozilo_master 
'[url]https://github.com/mozilo/mozilo2.0/archive/master.zip';[/url]
  if (isset(
$_GET['test'])) {
    
$mozilo_master 'master.zip';
    
$testrem ' (TEST)';
  }

  if (@
copy($mozilo_master'file.zip')) {
    echo 
'Mozilo-Master abgeholt!' $testrem;
  } else {
    echo 
'<span style="color: red;">Fehler beim Abruf von Mozilo-Master</span>' $testrem;
  }

?>


<br>
<br>
<iframe name="uz_res" src="about:blank" marginheight="5" marginwidth="5" height="50" width="500" frameborder="1" scrolling="auto"></iframe>

<!-- /Zentriertabelle --></center></td></tr></table>

</body>

</html>
<?php

  
}

?>




Grüße und viel Spaß beim Säubern und Optimieren ;-)

mozzi


P.S.: Wenn jemand an der Nennung meines Providers was herumzumäkeln hat, immer her mit der Info. Ich lösche diesen Beitrag dann komplett wieder!
Signatur? Ich nehm die Vorlage: "Die Bilder in ihrer Signatur dürfen nicht größ als 640x320 Pixel sein" ... ;-)

Thorstn

Zitat von: mozzi am 07. August 2015, 23:21:08
Bei meinem hervorragenden Provider [Teile des Zitats von Thorstn entfernt] ist es möglich, die entpackten Dateien hinterher per FTP wieder zu löschen. Das muß nicht zwingend auch bei anderen Providern der Fall sein!

Wow! Alle Achtung!

Bei Deinem hervorragenden Provider kann man Dateien via FTP löschen?! Dass das bislang noch kein anderer Provider kann, ist ja ein Unding!  >:(

Aber: muss man das echt händisch machen? Also per FTP löschen? Ist das nicht zu schwer? Gibt es da kein Skript für?

Zitat von: mozzi am 07. August 2015, 23:21:08
Wenn jemand an der Nennung meines Providers was herumzumäkeln hat, immer her mit der Info. Ich lösche diesen Beitrag dann komplett wieder!

Verstehe ich Dich richtig? Du willst Deinen kompletten (!) Beitrag löschen, wenn Du nicht Werbung machen darfst?

www.mad-it.de - Wir lösen keine Probleme. Wir machen sie.
Webdesign aus Bochum