Saját PHP Keretrendszer frissítése központi szerverről?
2013-09-26T10:44:28+02:00
2013-09-27T09:15:48+02:00
2022-07-19T06:56:41+02:00
excore
Sziasztok!

készítek magamnak egy keretrendszert PHP ben, hogy a saját igényeimnek a lehető legmegfelelőbb és leggyorsabb oldalakat tudjam elkészíteni. Felmerült egy kérdés bennem, hogy oké hogy van egy keretrendszerem, de a 10-ik elkészített oldal után a halál fogja mindegyik úgymond magját lefrissíteni a legújabb aktuális verzióra.

Elméletben kidolgoztam, hogy hogy képzelném el a frissítést:
van 3 weboldal: valami1.hu valami2.hu és valami3.hu
Mindegyik oldal ezt a keretrendszert használja, megadott könyvtár struktúrában és minden PHP.
Van egy központi szerverem ahonnan vizsgálná ez a 3 oldal naponta egyszer hogy a frissítés mappán belül van egy egy update.txt fájl, ha igen beolvassa és értelmezi, hogy mit , hol, mire kell frissíteni a 3 oldalon belül.

Na most. Nem szeretném csak úgy beírkálni az FTP hozzáféréseket az oldalak frissítést végző programjába a közpinti szerverhez, illetve ha nem egy szerveren vannak a tárhelyek, akkor azt hiszem nem is működik. Hogyan tudnám biztonságosan megvalósítani ezt a frissítéses eljárást, anélkül, hogy nekem FTP jelszavakat kéne a központi szerverhez beírkálnom minden egyes oldalba és ráadásul hogyan frissíthetnék egy php fájl-t ha mondjuk épp valaki a weboldalon van és úgymond használja azt?

