Takip et

Giriş ve Ön Gereksinimler

Giriş ve Ön Gereksinimler Apache CouchDB, NoSQL veritabanları arasında öne çıkan, doküman tabanlı ve dağıtık bir veritabanı sistemidir

Giriş ve Ön Gereksinimler

Apache CouchDB, NoSQL veritabanları arasında öne çıkan, doküman tabanlı ve dağıtık bir veritabanı sistemidir. Verileri JSON formatında depolar, RESTful API üzerinden erişim sağlar ve yüksek kullanılabilirlik, esneklik ve ölçeklenebilirlik sunar. Genellikle Erlang programlama dili ile yazılmıştır.

Bu rehberde, Ubuntu 13.04 x64 VPS üzerinde CouchDB’yi kaynak koddan nasıl kuracağınızı adım adım öğreneceksiniz. Kaynak koddan kurulum, size en güncel sürümlere erişme, belirli derleme seçeneklerini kullanma ve sisteminizle daha entegre bir yapılandırma yapma esnekliği sunar. Ubuntu 13.04’ün eski bir sürüm olduğunu ve üretim ortamları için güncel LTS (Uzun Süreli Destek) sürümlerinin tercih edilmesi gerektiğini belirtmek önemlidir. Ancak bu rehber, spesifik olarak Ubuntu 13.04 gereksinimi olan kullanıcılar içindir.

Ön Koşullar

Kuruluma başlamadan önce aşağıdaki maddelerin hazır olduğundan emin olun:

* Ubuntu 13.04 x64 VPS: 64-bit Ubuntu 13.04 işletim sistemine sahip bir sanal sunucu.
* Root veya Sudo Yetkileri: Kurulum için gerekli paketleri yüklemek ve sistem genelinde değişiklikler yapmak üzere root erişimi veya sudo yetkisine sahip bir kullanıcı.
* İnternet Bağlantısı: Gerekli bağımlılıkları ve CouchDB kaynak kodunu indirmek için aktif bir internet bağlantısı.
* Temel Linux Bilgisi: Komut satırı kullanımı ve dosya düzenleme konularında temel düzeyde bilgi sahibi olmak.

Kuruluma başlamadan önce sunucunuzdaki paket listesini güncelleyip mevcut paketleri yükseltmek iyi bir alışkanlıktır:

sudo apt-get update
sudo apt-get upgrade -y

Bu komutlar, sisteminizin en güncel paket bilgisine sahip olmasını ve mevcut tüm yazılımların son sürümlerine güncellenmesini sağlar.

Gerekli Bağımlılıkların Kurulumu

CouchDB’yi kaynak koddan derlemek için bir dizi bağımlılığa ihtiyacımız var. Bu bağımlılıklar arasında Erlang (CouchDB’nin yazıldığı dil), Mozilla SpiderMonkey JavaScript motoru, ICU kütüphaneleri, OpenSSL, libcurl ve derleme araçları bulunmaktadır.

Derleme Araçları ve Temel Kütüphaneler

Öncelikle, kaynak koddan derleme yapmak için gerekli olan temel araçları ve bazı sistem kütüphanelerini kuralım:

sudo apt-get install -y build-essential autoconf automake libtool pkg-config
sudo apt-get install -y libicu-dev libcurl4-openssl-dev

* build-essential: gcc, g++, make gibi temel derleme araçlarını içerir.
* autoconf, automake, libtool: Otomatik yapılandırma ve derleme süreçleri için gereklidir.
* pkg-config: Derleme sırasında kütüphane bağımlılıklarını bulmaya yardımcı olur.
* libicu-dev: Uluslararası Bileşenler için Unicode kütüphanesi (ICU). CouchDB tarafından uluslararasılaştırma ve yerelleştirme için kullanılır.
* libcurl4-openssl-dev: HTTP istekleri için kullanılan curl kütüphanesinin geliştirme dosyaları. OpenSSL desteği ile birlikte gelir.

Erlang Kurulumu

CouchDB, Erlang ile yazıldığı için sisteminizde uygun bir Erlang sürümünün yüklü olması şarttır. Ubuntu 13.04 depoları genellikle CouchDB 1.x sürümleri için yeterli olan Erlang sürümlerini sunar.

