Sitecopy is een tool dat je toelaat om je remote opgeslagen webpaginas synchroon te houden met deze die lokaal staan. Met andere woorden,
als je je site lokaal aanpast en je runt sitecopy, dan gaat hij remote de gewijzigde files gaan aanpassen.
De officiëe website van sitecopy is http://www.lyra.org/sitecopy/. Op de website zie je dan ook voor welke besturingssystemen
sitecopy verkrijgbaar is. In ieder geval, sitecopy draait op elk unix systeem. Onder FreeBSD volstaat het
om cd /usr/ports/www/sitecopy te doen en een make install clean. Voor Linux kan het zijn dat sitecopy
al bij je dist zit, zoniet, donwload gewoon de tarball, uitpakken en installeren.
Voor windows, volg de instructies op de website van sitecopy om het te installeren.
Met het commando man sitecopy kom je al heel wat verder. Ik ga hier mijn website gebruiken om jullie duidelijk te maken hoe je sitecopy
kunt configureren.
Lokaal staat mijn website in /usr/local/www/data. Het remote adres van mijn website is http://www.essetee.be en mijn webpaginas staan
daar in de directory www.
Iedereen heeft zo zijn eigen methode om aan zijn website te werken. Ikzelf bijvoorbeeld heb een aparte dir in mijn serverroot die ik testing
heet. Daarin maak ik mijn toekomstige webpaginas aan. Als alles werkt, kan ik dan alles naar mijn serverroot kopiëen.
Als ik sitecopy run, moet hij natuurlijk die dir testing niet uploaden naar mijn remote adres. Dus gaan we die excluden.
Voor het aanmaken van mijn webpaginas gebruik ik veel de bluefish html-editor of gewoon vim om rap een pagina aan te passen.
Deze editors maken automatisch een backup van je file voordat je die gaat wijzigen. Als je bv de file index.php gaat wijzigen, dan gaat er
direkt een file index.php~ worden aangemaakt. Het is dus ook de bedoeling niet dat wij die files gaan uploaden.
Als je nu bijvoorbeeld in je serverroot aan het werken bent, en je start er een programma op, dan kan het eens gebeuren dat het programma
om de één of andere reden crasht. Bij dergelijke crashes worden vaak core files aangemaakt die een serieuze grootte kunnen hebben.
We gaan er natuurlijk voor zorgen dat sitecopy die core files zeker niet gaat uploaden.
Op mijn remote site heb ik phpmyadmin ter beschikking om mijn MySQL database te beheren. Lokaal draai ik een andere versie van
phpmyadmin, dus we gaan die dir ook skippen.
Remote heb ik een paar dirs staan, die ik lokaal niet heb. We zorgen er dan ook voor dat sitecopy die directories remote niet gaat verwijderen.
Het eerste wat we gaan doen is een .sitecopy dir aanmaken in onze homedir met de permissies 0700. Die permissies moeten wel degelijk zo
staan, anders zal sitecopy weigeren te werken.
serge $> mkdir -m 700 .sitecopy
Vervolgens gaan we een .sitecopyrc file aanmaken. De inhoude van deze file kan er zo uitzien volgens de gevens verstrekt hierboven :
De nummering moet niet overgenomen worden he, is bedoeld voor de uitleg die erop volgt :-)
Uitleg bij de opties :
1. site essetee : essetee is gewoon een naam waaronder ik mijn site wens aan te spreken
2. server www.essetee.be : het adres van mijn site waar ik die kan bereiken via ftp.
Met een ftp client moet ik dus op dat adres inloggen.
Voor pandora users zal dat bv users.telenet.be zijn.
3. url http://www.essetee.be : Spreekt voor zich :-)
4. username mijn_login : de usernaam die je gekregen hebt om via ftp te connecten naar je website
5. password mijn_aswoord : het paswoord dat je gekregen hebt van je provider om in te loggen op je website
6. protocol ftp : het protocol dat we gaan gebruiken om onze files up te loaden.
7. remote ~/www/ : De directory waar mijn webpaginas remote staan.
8. exclude /testing : De lokale directory testing moet niet upgeload worden. Geen "/" plaatsen op het einde.
9. exclude /phpmyadamin : Zelfde als hiervoor
10. exclude *~ : De files die eindigen op ~ gaan we ook niet uploaden.
11. exclude *.core : Zelfde als hiervoor.
12. nodelete : Dirs en files dat we remote staan hebben maar niet lokaal gaan we niet verwijderen !
De laatse optie nodelete is dus heel belangrijk. Ik heb bijvoorbeeld remote een dir webstats staan voor mijn webstatistieken. Deze webstatistieken worden bijgehouden door mijn webhoster. Als ik de nodelete optie niet toevoeg, gaat sitecopy doodleuk die directory gaan deleten :-)
Als je de file hebt aangemaakt, doe dan een chmod 0600 op de file.
We moeten er nu voor zorgen dat sitecopy voor de eerste maal onze beide sites synchroniseert. We runnen dan sitecpoy voor de eerste keer met het commando : sitecopy --catchup essetee of sitecopy -c essetee. essetee is hier de naam die ik specifieerde op de eertse regel van mijn .sitecopyrc file namelijk : site essetee.
Als je nu paginas gaat toevoegen of aanpassen run dan gewoon sitecopy --update essetee of sitecopy -u essetee.
Alle nieuwe of gewijzigde files gaan nu op je remote adres worden aangepast. Als je een redelijk grote site hebt om te onderhouden is sitecopy van onschatbare Vroeger moest ik alle files één voor één uploaden naar mijn remote adres, en het gebeurde wel eens dat ik er eentje vergat. Met sitecopy moet ik mij nu daarvan niets meer aantrekken :-)
