Newsgroup: it.comp.www.php
Titolo: indipendenza tra directory locali e directory remote

Il mio progetto è formato dalle seguenti directory (più varie 
sotto-directory):
bin
lib
logs
user_profiles
vendor
 
Quando faccio l'upload dalla macchina locale sul server remoto, però 
voglio che le directory logs e user_profiles non vengano uploadate 
(sovrascrivendo i file remoti in esse contenuti).
Insomma voglio che venga mantenuta l'indipendenza (local/remote) tra le 
due directory appena citate.
Come si può fare?
L'unica soluzione che mi è venuta in mente e quella di raggruppare le 
dir. bin,lib,vendor in un apposita sotto-directory (app) e uploadare 
solo quest'ultima:
 
app/bin
app/lib
app/vendor
logs
user_profiles
 
naturalmente però devo ristrutturare alcune parti di codice del progetto...
 
Qualche altra soluzione?


Un'altra soluzione potrebbe essere l'utilizzo di uno strumento di deploying.
Mi ero studiato Phing che è molto semplice ed efficace, ma poi non l'ho mai usato in produzione.
https://www.phing.info/docs/guide/stable/
 

 
https://www.phing.info/docs/guide/stable/
 
 
Boh, vorrei evitare l'uso eccessivo di tools esterni, favorendo il 
deploying-tool-less...
Cmq dovrei un po' studiarmelo.

 Come si può fare?
 
Questo dipende strettamente dalla strategia di deploy che hai.
 
Se stai usando un ftp scriptato ti basta escludere le due cartelle dalla 
lista dei file copiati.
 
Se copi in scp, sftp, cp over nfs, ecc., idem.
 
Se usi git, mettici un .gitkeep dentro alle due da ignorare e piazza 
/cartella/* in .gitignore
 
Bye.

 /cartella/* in .gitignore
 
Non è una soluzione tool-less, cmq vabè!
 


Se non usi (S)FTP, (S)CP, rsync o git allora cosa usi per fare deploy? :O
 
Ciao!

 Se non usi (S)FTP, (S)CP, rsync o git allora cosa usi per fare deploy? :O
 
A parte che sono follie e bisogna usare mercurial, tu capisci cosa vuol 
dire "non essere tool-less"?
 
A rigore vuol dire che è una soluzione che si basa su "tool", e meno 
male perché senza tool dovresti recarti fisicamente sul server remoto e 
scrivere i bit a mano sul supporto di memorizzazione.
 
 
-- 
Andrea
 

 
 
Con le unghie, naturalmente, visto che anche il cacciavite è un tool ;)
 
Ciao!

 Se non usi (S)FTP, (S)CP, rsync o git allora cosa usi per fare deploy? :O
 
 
Uso lftp o rssync per il server locale, e non mi andrebbe di aggiornare 
di volta in volta i parametri.
E se poi decidessi di usare un terzo tool devo per forza impostarlo a 
dovere (ammesso che si possa).
E se poi cambia la struttura del proggetto? Devo rivedere tutti gli script.
Per questo mi chiedevo se ci fosse un modo per svincolarsi dagli script 
(scriverli una volta è lasciarli come sono).
Unica soluzione che vedo è di raggruppare in una sub-dir le dir da 
tenere sincronizzate.

 tenere sincronizzate.
 
Che differenza farebbe, quando cambi quelle stai da capo a dodici.
 
Ciao!

 Che differenza farebbe, quando cambi quelle stai da capo a dodici.
 
Che non devo cercare replicare la configurazione dei vari tipi di script.
Metto tutto in una dir. e quella devono uploadare.
Anche se questa strutturazione non è il massimo dal punto di vista del 
progetto php:
upload/bin
upload/lib
upload/...
/logs
/guestbook
 

 ./deploy.sh
 
Se già fai una cosa del genere non capisco quali siano i tuoi problemi.
 
Ciao!

 fare l'upload.
 
Credo che scriva il comando intero ogni volta che deve fare deploy.
 
Beh, alex, nel caso fosse così, aumenta la HISTORY di bash, poi quando 
devi fare deploy scrivi "sftp" e premi ctrl-r finchè non ritrovi il 
comando completo corretto.
 
Oppure fatti uno script o un alias.
 
Oppure, se usi rsync, puoi avere un file con le exclusion, e lo richiami 
quando lanci il comando.
 
TIMTAMWTDI
 
(AM = A Million)
 
Bye.
 

 (AM = A Million)
 
    TIMTAMWTDI: nothing appropriate
 
Today I May Think A Million Ways To Do It?
 
 
-- 
Andrea
 

 Today I May Think A Million Ways To Do It?
 
There is more than a million ways to do it. :P
 
Bye.
 
 

 There is more than a million ways to do it. :P
 
Ah, IANGWTS.
 
-- 
Andrea
 


 
rsync upload su server locale
lftp per upload su server remoto
lftp per upload su server remoto (mirror 1)
lftp per upload su server remoto (mirror 2)
altrocomando per upload su server remoto (mirror 3)
 
per ogni comando devo specificare le dir da escludere; è proprio questo 
che vorrei evitare
 


Come detto sopra, fatti uno script: tutti i comandi che fai a mano li metti
lì dentro. Oltretutto in uno script puoi usare variabili, array, cicli e
quant'altro per centralizzare la logica nel caso in cui sui tuoi tre/quattro
mirrors dovessi fare le stesse operazioni.
 
Ciao!

 mirrors dovessi fare le stesse operazioni.
 
poi se mi devo trasferire il tutto su una macchina non mia, in cui non 
sono installati tutti gli strumenti, vabè...
non si può ottenere la massima portatilità :)