sudo apt-get install -y erlang-dev erlang-nox

* erlang-dev: Erlang geliştirme dosyalarını içerir.
* erlang-nox: Sunucu ortamları için Erlang çalışma zamanını (grafiksel arayüzsüz) kurar.

Erlang kurulumunu doğrulayalım:

erl -version

Çıktı olarak Erlang’ın yüklü sürümünü görmelisiniz (örneğin, Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version R16B03).

Mozilla SpiderMonkey Kurulumu

CouchDB, görünüm oluşturma (map/reduce) ve diğer JavaScript tabanlı işlevler için bir JavaScript motoruna ihtiyaç duyar. Eski CouchDB sürümleri genellikle Mozilla SpiderMonkey’i kullanır.

sudo apt-get install -y libmozjs185-dev

* libmozjs185-dev: SpiderMonkey 1.8.5 motorunun geliştirme dosyaları.

Bu bağımlılıkları kurduktan sonra, CouchDB kaynak kodunu indirmeye ve derlemeye hazırız.

CouchDB Kaynak Kodunun İndirilmesi ve Derlenmesi

Şimdi CouchDB’nin kaynak kodunu indirecek, derleyecek ve sistemimize kuracağız. Bu rehber için, eski Ubuntu 13.04 ile uyumlu ve yaygın olarak kullanılan CouchDB 1.6.1 sürümünü kullanacağız.

CouchDB Kaynak Kodunu İndirme

Öncelikle, kaynak kodunu indirmek için geçici bir dizine gidelim ve paketi indirelim:

cd /tmp
wget http://archive.apache.org/dist/couchdb/source/1.6.1/apache-couchdb-1.6.1.tar.gz

Ardından, indirilen tar.gz dosyasını açalım:

tar -zxvf apache-couchdb-1.6.1.tar.gz
cd apache-couchdb-1.6.1

CouchDB Kullanıcısı Oluşturma

Güvenlik nedenleriyle, CouchDB’nin kendi özel kullanıcısı altında çalışması önerilir. Bu kullanıcıya gerekli izinleri atayacağız.

sudo adduser --system --no-create-home --shell /bin/bash --group couchdb

Bu komut, couchdb adında bir sistem kullanıcısı ve grubu oluşturur. --no-create-home ev dizini oluşturmazken, --shell /bin/bash kullanıcının bir kabuğa sahip olmasını sağlar.

CouchDB’yi Derleme ve Kurma

Şimdi sıra CouchDB’yi derlemeye geldi. Derleme işlemi configure, make ve make install adımlarından oluşur. configure komutu, sisteminizdeki bağımlılıkları kontrol eder ve derleme ortamını hazırlar. --prefix parametresi ile CouchDB’nin kurulacağı dizini belirtiriz; genellikle /usr/local veya /opt tercih edilir. Biz /usr/local dizinini kullanacağız.

./configure --prefix=/usr/local \
            --with-js-lib=/usr/lib/x86_64-linux-gnu \
            --with-js-include=/usr/include/js

* --prefix=/usr/local: CouchDB’nin kurulacağı kök dizini belirtir.
* --with-js-lib=/usr/lib/x86_64-linux-gnu: SpiderMonkey kütüphanelerinin bulunduğu dizini belirtir.
* --with-js-include=/usr/include/js: SpiderMonkey başlık dosyalarının bulunduğu dizini belirtir.

Eğer configure adımında herhangi bir hata alırsanız, genellikle eksik bir bağımlılık veya yanlış bir yol belirtimi nedeniyledir. Hata mesajını dikkatlice okuyarak sorunu gidermeye çalışın.

configure başarılı olduktan sonra, derleme işlemini başlatalım:

make

Bu işlem sunucunuzun performansına bağlı olarak biraz zaman alabilir.

Derleme tamamlandığında, CouchDB’yi sisteminize kuralım. Bu adım için root yetkileri gereklidir.

sudo make install

Kurulumdan sonra, CouchDB’nin kurulduğu dizinin sahipliğini couchdb kullanıcısına verelim:

