Domanda

Sono stato riferisco a http://toroid.org/ams/git-website -HOWTO come un punto di partenza per un server di produzione web in esecuzione su un VPS gestiti. Il VPS corre cPanel e WHM, e finirà per ospitare più siti web dei clienti, ognuno con le proprie conto cPanel (quindi, ciascuno con la propria directory utente e la casa di Linux da cui vengono serviti i siti). Il sito di ogni cliente è un repository Git separata.

Al momento, sto spingendo ogni repository tramite SSH ad un repo nuda nella cartella casa del cliente, per esempio /home/username/git/repository.git/. Come per il tutorial sopra, ogni repo è stato configurato per cassa un'altra directory tramite un gancio post-ricezione. In questo caso, ciascuno di pronti contro termine controlli fuori al proprio /home/username/public_html (la DocumentRoot di default per i nuovi account cPanel), in cui i file vengono poi serviti da Apache. Anche se questo funziona, mi richiede di impostare (nel mio ambiente di sviluppo locale) mio telecomando in questo modo:

url = ssh://username@example.com/home/username/git/repository.git/

Mi richiede inoltre di inserire la password dell'utente ogni volta che mi spingo ad esso, che è proprio l'ideale.

Nel tentativo di centralizzare tutti i miei repository in una cartella, ho anche provato a spingere per /root/git/repository.git come root e poi check-out alla home directory appropriata da lì. Tuttavia, questo fa sì che tutti i check-out file da proprietà di root, che impedisce Apache dal servizio del sito, con errori come

[error] [client xx.xx.xx.xx] SoftException in Application.cpp:357: UID of script "/home/username/public_html/index.php" is smaller than min_uid

(che è un problema di proprietà dei file / permessi, per quanto posso dire)

I può risolvere che problema con i comandi chown e chgrp in ogni repo post-ricezione gancio - tuttavia, che solleva anche la "non va" bandiera nella mia testa. Ho anche considerato gitosis (per centralizzare tutti i miei pronti contro termine in /home/git/), ma suppongo che avrei incontrato lo stesso problema proprietà del file, dal momento che il file estratti sarebbe poi di proprietà dell'utente git.

Sono solo avvicinarsi a questo intera cosa nel modo sbagliato? Mi sento come se mi manca completamente un terzo, soluzione più elegante al problema generale. O devo solo attenersi a uno dei metodi che ho descritto sopra?

È stato utile?

Soluzione

  

Mi richiede inoltre di inserire la password dell'utente ogni volta che mi spingo ad esso, che è proprio l'ideale

Non dovrebbe essere necessario se si pubblica il chiave SSH pubblica sul conto destintion file ".ssh/authorized_keys".

Si veda anche di bloccaggio ssh chiavi autorizzate per esempio.
Ma anche il riferimento ufficiale Pro Git Book "Configurazione del server" .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top