Portál AbcLinuxu, 12. května 2025 04:06

Dotaz: Ako na deploy php + mysql web aplikacie

22.3.2011 21:02 Mike Stuffel
Ako na deploy php + mysql web aplikacie
Přečteno: 207×
Odpovědět | Admin
Dobry den,

mam prenajaty virtual -> klasicky LAMP. Na svojom laptope mam rozchodeny tiez LAMP + SVN server. Rad by som sa opytal ako co najjednoduhsie (na jeden klik) deploynut databazove a php subory.

Teraz to riesim skriptom, ktory: 1. vyexportuje mysql databazu aj s datami na laptope 2. vyexportuje data z SVN a vymaze .svn adresare 3. vytvori ssh tunel na virtual 4. vymaze, nakopiruje php skripty na virtual 5. vymaze, naimportuje mysql databazu na virtual

pripada mi to ako skriabanie sa lavu nohou za pravym uchom. ako to to vlastne robi na profesionalnej urovni?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 23.3.2011 00:27 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Ako na deploy php + mysql web aplikacie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Databáze: udržuj si changelog.sql (nemusí to být nutně jeden soubor). Tam budeš mít příkazy, kterými jsi měnil databázi a prostě ty správné ve vhodný okamžik spustíš. Dá se to i automatizovat a není to nijak těžké (hodí se mít jednu tabulku, kde budou nějaká metadata o databázi a skript, který koukne, co je zpracované a co není).

Se zdrojáky je to trošku jednodužší: rsync. Napíšeš si jednoduchý skript, který ignoruje .svn/ a generovaný bordel a aktualizuje co potřebuješ, případně i vymaže nacachovaná data. Vlastní přenos probíhá po ssh (rsync to umí sám od sebe), changelog.sql měj jako součást zdrojáků a updatovací skript také.

Nabízí se i možnost propojení s repositářem, ale pro produkční nasazení více instalací doporučuju udělat si instalátor, který si stáhne aktualizace z repositáře (ať už přímo nebo automaticky generovaný balíček) a který vyvoláš ručně, když je důvod k aktualizaci.

Také jsem viděl (a pro některé věci i používám) propojení dvou repositářů gitu, kdy první je "bare" a slouží jako centrální repositář. Webserver (lighttpd, apache) pak má druhý repositář (s pracovní kopií), který zobrazuje. V případě uploadu změn do prvního se zavolá script (hook), který provede fetch & checkout v druhém. Elegantní a bezproblémové. Ale spíš se to hodí na testovací účely. V případě svn by to asi šlo také, jen ten druhý by nebyl repositář, ale klasická pracovní kopie. Samozřejmě je potřeba ošetřit znepřístupnění všech .svn a .git souborů.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.