sudo chown -R couchdb:couchdb /usr/local/lib/couchdb /usr/local/bin/couchdb /usr/local/etc/couchdb /usr/local/var/lib/couchdb /usr/local/var/log/couchdb /usr/local/var/run/couchdb

Bu komut, CouchDB’nin tüm dosyalarının ve dizinlerinin couchdb kullanıcısı ve grubuna ait olmasını sağlar. Bu, CouchDB’nin güvenli bir şekilde kendi kullanıcısı altında çalışabilmesi için kritik öneme sahiptir.

CouchDB Yapılandırması ve Başlatılması

CouchDB başarıyla derlenip kurulduktan sonra, onu yapılandırmamız ve başlatmamız gerekiyor.

Temel Yapılandırma

CouchDB’nin yapılandırma dosyaları genellikle local.ini ve default.ini‘dir. default.ini varsayılan ayarları içerirken, local.ini bu ayarları geçersiz kılmak veya ek ayarlar yapmak için kullanılır.

Yapılandırma dosyaları /usr/local/etc/couchdb/ dizininde bulunur. local.ini dosyasını düzenleyerek CouchDB’nin davranışını değiştirebiliriz.

sudo nano /usr/local/etc/couchdb/local.ini

Aşağıdaki ayarları [chttpd] bölümüne ekleyebilir veya düzenleyebilirsiniz:

[chttpd]
; CouchDB'nin dinleyeceği IP adresi. Varsayılan olarak 127.0.0.1 (localhost)
; Eğer dışarıdan erişim istiyorsanız 0.0.0.0 yapın.
bind_address = 127.0.0.1
; CouchDB'nin dinleyeceği port. Varsayılan 5984.
port = 5984

Eğer dışarıdan erişim istiyorsanız bind_address değerini 0.0.0.0 olarak değiştirmeyi unutmayın. Ayrıca, yönetici kullanıcısı oluşturmak için [admins] bölümüne bir kullanıcı adı ve parola ekleyebilirsiniz:

[admins]
admin_kullanici_adi = admin_parolasi

Dosyayı kaydedip kapatın (CTRL+O, Enter, CTRL+X).

CouchDB’yi Başlatma

CouchDB’yi başlatmanın en basit yolu, couchdb kullanıcısı olarak doğrudan komut satırından çalıştırmaktır:

sudo -i -u couchdb /usr/local/bin/couchdb

Bu komut, CouchDB’yi arka planda çalıştırmaz. Konsol çıktısını görmek ve sorun gidermek için kullanışlıdır. Çıktıda herhangi bir hata yoksa, CouchDB’nin çalıştığını varsayabiliriz. Programı durdurmak için CTRL+C tuşlarına basabilirsiniz.

CouchDB’nin bir servis olarak başlamasını sağlamak için Upstart (Ubuntu 13.04’te kullanılan init sistemi) betiği oluşturabiliriz.

sudo nano /etc/init/couchdb.conf

Aşağıdaki içeriği dosyaya yapıştırın:

description "CouchDB"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
respawn limit 10 5

exec /usr/local/bin/couchdb

Dosyayı kaydedip kapatın. Şimdi CouchDB servisini başlatabiliriz:

sudo start couchdb

Servisin durumunu kontrol etmek için:

sudo status couchdb

Kurulumu Doğrulama

CouchDB’nin düzgün çalışıp çalışmadığını doğrulamak için curl komutunu kullanabiliriz:

curl http://127.0.0.1:5984/

Eğer her şey yolundaysa, aşağıdaki gibi bir JSON çıktısı almalısınız:

{"couchdb":"Welcome","uuid":"","version":"1.6.1","vendor":{"name":"The Apache Software Foundation"}}

Ayrıca, web tabanlı arayüzü olan Futon’a da bir web tarayıcısı üzerinden erişebilirsiniz. Tarayıcınızda http://YOUR_VPS_IP_ADDRESS:5984/_utils/ adresine gidin (eğer bind_address‘i 0.0.0.0 olarak ayarladıysanız). Eğer bind_address‘i 127.0.0.1 olarak bıraktıysanız, sadece sunucu içinden erişebilirsiniz.

