CentOS üzerinde Git Server + Gitweb Kurulumu
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYhgDp4q' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Uzun 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 apache 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 apache ya da ngnix ile entegre edilebiliyor ve kod depolarınızı web üzerinden browse edebilmenize olanak sağlıyor.
Ben gitweb'in apache ü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
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
Trackbacks
Yorumda bulunun.
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]
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]