DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   PHP Automatic updates (http://www.devprotalk.com/showthread.php?t=6754)

kodi 19. 11. 2008. 21:12

PHP Automatic updates
 
Gledam kako da sebi maksimalno olaksam zivot, tako sto cu smisliti kako da
najlakse sredim updates sa jedne verzije na drugu software-a na kome radim.

Software je klasicna php/mysql mvc aplikacija.

Zanimaju me neki primeri web aplikacija za koje mislite da imaju dobar sistem za update, ili - koji bi ste vi sistem primenili za update.

Ono sto mene plasi, u ovom trenutku, je da nista nije konstantno...

mozda ce mysql schema morati da se menja, mozda ce core clase morati da se menjaju, mozda ce kontroleri i templejti morati da se menjaju...(u nekom trenutku)

Vec vidim kako php ne moze da overwrite-uje php fajl koji je uploadovan preko FTP-a, a pitanje je da li ce php moci da odradi chmod.. :(
kao sto znate ima raznoraznih hostinga.. :(

any ideas?

kodi 19. 11. 2008. 21:30

edit: ovo Automatic u imenu topic-a ne mora obavezno da znaci da cela procedura mora skroz automatski da se odvija

ja sam sasvim zadovoljan i varijantom da se recimo kada se admin uloguje dobije poruku da postoji novija verzija, i da bi trebao da updejtuje app.

e tu pocinje zabava...

- da li probati da sve ide automatsi (klik na update, skidanje paketa, backup, prepisivanje novim fajlovima)
- ili da user skine update paket, i uploaduje ga u neki recimo /updates direktorijum, pa onda ovo sa klikom na update iz kontrolnog panela
- ili nesto trece?

sve je bolje od onih kilometarskih upustava (replace fileOld with fileNew...) to je taj "Automatic" momenat ;) :D

misk0 19. 11. 2008. 22:07

Nisam siguran da postoji univerzalno rjesenje koje sve samo radi i radi na svim hostinzima. Meni se svidja ta druga varijanta ali ovim redom:
- uploadujes sve u neki /update folder
- provjeris permisije na svim fajlovima / folderima gdje trebas vrsiti izmjene, ostale requirements
- disablujes sajt sa nekim .htaccess -deny ALL
- overwriteujes fajlove
- enablujes sajt.

Ukoliko se tokom provjere pokaze da nesto fali ili nije OK, napravis workaround kako se to rjesava i sta treba uraditi.

kodi 19. 11. 2008. 22:16

Naravno da ne postoji univerzalno resenje..
ja samo razmisljam kako da eventualne probleme pri update-u svedem na minimum, tako sto cu automatizovati sve sto moze da se automatizuje, a da korisnik ruchno radi samo ono sto mora...

primer - WP pluginovi se instaliraju ruchno (ne znam sad za ove najnovije verzije)
gallery2 ima sitem: refresh plugins list -> install some pugin - sve se radi iz admin panela.

sad, ja naravno mogu da razumem WP tim, oni imaju jedno 1000 puta vishe pluginova, od kojih su neki totalni crap.. ali morate priznati da je mnogo lepse sve odraditi pomocu 2-3 klika nego preko download->unzip->ftp->install

a i nisu ni svi korisnici toliko spretni u tim radnjama...

japan 20. 11. 2008. 00:44

to resenje sa download->unzip->ftp ce uvek raditi, ali te nista ne kosta da prethodno probas da to uradis kroz par klikova iz admin panela, pa tek kad to ne uspe, da isprintas gresku koju dobijas, i da kao resenje ponudis otklanjanje uzroka te greske ili, eventualno, ovu gore pomenutu sekvencu.

mangia 20. 11. 2008. 02:43

Auto zamjena SQL šeme i nije neki problem ali može biti guravo sa permisijama na fajlovima.

Gargoyle 20. 11. 2008. 06:39

Aman ljudi kakve permisije :1092: kaže se dozvole ...

cvele 20. 11. 2008. 07:48

Citat:

Originalno napisao Gargoyle (Napišite 64190)
Aman ljudi kakve permisije :1092: kaže se dozvole ...

Sedi 1, ne ne, mars u cosak + 1

ivanhoe 20. 11. 2008. 14:52

Citat:

Originalno napisao Gargoyle (Napišite 64190)
Aman ljudi kakve permisije :1092: kaže se dozvole ...

a shell se kaze skoljka... :D

i zato sam ja prestao da kupujem prevedene knjige o programiranju

LiquidBrain 20. 11. 2008. 15:14

Posle prve... odustao... :)

mangia 21. 11. 2008. 01:15

software - mekotvorina
hardware - tvrdotvorina

Jedan od prevoda zbog kojeg se zamislim da mijenjam profesiju...

Ilija Studen 24. 11. 2008. 13:51

Upgrade baze nije problem ako paziš na execution time i memory limit. Rebuild search indeksa npr može baš lepo da povuče resursa recimo i ako moraš to da kombinuješ sa još par dodatnih operacija, velika je verovatnoća da se na nekim serverima nećeš uklopiti u limite.

Mi smo problem rešili tako što smo sve korake razdvojili u zasebne rutine koji se asinhrono pozivaju (1. Upgrade postojećih table, 2. Rebuild search indexa, 3. Upgrade dozvola, 4. Something else... 198. Finish). Neka osnovna JavaScript logika se brine o tome da se koraci pozivaju jedan po jedan u odgovarajućem redosledu, ali je svaki korak zaseban request. Nema rollback za sada :(

Nismo imali pritužbe (u pitanju su stotine najrazličitijih servera). Najveći problem koji imamo sa upgrade alatom je što ljudi ZABORAVE da ga izvrše nakon što upgraduju same fajlove :)

Za dozvole - WordPress ima zgodan auto-upgrade plugin, pa možeš overiti source i videti probleme sa dozvolama i fajlovima i kako ih je čovek rešio.

kodi 24. 11. 2008. 14:12

tako nesto sam i nakraju smislio..

otprilike ideja je da svaki update paket ima /migration folder sa fajlivima tipa:
0000-getHostInfo.php
0001-checkPreviousVersion.php
0002-checkPermisions.php
0003-updateDb.php
0004-updateUserClass.php

itd..

e sad to sa js je ok ideja.. svaki fajl lepo moze po zavrsetku da vrati neki json i da kaze da je sve proslo ok, pa onda da se pozove sledeci.

godza 24. 11. 2008. 19:52

Jedini problem sa ajax zahtevima je da moras da 'NAREDIS' korisniku da ne ode sa stranice, i da saceka da se zavrsi upgrade proces.

kodi 24. 11. 2008. 21:01

pa ok.. ima onaj JS fora kao na meebo.com koja te upozorava..

Kôd:

                <script>
                var message = 'You may loose unsaved data!';

                window.onbeforeunload = function (evt) {
                        if (typeof evt == 'undefined') {
                                evt = window.event;
                        }
                        if (evt) {
                                evt.returnValue = message;
                        }
                        return message;
                }
                </script>



Vreme je GMT +2. Trenutno vreme je 20:01.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.