Archive

Posts Tagged ‘server’

Subversion sunucu kurulumu

August 23rd, 2012 No comments

Linux üzerinde kurulumdan bahsedeceğim. Öncelikle kullandığınız dağıtımın paket deposundan subversion paketini kurmalısınız. Ben debian kullandığım için

sudo apt-get install subversion

Kurulum tamamlandıktan sonra gerekli tüm araçlara sahip olmuş oluyoruz.

Bir depo oluşturalım.

svnadmin create depom

depom adli dizinde bir depo oluşturmuş olduk. Bu depo üzerinde gerekli düzenlemeleri yapalım.
depom/conf/svnserve.conf bu dosya temel ayarlarimizi yapacağımız dosya. Bu dosyayı açıp [general] başlığı altındaki ayarları düzenliyoruz. Burdaki tüm ayarlar yorum satırı haline getirişmiş, bunlardan işimize yarayanları aktif hale getirmemiz gerekiyor.

# anon-access = read

Tanımladığımız kullanıcılar dışında kalan kişilerin yetkilerini düzenlemek için kullanıyoruz. Eğer yorum satırı halinde bırakırsak tanımsız kullanıcılar depo üzerinde okuma hakkına sahip oluyorlar. Eğer bu şekilde bırakırsak okuma yapamazlar. Eğer read yerine write yazarsak depomuzda herkes okur-yazar oluyor.

# auth-access = write

Kayıtlı kullanıcıların yetkilerini burdan belirliyoruz. Yorum satırı olmaktan çıkartırsak depomuzda tanımlı kullanıcılar yazma hakkına sahip olur.

# password-db = passwd

Depoya erişim yetkisi verdiğimiz kullanıcıların kullanıcı adı ve parolaların tutulduğu yeri belirtir. Kullanıcıları tanımlamak için yorum satırı halinden çıkartıp istediğimiz yolu belirtmeliyiz, daha sonra ilgili dosyayı düzenlemeliyiz.
Dosya içeriği

[users]
askin = parolam

Parolalar şifrelenmemiş halde tutuluyor.

# authz-db = authz

Kullanıcıların izinlerini daha detaylı olarak ayarlamak istersek bu satırı yorum satırı halinden çıkartıp, istediğimiz bir yolu girmemiz gerekmekte.

# realm = My First Repository

Depomuzun adı, bu satırı yorum satırı olmaktan çıkartıp istediğimiz bir isim veriyoruz.

Tüm bunları yaptıktan sonra depomuzu yayınlayabiliriz. Bunu yapmak için svnserve adında bir programdan yararlanıyoruz.

/usr/bin/svnserve -d -r /home/svn/repositories --log-file /var/log/svnserve

Bu komut /home/svn/repositories dizinindeki tüm depoları yayınlar.

Depoyu chekout etmek için

svn checkout svn://sunucu.com/depom
Categories: Gezegen, Linux Tags: , , , ,

Java ile server socket yapımı

December 11th, 2010 No comments

Bir proje için server sockete ihtiyaç duydum. Öncelikli dilim python olmasına rağmen, sunucu solaris olunca java ile yazmak daha cazip geldi. Öncelikli olarak test amaçlı birkaç satır kod yazdım. Akla gelen ilk örnek echo server oluyor 🙂 aşağıda multi thread çalışan, birden fazla kullanıcıya cevap verebilecek bir echo server var:)

Server.java

/**
 * @author: Aşkın Yollu 
 */

import java.net.*;
import java.io.*;

class Server {
    public static void main(String args[]) throws Exception {
        ServerSocket myService = null;
        Socket       client    = null;
        Worker       tmpworker = null;
        
        try {
            // 1234 nolu portu dinle
            myService = new ServerSocket(1234);
        } catch (IOException e) {
            System.out.println(e);
        }


        try {
            while (true) {
                // bağlantı kuracak istemcileri bekle
                client = myService.accept();

                // bağlantıları bir listeye ekle

                // istemci için yeni thread oluştur
                tmpworker = new Worker(client);
            }
        } catch (IOException e) {
            System.out.println(e);
        }

    }
}

Worker.java

/**
 * @author: Aşkın Yollu
 */

import java.net.*;
import java.io.*;

class Worker implements Runnable {
    private Socket           client;
    private DataInputStream  is;
    private DataOutputStream os;
    Thread       t;

    // Yaratıcı method
    public Worker(Socket client) {
        this.client = client;
        t = new Thread(this);
        t.start();
    }

    public void run() {
        String line = null;
        
        try {
            this.is = new DataInputStream(this.client.getInputStream());
            this.os = new DataOutputStream(this.client.getOutputStream());

            while (true) {
                line =this.is.readLine();
                this.os.writeBytes(line + "\n");
            }

        } catch (IOException e) {
            System.out.println(e);
        }
    }
}

kodları derleyip çalıştırdıktan sonra

telnet localhost 1234

komutunu verip birşeyler yazmaya başlayın, bakalım ne olacak 🙂

Client tarafını c ile yazacağım. Muhtemelen bir sonraki girdi c ile client socket olur.

Categories: Gezegen, Programlama Tags: , , , ,

Mysql Data Dizinini Değiştirme

July 14th, 2009 No comments

MysqlMysql data dizini ön tanımlı /var/lib/mysql olarak belirlenmiştir. Çeşitli ihtiyaçlardan dolayı bunun yerini değiştirmemiz gerekebilir. Mesela ben ayrı bir bölümde tuttuğum /home dizini altına taşımak istiyorum. Tüm işlemleri root yetkisiyle yapıyoruz. Öncelikle mysql servisini durduralım.
Ben pardus kullandığım için

# service mysql-server stop

Diğer dağıtımlarda farklı olabilir.
Ardından ilgili dizini yeni yerine kopyalayalım.

# cp -a /var/lib/mysql /home

Daha sonra mysql sunucusuna yeni dizinimizi haber verelim. /etc/mysql/my.cnf dosyasında
datadir = /var/lib/mysql olan satırı
datadir = /home/mysql olarak değiştirelim.
Şimdi servisi yeniden başlatabiliriz.

# service mysql-server start

Eğer düzgün bir şekilde çalışıyorsa /var/lib/mysql dizinini silebiliriz. Ama ismini değiştirip birkaç gün her ihtimale karşı saklamak çok mantıklı.

Categories: Gezegen, Linux Tags: , , , ,