eftépézz okosan

Először is elnézést mindenkitől, aki szerint ez a cím most a magyar nyelv durva megerőszakolása volt. Valahol egyetértek, de a blog indításakor elhatároztam, hogy amennyire lehet, igyekszem mindent magyarosan írni. Nekifutottam az "ftp-zz"-nek is, de mivel mind a kettő nagyon rossznak tűnt, választottam a magyarosabbat.

A mai poszt valójában csak egy kedvcsináló, nem sokára publikussá teszek egy nyílt forráskódú kis cuccot, ami egy rakás dologban segíteheti a fejlesztők mindennapjait. Az egészet arra építve kezdtem fejleszteni, hogy egy ügyfelem gépére próbáltam a Magento webáruház rendszert telepíteni. Na most a probléma ott kezdődött, hogy nem kaptam Control Panelt (szerintem nincs is a szerveren) csak egy ftp-t, és ezért kénytelen voltam a kicsomagolt fájlokat feltölteni a szerverre. Na most az hogy a 16 megás 1.3.2.4 verzió kicsomagolva 46 mega még nem lett volna nagy gond, de a 8500 fájl okozta overhead egész egyszerűen lehetetlenné tette a műveletet.

Megmondom őszintén, hogy nem nagyon kutattam eszközök után, úgy éreztem 2 perc alatt írok egy szkriptet, ami kicsomagolja nekem a feltöltött fájlomat. Ez hamar meg is volt, viszont mivel a program csomagolta ki a fájlt és csak magának adott írhatósági jogosultságot, ezért nem tudtam módosítani azokat. Szerencsére egy php.net-ről lopott kis függvény hamar segített ezen is. Futtatás után tehát még megváltoztattam a fájlok jogosultságát is. function modeTree($dir, &$message, $mode=0777) {
  $files = glob( $dir . '*', GLOB_MARK );
  foreach ($files as $file){
    if (substr($file, -1) == '/')
      modeTree($file, $message);
    else
      chmod($file, $mode);
  }
  chmod($dir, $mode);
  return TRUE;
}

$zip = new ZipArchive;
$file = 'magento-1.3.2.4.zip';
$message = '';

if ($zip->open($file) === TRUE) {
    $folder = getcwd() . str_replace('//', '/', '/'.$_POST['unzipfolder']);
    $message .= "Kitömörítés ($folder): ";
    $message .= $zip->extractTo($folder) ? 'ok.<br />' : 'hiba.<br />';
    $zip->close();
     
    modeTree($folder, $message);
    $message .= $folder . ' írható.<br />';
}

if ($message):
  echo "    <h2>Üzenet</h2>\n";
  echo "    <p>$message</p>\n";
endif;
FONTOS: Természetesen mindennek 0777 jogosultságot adni nem a legbiztonságosabb dolog a világon, éles rendszerben mindig körültekintően érdemes kiválasztani, hogy melyik könyvtárakhoz milyen hozzáféréseket kívánunk adni. Ugyanennyire fontos az is, hogy lehetőleg csak a legszükségesebb fájlokat tartsuk a webről elérhető könyvtárainkban.

A fejlesztett kis szoftver természetesen ennél többet fog tudni. A teljes igénye nélkül:

  • Könyvtárak becsomagolása
  • Fájlok minta szerinti jogosultság kezelése
  • Fájlok minta szerinti mozgatása
  • Fájlok karakterkódolásának megváltoztatása (iconv)
  • Adatbázis(ok) sql fájlokba mentése
  • Egyszerű belépés

Egyelőre ezekre érzem úgy, hogy igényem lesz. De ha bárkinek van valami jó ötlete ezzel kapcsolatban, akkor természetesen örömmel veszem.

Még vacilálok azon, hogy rakjak-e bele fájlfeltöltést. Talán egyszerűbb lenne, de én jobban szeretem ftp-vel feltölteni a nagy fájlokat, hogy lássam a folyamatot is.

Ja és még valami! A megoldás egyelőre nem a legszebb, mert egy fájlban van a munkát végző php résztől a css-ig minden, viszont így egyszerűen feltölthető és törölhető az egész. Valószínűleg beépítek egy egyszerű időkapcsolót is, ami elérhetetlenné teszi a rendszert, ha nem módosult egy pár napig. Vélmények ezzel kapcsolatban?

Címkék: php ftp

A bejegyzés trackback címe:

https://szajtbilder.blog.hu/api/trackback/id/tr171517352

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.