Ana Sayfa » Genel » CentOS üzerinde Git Server + Gitweb Kurulumu

CentOS üzerinde Git Server + Gitweb Kurulumu


BerbatKötüİdare EderGüzelHarika (Toplam 7 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYdKSIqh' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349

git_logoUzun zamandır yazdığım scriptleri vs. muhafaza etmek için git kullanıyorum. Git, hem hafif hem de kullanışlı olması açısından development ile alakası yönetimsel scriptler yazmaktan öteye gitmeye sistem adminleri için de ideal.

Kodlarınızı, bitbucket vs. gibi private git repository hizmeti veren online servisler üzerinde depolayabileceğiniz gibi benim yaptığım gibi mütevazi bir vps üzerinde kendi git sunucunuzu çalıştırabilirsiniz. Bu yazıda CentOS 6.4 üzerinde git sunucu kurulumu ve git depolarına http üzerinden erişim sağlamak üzere gitweb kurulumu ve entegrasyonundan bahsedeceğim.

GIT

Öncelikle git kurulumu yapıyoruz:

# yum install git

Kurulum sonrası git depolarını içerecek bir dizin açıyoruz. Ben /projects isimli bir dizin kullanıyorum:

# mkdir /projects

ve dizin için gerekli permission'ları veriyoruz:

# chown kullanıcıadı /projects
# chmod 755 /projects
# chcon -R -t httpd_sys_content_t /projects # gitweb icin Selinux http context'i.

İzinlerin ayarlanması sırasında dizinin sahibini ben özellikle kendi global kullanıcım olarak set ediyorum. Bu şekilde herhangi bir git deposunu local bilgisayarıma clone'layıp üzerinde çalıştıktan sonra ssh üzerinde push için kendi kullanıcımı kullanabiliyorum. (Dizinin sahibi root olasaydı, ssh push işlemini root üzerinden yapmam gerekirdi, ancak ssh üzerinden direk root erişimi güvenlik açısından önereceğim bir şey değil.)

Temel olarak kurulum bu kadar, bundan sonra /projects dizini altında kendi git repolarınızı oluşturabilirsiniz. Örnek olması açısından test isimli bir repo oluşturalım:

# cd /projects
# mkdir test
# git --bare init

Bu şekilde test isimli boş bir repo oluşturmuş oluyoruz.

GITWEB

Yazının başında bahsettiğim gibi gitweb git repolarına http üzerinden erişim sağlayabilmek için bir frontend. Perl ile yazılmış ve CGI script olarak kullanılabildiğinden ya da ngnix ile entegre edilebiliyor ve kod depolarınızı web üzerinden browse edebilmenize olanak sağlıyor.

Ben gitweb'in üzerindeki yapılandırmasından bahsedeceğim. Bu nedenle devam etmeden önce sisteminizde apache'ni kurulu ve düzgün bir şekilde çalıştığından emin olun.

Gitweb'i yine base yum repo'muzdan kuruyoruz:

# yum install gitweb

Kurulumun ardından apache'nin yapılandırmaya başlıyoruz.

Düzenlememiz gereken iki adet yapılandırma dosyası mevcut. Bunlardan birisi /etc/gitweb.conf isimli ana yapılandırma dosyası. Bu dosyayı editleyip aşağıdaki satırları ekleyin:

$projectroot = '/projects/';
$git_temp = "/tmp";
#$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;
$stylesheet = "gitweb.css";
$logo = "git-logo.png";
$favicon = "git-favicon.png";

Kırmızı ile belirtilmiş bölüm git repolarımızın bulunduğu dizine atıfta bulunuyor. Siz yazıda anlatılandan farklı bir dizin kullandıysanız bu noktaya dikkat edin.

İkinci olarak, /etc/httpd/conf.d/git.conf isimli apache yapılandırma dosyasını editleyelim ve içeriğini sildikten sonra (ki ben virtualhost olarak kullanıyorum.) Aşağıdaki tanımlamayı girelim.

<VirtualHost *:80>
 
      ServerAdmin [email protected]
      ServerName  git.syslogs.org
 
      DocumentRoot /var/www/vhosts/git
      DirectoryIndex gitweb.cgi
 
<Directory /var/www/vhosts/git>
   Options +ExecCGI
   AddHandler cgi-script .cgi
 
   SetHandler cgi-script
   </Files>
</Directory>
 
DirectoryIndex gitweb.cgi
 
SetEnv  GITWEB_CONFIG  /etc/gitweb.conf
</VirtualHost>

Yukarıda kırmızı ile belirtilen alanları kendinize göre düzenlemeyi unutmayın. Ben örnekte git'in frontend web dosyaları için /var/www/vhosts/git isimli dizini kullanıyorum. Ancak henüz bu dizin sistemde olmadığı için oluşturuyoruz:

# mkdir -p /var/www/vhosts/git

Ayrıca, tanımlama virtualhost olarak yapıldığı için, apache'nin ana yapılandırma dosyasında “NameVirtualHost *:80” direktifinin devrede olduğundan emin olun.

Son olarak bahsi geçen web frontend dosyalarını vhost'un document root'una kopyalıyoruz:

# cp -pr /var/www/git/* /var/www/vhosts/git/

Bu şekilde yapılandırma bitmiş oluyor. Apache'yi restart ettiktan sonra repo'larınıza browser üzerinden erişebilir ve test isimli repo'nuzu görüntüleyebilirsiniz.

Kaynaklar:
http://git-scm.com/
https://git.wiki.kernel.org/index.php/Gitweb

Visited 2.461 times, 1 visit(s) today
Kategoriler: Genel |

Bu yazılar da ilginizi çekebilir:


- Apache-Top ile Komut Satırından Apache Status Monitoring
- CentOS6 Üzerine Oracle Java JDK 1.7 Kurulumu
- Two-Factor Auth Destekli OpenVPN Server Kurulumu
- Locust – Açık Kaynak Kod Load Test Uygulaması
- CentOS – Yum kullanarak DVD/CD Üzerinden Paket Kurmak

Yorumlar


  1. misterbean | (Temmuz 10th, 2015 5:58 am)

    merhaba,
    chcon u koştururken şöyle bir dönüş aldım:
    chcon: can’t apply partial context to unlabeled file `/projects’

    bu güzel yazı için teşekkürler.

    [Cevapla]

  2. mister bean | (Temmuz 10th, 2015 11:57 am)

    güzel yazınız için teşekkürler.

    chcon -R -t httpd_sys_content_t /projects

    komutunu koşturduğumda sonuç:

    chcon: can’t apply partial context to unlabeled file `/projects’

    öneri/destek verirmisiniz

    [Cevapla]

Trackbacks

Yorumda bulunun.