Remélem érthető a kérdésem. Várom a válaszotokat. köszönöm!
Mutasd a teljes hozzászólást!
Mondjuk becsomagolja egy zip-be, vagy másba. Esetleg nem egy kérést intéz, hanem lekéri az első frissítendő fájlt, majd a másodikat, egészen amíg tud a szerver valamit visszaadni. Vagy először lekér egy frissítendő fájllistát, amiben minden elem egy link a szerver.hu/upgrade.php-re, csak mindegyikben van egy pl file paraméter különböző értékekkel... De még lehetne sorolni, hogy miképpen lehet ezt megoldani... De az is lehet, hogy egy darab frissito.php fájl-t töltesz csak le, amiben benne van az összes frissítendő fájl tartalma és mikor futtatod, akkor egyszerűen létrehozza a tartalma alapján a szükséges fájlokat és elvégzi az egyéb módosításokat... stb-stb...
Egyébként ilyen wordpress, meg egyéb rendszerek frissítésért felelős részeit tanulmányoztad már, hogy azok hogyan oldják meg ezt a problémát?
Mutasd a teljes hozzászólást!

  • Belerakhatod a txt fájlba az épp akutális ftp kapcsolat adatait. Így onnan kiszedi.

    Ilyen frissítéseknél szokták azt csinálni, hogy addig kikapcsolják a weboldalt, és ha rendben lezajlott a frissítés akkor visszakapcsolják.
    Mutasd a teljes hozzászólást!
  • Szia!

    Egy publikus, bárki által megnézhető txt fájlba rakni a központi szerver belépési adatait? :)
    Még ha az attribútumot minimálisra is állítom, ha az ügyfél weboldala képes beolvasni, akkor valaki aki ért is hozzá, simán kiirathatja a forráskód buzerálásval a txt fájl tartalmát, ezért ezt nem tartom jó ötletnek, bár már nekem is eszembe jutott, hamar elvetettem.

    Azért köszi :)
    Mutasd a teljes hozzászólást!
  • Nem értem, hogy miért lenne szükség ftp-re? Publikusba is kirakhatod a fájlokat, vagy ezt nem akarod, akkor egyedi jelszóval is védheted számos módon az illetéktelen letöltéstől... Miért ftp-n akarsz kapcsolódni?

    Frissítés alatti weboldal lekapcsolás: Ha ez egy sima cégbemutató, vagy hasonló oldal, akkor mehet simán az, hogy a frissítés idejére az index.php-t lecseréled egy "frissítés" alatt tartalmú index.php-re (pláne, ha közben az index.php-t is frissíteni kell...). Ha be lehet jelentkezni az oldalra és ott fórumozni, vagy egyéb fontos dolgokat végezni, akkor érdemes letiltani a bejelentkezést, majd figyelni, hogy be van-e éppen jelentkezve valaki az oldalra és csak akkor frissíteni, ha már senki nincs belépve. Frissítés után meg újra engedélyezni a belépést...
    Mutasd a teljes hozzászólást!
  • Üdv
    SVN,GIT,Bármi ?
    Mutasd a teljes hozzászólást!
  • Lehet meghoztad az ihletet.

    szerver.hu hoz ftp-n két felhasználónak kell lennie. Egy korlátozott, aki majd letölt ha kap engedélyt, illetve egy tulajdonos.

    1.
    valami2.hu oldal lekérdezi a szerver.hu/upgrade.php fájlból, hogy van-e frissítés. Ezt úgy tudja megtenni, hogy egy visszafejthetetlen jelszót pl:
    md5(md5(crc32(md3(base64_decode('Jelszó')))));
    küld az urlben így:
    szerver.hu/upgrade.php?pass=dsfghdfg+654ghdf2378tzdfg+erbhdfh

    2.
    Ezt az upgrade.php összehasonlítja a saját jelszavával, ami szintén ez a durván levédett 'jelszó'.

    3.
    Ha megegyezik, akkor visszaküldi a valami2.hu oldal feldolgozó php-jének, hogy mit kéne frissíteni.

    4.
    Ekkor letiltja a bejelentkezést, illetve az oldal azon részeit a valami2.hu oldal, ami épp frissülni fog.

    5.
    A szerver.hu oldalt ismét megkérdezi a valami2.hu, hogy a fájlokat másolhatja-e. A szerver 777-es jogosultságot oszt ki a fájloknak mondjuk 10 percig, ezzel engedélyezi a másolást mindenki számára.

    6.
    Utána visszakap egy ftp jelszót és felhasználó nevet a valami2.hu oldal, mellyel tud csatlakozni a fájlok letöltéséhez.

    7. 10 perc után a szerver letiltja a hozzáférést az FTPről erre a nevű felhasználóra: attributtum átírása úgy hogy csak a tulajdonos férhessen hozzá.

    8. A valami2.hu befrissül, közben biztonsági mentéseket készít az előző verziórol, később engedélyezi ismét az oldal használatát, illetve a letiltott funkciókat.

    Ez így szerintetek járható út, vagy hülyeség?
    Mutasd a teljes hozzászólást!
  • Üdv, Semmi ilyesmi. Semmi túl bonyolultság. Ráadásul a szerverek amikre a weboldalt elkészítéskor másolom nem mindig a legjobbak és legkompatibilisebbek, teszem azt, régebbi php vagy adatbázis van rajtuk.
    Mutasd a teljes hozzászólást!
  • A szerver.hu/upgrade.php visszaadhatná magukat a fájlokat is... Minek azokat ftp-n letölteni???
    Mutasd a teljes hozzászólást!
  • Hogy tud visszaadni fájlokat?
    Mondjuk az egyik modul frissült, azon belül is 3 php, 5 png és 1 css fájl ezt hogy?
    Mutasd a teljes hozzászólást!
  • Mondjuk becsomagolja egy zip-be, vagy másba. Esetleg nem egy kérést intéz, hanem lekéri az első frissítendő fájlt, majd a másodikat, egészen amíg tud a szerver valamit visszaadni. Vagy először lekér egy frissítendő fájllistát, amiben minden elem egy link a szerver.hu/upgrade.php-re, csak mindegyikben van egy pl file paraméter különböző értékekkel... De még lehetne sorolni, hogy miképpen lehet ezt megoldani... De az is lehet, hogy egy darab frissito.php fájl-t töltesz csak le, amiben benne van az összes frissítendő fájl tartalma és mikor futtatod, akkor egyszerűen létrehozza a tartalma alapján a szükséges fájlokat és elvégzi az egyéb módosításokat... stb-stb...
    Egyébként ilyen wordpress, meg egyéb rendszerek frissítésért felelős részeit tanulmányoztad már, hogy azok hogyan oldják meg ezt a problémát?
    Mutasd a teljes hozzászólást!
  • Igen, a mindent egy fájlba lehet majd a megoldás, köszönöm!
    Mutasd a teljes hozzászólást!
  • SVN-nek teljesen mindegy a PHP verzió.
    Fő gépeeden commit, klienseken checkout és csókolom.
    Mutasd a teljes hozzászólást!
  • Jol ertem, hogy te automatikusan, teszteles nelkul akarsz elo oldalra ujabb verzioju keretrendszert tolni..?
    Mutasd a teljes hozzászólást!
  • Nem, egy sajátfejlesztésű keretrendszert készítek magamnak, hogy minnél gyorsabban készíthessek weboldalakat. A Zend és hasonló szép, nagy tudású keretrendszerek nyújtotta lehetőségek negyedét használnám ezért azt nem éri meg számomra telepíteni minden oldalra. Ezért inkább csinálok egyet a saját igényeimnek megfelelően, az alapokkal. Pl ha safe mode van akkor ftp-s műveletek, ha nincs akkor csak move upload file. stb stb...

    Nem tesztelés nélkül kerülne ki az új verzió, mivel a központi szerveren azt folyamatosan fejleszteném és csak akkor küldeném a frissítést ha minden működne.
    Mutasd a teljes hozzászólást!
abcd