Sonuç ve Sıkça Sorulan Sorular

Bu rehberde, Ubuntu 13.04 x64 VPS üzerinde Apache CouchDB’yi kaynak koddan başarıyla kurmayı öğrendiniz. Bu süreç, gerekli bağımlılıkların yüklenmesini, kaynak kodun indirilip derlenmesini ve CouchDB’nin temel yapılandırmasını içerir. Kaynak koddan kurulum, sisteminize özel ayarlamalar yapma ve CouchDB’nin çalışma prensiplerini daha iyi anlama fırsatı sunar.

Unutmayın ki Ubuntu 13.04 eski bir işletim sistemi sürümüdür ve güvenlik güncellemeleri almamaktadır. Üretim ortamları için her zaman güncel ve desteklenen bir Ubuntu LTS sürümü kullanmanız önerilir.

Sıkça Sorulan Sorular (SSS)

S: make veya configure adımında hatalar alıyorum, ne yapmalıyım?
C: Bu genellikle eksik veya yanlış sürümdeki bağımlılıklar nedeniyle olur. Hata mesajını dikkatlice okuyun. Genellikle hangi kütüphanenin eksik olduğunu veya hangi sürümün beklendiğini belirtir. Gerekirse apt-get install komutlarıyla eksik paketleri yükleyin veya mevcut paketlerin doğru sürümde olduğundan emin olun.

S: CouchDB çalışmıyor veya curl http://127.0.0.1:5984/ komutu yanıt vermiyor.
C:
1. Günlükleri Kontrol Edin: CouchDB’nin log dosyalarını (/usr/local/var/log/couchdb/couchdb.log) kontrol edin. Hata mesajları genellikle burada bulunur.
2. Kullanıcı İzinleri: CouchDB dizinlerinin ve dosyalarının sahipliğinin couchdb kullanıcısına ait olduğundan emin olun (sudo chown -R couchdb:couchdb /usr/local/lib/couchdb).
3. Port Çakışması: 5984 portunun başka bir servis tarafından kullanılıp kullanılmadığını kontrol edin (sudo netstat -tulnp | grep 5984).
4. Yapılandırma: local.ini dosyasındaki bind_address ve port ayarlarını kontrol edin.
5. Servis Durumu: sudo status couchdb komutu ile servisin gerçekten çalışıp çalışmadığını doğrulayın.

S: CouchDB’ye dışarıdan erişemiyorum.
C:
1. bind_address Ayarı: local.ini dosyasında bind_address = 0.0.0.0 olarak ayarlandığından emin olun.
2. Güvenlik Duvarı (Firewall): VPS’inizin güvenlik duvarı (örneğin, ufw veya sağlayıcınızın paneli) 5984 portuna gelen bağlantılara izin veriyor mu kontrol edin. Gerekirse izin verin: sudo ufw allow 5984.
3. Ağ Yapılandırması: VPS sağlayıcınızın ağ ayarlarında herhangi bir kısıtlama olup olmadığını kontrol edin.

S: Yükseltme yapmak istersem ne yapmalıyım?
C: Yeni bir sürüm yükseltmek için, yeni sürümün kaynak kodunu indirmeniz, yukarıdaki derleme adımlarını tekrarlamanız ve make install yapmanız gerekir. CouchDB veri dizini (/usr/local/var/lib/couchdb) ayrı tutulduğu sürece verileriniz güvende kalacaktır. Yükseltme yapmadan önce her zaman veritabanınızın yedeğini almanız şiddetle tavsiye edilir.

S: Ubuntu 13.04 yerine daha yeni bir Ubuntu sürümünde kurulum farklı mı olur?
C: Temel adımlar benzer olsa da, bazı bağımlılık paketlerinin adları veya sürümleri farklılık gösterebilir. Örneğin, libmozjs185-dev yerine daha yeni SpiderMonkey veya V8 motoru paketleri gerekebilir. Ayrıca, Ubuntu 15.04’ten itibaren systemd kullanıldığı için upstart betiği yerine bir systemd servis dosyası oluşturmanız gerekir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.