Gestire un sito Web con controllo di versione?

5

Il piccolo sito Web che ho costruito molto tempo fa sta iniziando a raccogliere un po 'e sto iniziando a riscontrare problemi con le modifiche. Originariamente, tutte le pagine erano .html e io le modifico e le collaudo offline per assicurarmi che tutto funzioni. Poi ho capito quanto fossero utili i php include, quindi ho cambiato tutto in .php e used include. Senza apache, non potevo più testare offline, quindi con Filezilla avrei scelto l'opzione "visualizza / modifica" sui file che erano già sul server, li ho modificati e quindi li ho caricati di nuovo. Questo è quello che ho fatto finora e ha funzionato abbastanza bene per la maggior parte. Ho appena salvato il file temporaneo creato da filezilla, e lo lascio caricare sul server.

Ieri mi sono reso conto che uno dei file javascript in cui avevo lavorato il giorno prima era stato sostituito da un file vuoto. Questo era qualcosa che aveva a che fare con il testo sublime mantenendo aperto il file temporaneo non esistente / filezilla caricando un file vuoto - non sono proprio sicuro di cosa sia successo, ma non avrebbe potuto accadere. E ora, ho bisogno di cambiare il design del sito, e fare quella pagina alla volta sarebbe notevole, quindi ho bisogno di farlo offline prima.

Vorrei usare il controllo della versione e installare apache in modo da poter testare completamente il mio sito offline, ma ci sono un paio di problemi con questo. Il primo è che ho un forum sul sito. Potrei installare mysql ed esportare le tabelle, quindi importarle offline, ma poi, mentre le persone pubblicano post sul sito, la copia offline diventa obsoleta e non posso più caricarla sul server. Ho anche alcuni script Python sul sito usando WSGI. Le impostazioni del mio webhost sono molto specifiche, quindi se scrivessi offline gli script Python e assicurassi che funzionavano, non saprei se avrebbero funzionato online.

Devo modificare tutto offline e caricarlo di nuovo sul server quando funziona? Cosa succede se uno script php o python viene eseguito in un modo sul mio computer locale piuttosto che sul server?

    
posta mowwwalker 09.05.2012 - 21:27
fonte

5 risposte

9

Il controllo della versione ti aiuterà solo nella misura in cui potrai tornare alle versioni precedenti (si spera funzionino).

Non aiuterà con le implementazioni e le modifiche fallite.

È necessario disporre di un ambiente di test, un server Web su cui è possibile inserire le modifiche e testarle e solo quando è felice, passare a un server Web live (visibile pubblicamente).

    
risposta data 09.05.2012 - 21:31
fonte
3

Suppongo che tu stia utilizzando Windows, ma funziona anche su Linux e Mac.

Per prima cosa, ti consiglio di installare XAMPP sul computer su cui lavori. È un bundle di Apache, MySQL e PHP, installarlo e darvi una configurazione di base che dovrebbe essere sufficiente per testare le basi. L'intero sito può quindi risiedere sul PC e si risparmia molto tempo nel caricamento / test. Tutto ciò che devi fare è salvare il file e aggiornare il browser.

In secondo luogo, ti consiglio di avere una versione di sviluppo del tuo sito sullo stesso server che ospita il sito. Sembra che il tuo sito non sia enorme, quindi questo non dovrebbe essere un problema. Quello che faccio è avere una directory www.mysite.com/dev che contiene l'intero sito. Dopo aver apportato modifiche, carico i file modificati nella cartella "dev" e li collaudo. Se tutto va bene, so che posso caricare nella cartella principale e probabilmente funzionerà pure. Proteggo la directory / dev con un file .htaccess.

Quindi, in sintesi:

  1. Apporta le modifiche sulla tua copia locale del sito.
  2. Verifica le modifiche localmente (su link )
  3. Carica e prova le modifiche su yoursite.com/dev
  4. Carica e conferma su yoursite.com.
risposta data 09.05.2012 - 22:43
fonte
0

Serve un server di prova.

Se il proprio PC esegue già Linux o alcuni gusti Unix, installare Apache dovrebbe essere semplice. In caso contrario, crea il tuo server - scegli semplicemente una distribuzione Linux decente (ti consiglio debian, è super-affidabile e abbastanza facile da installare, ma ce ne sono molte altre tra cui scegliere) e installalo su un PC di riserva che potrebbe essersi steso in giro o all'interno di una macchina virtuale sul proprio PC.

Il vantaggio aggiuntivo di un server di test dedicato è che puoi testare non solo il tuo codice, ma anche la tua procedura di distribuzione, specialmente se il server di prova è molto simile all'ambiente reale (stessa struttura di directory, stesse versioni del software, ecc. ).

Scoprirai anche le nozioni di base sull'amministrazione del sistema * nix, il che è positivo perché capirai meglio ciò che stai facendo come programmatore.

    
risposta data 09.05.2012 - 21:57
fonte
0

Sento che non sei così aperto alla configurazione di un server di prova. Non ti biasimo. Che ne dici di creare un altro account di hosting e testare il tuo sito lì? Distribuirlo da SCM durante il test. Quando sei soddisfatto, implementalo nel dominio "reale".

    
risposta data 09.05.2012 - 23:02
fonte
0

Nel 2012 il modello migliore è qualcosa di simile a Heroku o ad uso di app-port: ti impegni in un repository specifico e il tuo materiale viene spinto verso l'alto. I rollback e la cronologia delle versioni sono facili perché si sta utilizzando un solido sistema di controllo dei sorgenti per gestire tutto.

Nel caso di un sito web statico, è possibile simularlo abbastanza facilmente utilizzando uno script che fa semplicemente la chiamata da riga di comando appropriata per aggiornare una cartella agli intervalli specificati.

    
risposta data 09.05.2012 - 23:35
fonte

Leggi altre domande sui tag