Desidero spostare tutti i miei siti su GitHub per tutti gli ovvi vantaggi. Non sono un grande fan della linea di comando, quindi mi piace GitHub perché mi permette di evitare di toccare tutto ciò. Configurare un repository su GitHub e quindi sincronizzarlo con il mio computer è abbastanza facile. Devo essere in grado di passare automaticamente da GitHub al webserver, anche se quando aggiorno qualcosa localmente al ramo principale, sincronizzandolo con GitHub, esso viene reso disponibile sul sito. Dal cercare su Google il soggetto sembra che la maggior parte delle tecniche richieda la riga di comando o sembra piuttosto complessa. Voglio farlo con circa 15-20 siti (molti dei quali sono ospitati su server diversi da client diversi). Voglio trovare un'opzione che rientra nelle mie competenze e non richiede 2-3 ore per sito. Qualcuno sa del modo migliore e più semplice per configurarlo?Trasferimento da GitHub a un server Web
risposta
La parte che è complesso è il webhook on GitHub
Ogni repository GitHub ha la possibilità di comunicare con un server web ogni volta che il repository è spinto a.
Ciò significa che il tuo sito web deve avere un processo che ascolta quei messaggi JSON inviati da GitHub al ricevimento di un commit.
Potete vedere più esempi di quegli ascoltatori, come questo webhook-deployer, con un'auto.php (per un server php):
<?php
// Prevent accidental XSS
header("Content-type: text/plain");
// Run the script
if ($_POST['payload']) {
shell_exec("./pull.sh");
}
Quel progetto GitHub raccomanda una chiave SSH senza passphrase, che sono d'accordo al primo (per provarlo).
Tuttavia, in particolare per i progetti privati, è consigliabile eseguire un ssh-agent e gestire una passphrase della chiave ssh protetta.
Come Janos comments:
- Se il repository GitHub è pubblico, allora egli non ha nemmeno bisogno di uno.
- Se il repository è privato, allora ne ha bisogno, ma questo non dovrebbe essere preso così alla leggera. Se possibile, dovrebbe usare un agente chiave.
Se ciò è troppo complicato, potrebbe utilizzare una chiave SSH dedicata senza passphrase solo per questa distribuzione e tale chiave non dovrebbe mai lasciare il PC di distribuzione.
Perché si incoraggiano le chiavi SSH senza passphrase? Se il repository GitHub è pubblico, non ne ha nemmeno bisogno. Se il repository è privato, allora ne ha bisogno, ma non dovrebbe essere preso così alla leggera. Se possibile, dovrebbe usare un agente chiave. Se ciò è troppo complicato, potrebbe utilizzare una chiave SSH dedicata senza passphrase solo per questa distribuzione e tale chiave non dovrebbe mai lasciare il PC di distribuzione. – janos
@janos ottimi punti. Ho modificato la risposta e incluso i tuoi punti in essa, per maggiore visibilità. – VonC
So che questo biglietto è vecchio, ma per coloro che trovano questo in qualche modo, cassa dploy.io. Si tratta di un servizio in hosting realizzato appositamente per la distribuzione del repository da GitHub/Bitbucket al server. Supporta i comandi SFTP/FTP/S3/Heroku/SSH e altro ancora.
Disclaimer: io lavoro su dploy.io
Si potrebbe voler dare un'occhiata a questo script PHP:
https://github.com/JohannesHoppe/easy-git-deploy
(Fa un git clone, git pull, git push per voi)
Da diversi anni gestisco tutte le mie installazioni wordpress con quella sceneggiatura.
Suggerimento:: Se si utilizza un ambiente di hosting condiviso, i limiti di script potrebbero interrompere la prima esecuzione.In tal caso, il login tramite SSH e fare il primo clone manualmente:
git clone 'https://user:[email protected]//github.com/user/repo.git'
qui si può anche confermare manualmente l'impronta digitale chiave SSH.
Secondo suggerimento: È necessario proteggere la directory con un file .htaccess/.htpasswd.
- 1. file di trasferimento http da server a server
- 2. Trasferimento dal repository locale al telecomando ospitato da GitHub
- 3. Trasferimento file da HDFS
- 4. trasferimento di byte da un ByteBuffer a un altro
- 5. Notifiche Growl da un server Web
- 6. TFS - Trasferimento a un nuovo server. Come aggiornare le soluzioni con nuove informazioni sul server?
- 7. Repo da RStudio a Github
- 8. Invio a Github da RStudio
- 9. Spostamento da Visual Studio online a Github
- 10. Trasferimento di file da nodo remoto a HDFS con Flume
- 11. Trasferimento sessione su server in PHP
- 12. Trasferimento sicuro utente da un'applicazione ASP .NET a un'altra
- 13. Invia un solo file a GitHub da un repository locale
- 14. Eliminare un commit da github
- 15. Client-Server: trasferimento file da Android a PC collegato tramite socket
- 16. Open source github come interfaccia web
- 17. GitHub: Crea una filiale da un problema
- 18. Come inviare a github da cloud9?
- 19. Migrazione da github enterprise a github.com
- 20. Docker: vai da un repository privato GitHub
- 21. Come pubblicare un sito Web realizzato da Node.js su Github Pages?
- 22. Mirroring di un progetto HG da Bitbucket a Github
- 23. Come posso accedere a un repository Github privato da heroku?
- 24. Come importare un progetto da Visual Studio Online a GitHub?
- 25. Bluetooth: trasferimento della chiamata da Source a sink?
- 26. Trasferimento di lettura DMA PCIe da PC a FPGA
- 27. Nascondere una pagina nel sito Web Jekyll servita da GitHub
- 28. Node.js su MAC: accesso a un server Web Node.js da un altro computer
- 29. Trasferire il repository git "autorevole" da Github a un github privato
- 30. La sottodirectory di un sito Web può essere servita da un server Web diverso?
Il primo passo sarebbe imparare a utilizzare la riga di comando. Ti stai dirigendo verso uno schema abbastanza elaborato, e senza usare la linea di comando non andrai molto lontano. Inoltre, fai attenzione, probabilmente ci sono alcuni file che non inserirai in github (le immagini e i documenti potrebbero non richiedere il controllo del codice sorgente), così come i database da distribuire, e non sarà fatto come per magia ... Penso che cosa dovresti cercare è uno strumento di distribuzione –
Sia che si utilizzi OSX, si può considerare questo flusso di lavoro piuttosto conveniente basato sulla GUI (lo uso anche per alcune cose di WordPress): http://eppz.eu/blog/push-git-to-ftp/ – Geri
Si consiglia di esaminare l'uso di un PAAS come https://www.heroku.com/ che supporta la distribuzione tramite una semplice pressione, ad esempio 'git push heroku master' –