
Testovací prostředí pro vývoj webů před uploadem na server
Na serveru běží Debian a klasika webový sw využívající PHP, MySQL, Apache. Vývoj probíhá na stanici s win7, xampp. Z toho plynou problémy: před uploadem otestovaného kódu na server je třeba pozměnit cesty k souborům a adresářům apod. Proto přemýšlím o nějakém řešení jak toto obejít a eliminovat tak možnosti vzniku dalších chyb a nutnost dalšího testování. Můžete doporučit jaká jsou vhodná řešení? Je vhodné použít např. virtualizaci a server nějak zezrcadlit (jak?). Nebude nějaký problém v souvislosti s tím, že server poběží ve virtuálu na jiné ip adrese?
Řešení změny serveru na windowsí prosím neuvažovat.
Uvítám veškerá nakopnutí správným směrem. Předem děkuji.
Ty nepoužívaš absolútne cesty ?
ne, proč?
Protože kdyby cesty byly relativní, nemusel bys nic přepisovat...
On se ptal ale na absolutní. Používám relativní, ale v linuxu a na lokále ve win ten zápis je jiný.
No, hlavně že víme, o čem je řeč.
Nikdy jsem neměl problém s cestami (na lokále pod Win a na serveru s Linuxem). Máš nějaký konkrétní příklad?
Rozhodně souhlasím s Touchwoodem. Osobně jsem stejný "problém" vyřešil instalací VirtualBoxu na své pracovní Windows stanici. V něm běží debian s apachem a stejnou verzí php a databází jako na produkčním serveru (a jeho databází). Struktura adresářů s weby je také stejná, jako na produkci. Tím se eliminuje nutnost přenastavovat jakékoliv cesty.
Dále mám na virtualu v /usr/share/php* stejné sdílené knihovny, jako na produkci a pozapínané všechny moduly pro apache/php (rewrite, mcrypt atd..) Ale moc toho naštěstí oproti defaultní instalaci debianu není, takže je to ponastavované za chvilku.
Z IDE se pak připojuju na tuto lokální verzi, kde dělám veškeré úpravy.
Když jsou úpravy ready, tak přes ssh pomocí rsync (na mym virtualu) zkopčím/uploadnu soubory na produkční server. Žádný ruční kopírování, jen spuštění jednoho scriptu, který to obstará. Odpadá tak nutnost přepisovat cesty + si v tom synchronizačním scriptu (což doporučuju používat, než furt psát rsync --tunymodifikatoru..) můžeš udělat třeba kontrolu, jestli už na produkční verzi neexistují nějaké novější soubory, který u sebe ve virtualu nemáš a tímto bys je přepsal a přišel tak o práci. Jak na to, se možná dozvíš, jestli mi někdo odpoví na tento dotaz: http://pc.poradna.net/q/view/1335103-linux-porovna ni-adresaru-novejsich-souboru :)
Případně si můžeš udělat v konfiguráku tvého webu (ne virtualhostu apache, ale tvé php aplikace) podmínku, jestli se zrovna jedná o (připojuješ se na) vývojovou či produkční verzi. Pro každou verzi pak budeš mít rozdílné cesty, ale i ostatní nastavení jako třeba credentials(sorry, český ekvivalent mě teď nenapadá.) k databázi apod.
Záleží teda samozřejmě na tom, jak moc "správnou" cestou jste se vydali a jestli veškerý tyhle "proměnný" jako cesty, údaje k databázi.. máte konfigurovatelný na jednom místě a ne třeba naprasený přímo v útrobách kódu zdrojových.
stojím zuřivě s bičíkem nad každým, kdo chce uhnout z objektového řešení aplikace
Rozdiely v prostrediach sa všade, pri veľkých či malých projektoch, riešia konfiguračným súborom tak, že pri uploade na server nie je potrebné nič meniť. Konfiguračný súbor sa samozrejme napíše len raz a potom sa už neprepisuje.
Cieľom nie je mať úplne totožné prostredie, pretože nie je celkom žiaduce mať napríklad rovnaké prístupové heslá do testovacej databázy a do ostrej databázy.