Jump to content
php.lv forumi

Git, SVN serveru konfigurācija priekš versiju kontroles.


Recommended Posts

Labdien, tautieši. 

 

Tā kā man sāk pamazām apnikt klasiskais FTP lietojums, ka katru reizi kaut kas jāsūta augšā, jāmaina izmaiņas, FTP visu laiku tiek noslogots, mūžīgi jāatcerās visādi FTP logini, passi, utt..  Sāk man ļoti apnikt. 

 

Darbos esmu izmantojis SVN, GIT repus, kontroles un ne par ko nevaru sūdzēties, var izmantot jebkur, var sinhronizēt, ērti uzstādīt, utt.. 

 

Problēma sākas tur, ka vienmēr šos gitus, svnus ir konfigurējuši servera cilvēki, bet šoreiz man ir pagadījies tāds gadījums, ka itkā uz serveri git ir, bet tālāk neko negrib saslēgt, salikt un ar FTP visu laiku up, down, negribu strādāt. 

 

Izmantoju gan TortoiseSVN, gan TortoiseGit. Lokāli visus repus sanāk izveidot, atjaunot, pušot, veidot commitus, utt... gan ar vienu gan ar otru, sanāk arī visi github, bitbucket utt...

 

Jautājums ir tāds, kā to vislabāk uzlikt uz serveri, lai es vienkāršā veidā, bez nekādām tur konsolēm, dos komandām, shh varētu ērtā veidā izveidot pullu uz serveri no git repa. Piem lapa.lv/auto/?atjaunot=fox  Kur viņš "angļu mēlē ir deploy" tumša bilde, kas vispār tas pa vārdu ir :) uztaisa. 

 

Atradu šādu te skriptu, laybariju, kas to var izdarīt itkā: https://github.com/markomarkovic/simple-php-git-deploy  Uztaisīju arī bitbucket.org kontu, un pēc pamācības saliku visus key, utt.. 

 

Uz lokālo mašinu sāka bļaut par  not available. It needs to be installed on the server for this script to work. 

 

Cik noprotu, tad tas ir tas, ka uz lokālās kastes man nav git supporta, laiberija? 

 

Uz stulbās servera kastes vēl notestēt nevaru, jo  kāds aka ir tik pat stulbs kā es, un nevar viņu sakonfigurēt līdz galam, lai varu tālāk darboties. 

 

Gribētu vienreiz šo izkost, lai būtu miers.

Link to comment
Share on other sites

Ko tu te stāsti jopt. Pieslēdzies ar putty pie servera, ieinstalē git (ubuntu - sudo apt-get install git), cd /path/to/project/root, "git clone https://external.url/to/git/repo", pēcāk "git pull" lai apdeitotu. Tas ir ārkārtīgi elementāri. Un ja nu tev ir tik ārkārtīgs slinkums slēgties klāt, vari uzlikt web rootā php skriptu (ar atļauju tikai no tavas IP adreses vai user/pass), kas vnk izpilda lokāli "git pull" uz kaut kādiem predefined directories, arī elementāri.

Edited by jurchiks
Link to comment
Share on other sites

Jurčik:

 

1. Kārtām, es teicu, nekādas konsoles. 

2. Kārtām, protams tas ir vienkārši ar komandrindām, putijiem, uttt..

3. Kārtām, man ir tikai pliks FTP pieejams, un vairāk es tur neko nedabošu.

4. PHP skripts ir dabots un būs jātestē.

 

Vispirms, tu kaut ko raksti sakarā ar "Ko tu te stāsti jopt." Izlasi visu līdz galam ko tēmas, topika autors grib pateikt, un jautā. 

Link to comment
Share on other sites

Uz lokālo mašinu sāka bļaut par  not available. It needs to be installed on the server for this script to work. 

 

Cik noprotu, tad tas ir tas, ka uz lokālās kastes man nav git supporta, laiberija?

 

Uz windows nav pieejama komanda "which", bet ja tev ir linux, tad nav pieejama kāda no progas izmantotajām komandām (skaties skriptu, tur viss saprotams).

 

Vai tad tiešām nevar izmantot ko citu, ja jau shell access nedod? Pasisti admini kaut kādi...

Link to comment
Share on other sites

Tā ar to github skriptu viss sanāca, vienīgi bitbuckerī, privātam repam vajag ssh, bez tā nekur. Pubiskos repus veido, atjauno, viss kārtībā un tieši kā vēlējos. Atliek vien iegūt ssh, piekofot, un tad varēs mierīgi pēc url visu darīt. 

Link to comment
Share on other sites

Uzrakstīju garu apcerējumu un tad vēlreiz apskatījos rūpīgāk to skriptu. Sākumā padomāju, ka tas ir pliks deployment skripts, taču izrādās, ka tas prot drusku vairāk, tajā skaitā git clone. Bet īsos vilcienos es ieteiktu pieturēties pie plika deployment. Tālāk tas, ko es biju sākumā uzrakstījis.

 

Tas skripts veic maģisko darbību "Deploy", kas nozīmē, ka uz servera tiek uzlikts tikai update, nevis initial version.

Tādēļ pirmkārt uz servera obligāti ir jābūt uzinstallētam GIT klientam. Ja ir normāls hostings, tad to vienmēr var sarunāt.

Otrkārt, tev uz servera vienmēr vajadzēs caur komandrindu izpildīt "git clone repo_url /webroot/folder/"

Treškārt tev bitbucket`ā vajadzēs nokonfigurēt repozitorijam 2 lietas - 1) https://confluence.atlassian.com/display/BITBUCKET/Use+deployment+keys'>Deployment Key (iekopēt repozitorija settingos, servera komandrindā uzģenerēto, SSH public key).

2) url uz https://confluence.atlassian.com/display/BITBUCKET/POST+hook+management'>deployment skriptu (tas ir darāms repozitorija settingos zem Hooks -> Select a hook... -> POST -> Add Hook). Te vajag atcerēties, ka Bitbucket serveris izsauks šo skriptu, kad tu būsi izpildījis PUSH request, tādēļ ir jāgarantē, lai tava deplayment skripta URL būtu pieejams vismaz no Bitbucket IP adresēm, kuras viņi draņķi ik pa laikam pamainam.

 

Pilnīgi bez komandrindas iztikt būs grūti. Ja tev atsakās dot SSH pieejas, bet ir gatavi uzinstallēt GIT klientu, tad pats vari mierīgi uzrakstīt PHP skriptu, kurš izsauc shell komandu - "git clone" (kā tikko atklāju, tad šis skripts to prot, bet tev uz servera obligāti vajag GIT klientu, kura atrašanās vieta ir norādīta webservera jūzera PATH mainīgajā, otrkārt tev obligāti vajag nokonfigurēt bitbucket deployment key). Pēc tam var mierīgi darbināt konkrēto deployment skriptu. Jebkurā gadījumā es ieteiktu skripta sākumā pievienot pārbaudi uz IP adresēm, lai laiž klāt tikai no bitbucket IP adresēm. Savādāk kāds trollis uzminēs tava skripta adresi un nepārtraukti liks tavam serverim izpildīt git pull.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...