
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.
virtualizace je řešením. Pokud ve svém řešení nepoužíváš IP adresy a naopak použiješ stejnou verzi OS a nastavení jako na fyzickém serveru, bude to prakticky 1:1 a neměl by s tím být velký problém.
Díky, no asi to tak uděláme. Ale zajímalo by mě, jak se to řeší třeba u nějakých větších projektů. Zda a jak tam mají nasimulované v tom virtuálnu třeba i to použití IP adres apod. Přece to nemůžou všechno přepisovat za běhu až při nasazování na produkční server?
Ale to se přece neřeší IP adresou, ale jmenným serverem, nebo v případě malých projektů hosts souborem.
díky, poznamenám si
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.
moc díky za příspěvky, pánové
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.