View Full Version : Consigli ambiente di lavoro per programmazione web via ssh
Ciao a tutti, volevo chiedere qualche consiglio a chi ha già qualche esperienza di programmazione web su server remoto attraverso connessione ssh. Io utilizzo Putty per la connessione e poi emacs ( non sono un esperto ma mi son dovuto adattare in questa situazione perchè nano non era proprio un'opzione.. ) per l'editing dei file ( fondamentalmente PHP, javascript e HTML/CSS ).
Sulla macchina remota è installato X server ma io utilizzo solamente la console. Mi pare che sia possibile anche via ssh utilizzare un ambiente grafico o anche solo lanciare un applicazione grafica ma chiedo conferma :-)
Comunque, arrivando al sodo, quale è secondo voi in queste condizioni il miglior modo per lavorare? Tralasciamo il sync a mano di file editati in locale e poi salvati in remoto perchè son troppo pigro per farlo ogni volta.
Grazie a tutti per l'aiuto!
wizard1993
02-01-2009, 22:48
ma usare midnight commander?
http://www.ibiblio.org/mc/
Vedo che ha un editor interno con anche la sintassi colorata ma non è esattamente quello che sto cercando. Ora sto cercando di mettere in piedi il forward di ssh attraverso Putty, non dovrebbe essere complicato. Vediamo se mi soddisfa :p
EDIT: mmm, non è malissimo, credo che mi ci potrei trovare bene, anche se è un po' lento..
Non puoi scrivere il codice in locale e poi spostare i file sul server con scp ?
Considera che spesso mentre lavoro faccio piccoli cambiamenti per vedere come risultano e continuare a fare scp ad ogni cambiamento non credo sia la scelta più produttiva. Forse avendo uno strumento che sincronizza automaticamente i cambiamenti di un mio file in locale appena lo salvo sarebbe la miglior cosa. Ne conoscete?
Considera che spesso mentre lavoro faccio piccoli cambiamenti per vedere come risultano e continuare a fare scp ad ogni cambiamento non credo sia la scelta più produttiva. Forse avendo uno strumento che sincronizza automaticamente i cambiamenti di un mio file in locale appena lo salvo sarebbe la miglior cosa. Ne conoscete?
Ti puoi fare uno script o un programma te che monitora un directory ed in caso di cambiamenti nella data del file lo invia sul server...il tuo computer è Windows o Linux (non il server) ?
Uso entrambi i sistemi operativi. Si potrei scrivere qualcosa io che controlli in background, ma esiste mica qualcosa di un po' più professionale di quello che potrei arrivare a scrivere io? Mi pare impossibile che nessuno c'abbia pensato prima...
Ci sono tutti i vari subversione e cvs con rispettivi plugin, ma non mi sembra si stia parlando di mettere mano al server.
Dai un occhio a questo:
http://winscp.net/forum/viewtopic.php?t=4181
No il server non si può toccare, credo sia radioattivo.. :rolleyes:
Questo link sembra proprio quello di cui ho bisogno, ti faccio sapere dopo un po' di smanettamento, grazie ;-)
Attento che non verifica automaticamente che sia avvenuto un cambiamento nel file, ma ti permette di aggiornarlo con un semplice click su un'icona. Se non sbaglio però Operazioni Pianificate permette di monitorare i cambiamenti in una directory ;)
Sicuro? Non vedo l'opzione nella creazione di una nuova attività. Intanto ho trovato questo script in Perl
http://www.nooblet.org/blog/2008/directory_monitorpl-monitor-directory-for-file-changes/
che monitora una directory costantemente, modificando lo script posso dirgli cosa fargli fare quando succede un cambiamento e potrei appunto far partire winscp che fa il sync. Non sarebbe male a parte il continuo polling dello script in Perl ma posso anche sorvolare :p
Non sarebbe male a parte il continuo polling dello script in Perl ma posso anche sorvolare :p
Ottimo. Mettici un delay di 1 sec o se è possibile di qualcosina meno, così lo sopporti ancora meglio ;)
Per le operazioni pianificate mi sa che mi sono sbagliato ;)
L'autore dello script c'aveva già pensato. Purtroppo guardando il codice mi pare che non faccia controlli nelle sottocartelle e questo è male. Dovrò metterci un po' mano. Fortuna che adoro il Perl :cool:
Fortuna che adoro il Perl :cool:
:eek: Beato te :D
Oppure potrei usare questo spettacolare modulo File::Monitor:
http://search.cpan.org/dist/File-Monitor-0.10/lib/File/Monitor.pm
Si si credo proprio che lo farò.
Ciao a tutti, volevo chiedere qualche consiglio a chi ha già qualche esperienza di programmazione web su server remoto attraverso connessione ssh. Io utilizzo Putty per la connessione e poi emacs ( non sono un esperto ma mi son dovuto adattare in questa situazione perchè nano non era proprio un'opzione.. ) per l'editing dei file ( fondamentalmente PHP, javascript e HTML/CSS ).
Comunque, arrivando al sodo, quale è secondo voi in queste condizioni il miglior modo per lavorare? Tralasciamo il sync a mano di file editati in locale e poi salvati in remoto perchè son troppo pigro per farlo ogni volta.
Grazie a tutti per l'aiuto!
emacs + tramp
In pratica emacs si smazza tutta la parte di accesso ssh, copia in locale, e upload in remoto quando salvi.
Nelle versioni recenti di emacs e' integrato nella distribuzione per cui ti basta scrivere il path del file in modo opportuno, ad esempio
/
[email protected]:/path/to/file.php
La cosa carina e' che eventuali comandi di shell che richiami vengono eseguiti nella sessione ssh. Ad esempio io la uso per compilare ed eseguire i test in remoto dal mio portatile.
Molto interessante anche questo, credi che funzionerebbe bene anche se servisse una prima connessione ssh per collegarsi al nodo esterno della rete e poi un'ulteriore connessione per accedere al server interno dove devo editare i files?
Molto interessante anche questo, credi che funzionerebbe bene anche se servisse una prima connessione ssh per collegarsi al nodo esterno della rete e poi un'ulteriore connessione per accedere al server interno dove devo editare i files?
Direttamente forse no. Ma ti basta forwardare la porta con ssh prima e poi collegarti direttamente sulla porta locale
ad esempio prima da linea di comandi dai
ssh -L 1234:internal-server.com:22 -N remote-server.com
e poi in emacs usi
/myname@localhost#1234:/path/to/file
come percorso. Un trucco del genere non e' ovviamente limitato ad emacs.
Ah ecco, immaginavo che si potesse fare una cosa del genere, mi manca un po' di esperienza con ssh purtroppo..
Però lo costringe ad usare Emacs come editor in locale...è partito cercando di usare qualcosa di diverso da Emacs in remoto ed è arrivato ad usare Emcas in locale ? :stordita: :D
E' comunque piu' comodo per chi e' poco pratico dell'editor :p.
Toolbar, menu usabili con il mouse, piu' finestre contemporaneamente e decisamente piu' veloce.
Se poi deve solo uploadare i file che modifica l'altra soluzione puo' comunque andare bene, questo e' chiaro.
Si in effetti se posso usare xemacs nel mio confortevole Gnome la situazione cambierebbe decisamente in meglio. Spero così di non offendere il buon gusto di nessun purista della console :p
Ecco quello che ho fatto per ora:
ssh -L 1234:inner_host:22 username@gateway_host
dopo di che con emacs
emacs22-gtk /username@localhost#1234:
E così riesco ad usare emacs in versione GTK da Gnome che è decisamente meglio che redirigere X. Mi volevo togliere lo sfizio di usare la funzione di tramp che consente di specificare più salti per raggiungere l'host remoto ma non riesco a farla funzionare. Se avete qualche idea che vada bene nel mio caso sono pronto ad ascoltare consigli :p Intanto grazie per l'aiuto finora!
EDIT: adesso con un po' di modifiche ho reso emacs un po' più usabile per me ( devo sistemare il font che anche se mi piacerebbe ancora avere qualcosa che mi permetta di inserire velocemente ad esempio cicli for o while, strutture if else, principalmente in php, come posso fare anche con GEDIT. Non mi pare che php-mode fornisca questo tipo di opzioni
EDIT2: ho trovato un buon plugin per gli snippets! http://code.google.com/p/yasnippet/ Di default non contiene però quelli per il PHP ( ma povero PHP mi pare che non venga trattato bene :-) ) che mi sono dovuto scaricare a parte da qui http://apgwoz.com/hacks/yasnippet-php-mode.tar.gz ( il file ha estensione .tar.gz ma in realtà si deve rinominare in .tar ). Ora a parte la bruttezza estetica di emacs ci sono quasi ^_^
non ti posso aiutare per il PHP in quanto non lo conosco a sufficienza.
Per i font, verifica che la tua build di emacs supporti anti-aliasing e truetype.
Quelle decorosamente recenti lo fanno di default.
Io di solito uso
(set-default-font "Monospace-10")
in .emacs, o meglio ancora
(set-default-font "Bitstream Vera Sans Mono-9")
e i risultati sono ottimi
Leggi un po' qui: http://www.micahcarrick.com/09-29-2007/gedit-html-editor.html
Sembra che ci sia la possibilità di editare file live con gedit tramite SSH.
Caspita, non male Gedit utilizzando GnomeVFS :eek: Grazie della dritta! Adesso voglio provare a compilare l'ultimo emacs sulla mia macchina perchè dal repository posso scaricare solo una versione che non supporta antialiasing e truetype. Vi faccio sapere come viene ;-)
EDIT: ecco come sempre meglio fare un'analisi più approfondita prima di parlare.. Credo che ci siano dei problemi con GnomeVFS perchè Gedit non mi consente di salvare i file ( dicendomi che non ho i permessi sufficienti ) quando in realtà i file hanno me come proprietario..uff..
EDIT: uau questo è ottimo! Ho scoperto sshfs, un pacchetto che utilizzando FUSE consente di montare un file system remoto tramite una connessione ssh! I problemi di permessi in questo modo sono spariti e posso gestire in maniera molto più fine ogni cosa rispetto a GnomeVFS. Ovviamente per le applicazioni risulta tutto trasparante, compreso Gedit ;-)
EDIT: continua la saga, ho trovato una cosa equivalente anche per Windows, solo che è a pagamento. Si chiama sftpdrive ( http://www.expandrive.com/sftpdrive/ ). Eventualmente un modo abbastanza facile di "usare sshfs su Windows" è di avere una macchina virtuale Linux funzionante su Windows con installato sshfs. Montate il file system virtuale su tale macchina virtuale e successivamente condividete la cartella sulla quale lo avete montato con samba. A questo punto potete mappare da Windows un drive di rete su tale cartella condivisa e siete a posto. Può essere un po' scomodo soprattutto perchè dovete tenere una macchina virtuale sempre accesa. Per questo consiglio magari una distribuzione linux non troppo pesante e magari non grafica come può essere una Debian liscia senza DE.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.