Macos X Üzerine Rails, Nginx, MongoDB, Passenger Kurulumu

Bir süredir Pluwy‘nin geliştirmesi için Mac OS X üzerinde Ruby on Rails, Nginx, MongoDB kullanmaya başladım. Neden ruby kullandığımı ayrıntılı farklı bir yazıda anlatacağım. Ancak fikir oluşturması amacıyla “RubyConf X Keynote“u izleyebilirsiniz.

Mac OS X üzerinde Ruby yerleşik olarak geliyor. Dolayısıyla ruby haricindeki gereksinimleri kurmanız ve yapılandırmanız gerekiyor.

Öncelikle rails kurulumu için(terminal üzerinden);

[bash]gem install rails –include-dependencies[/bash]

Gem bu işletimi yürütürken epey bekleyebilirsiniz, şimdiden uyarayım :)

Nginx üzerinde ruby on rails framework’ü çalıştırmak için passenger kullanmamız gerekiyor. Eğer nginx yerine apache kullanıyorsanız mod_passenger modülünü kullanabilirsiniz.

[bash]gem install passenger[/bash]

Passenger kurulumundan sonra nginx kurulumu için yine terminal üzerinde;

[bash]sudo passenger-install-nginx-module[/bash] komutunu uyguluyoruz.

Çalıştırdığınız bu komut, 1-2 aşamada bazı kütüphanelerin ve yazılımların kontrolünü yapacaktır. Kontrol bittikten sonra nginx’i kurma şekliniz için 2 seçenekli bir soru sorulacak. Bu kısımda nginx’i otomatik kurmak(derlemek) için 1 yazarak devam ediyoruz. Eğer nginx’i kendiniz kurduysanız(daha önce) 2 yazarak nginx’in path’ini girmeniz gerekiyor.

Biz 1. seçenek ile devam ediyoruz.

İnternet bağlantınız ve bilgisayarınız yoğunluğuna göre bu işlem 5-10 dakika arası sürebilir. Kurulum tamamlandıktan sonra, nginx’e ait konfigürasyon dosyalarını düzenleceğiz.

[bash]sudo vim /opt/nginx/conf/nginx.conf [/bash] komutuyla conf dosyasını açıp şu satırları eklemeniz gerekiyor.

[bash]

server
{
listen 8080;
server_name halid.local;
root /Users/halidaltuner/Sites/halid/public;
charset utf-8;
passenger_enabled on;
}

[/bash]

Bu kısımda dikkat etmeniz gereken husus, mevcut server{} tanımlamasının olup olmadığı. Eğer böyle bir tanımlama varsa değiştirin.

Ben yerleşik olarak 80 portu üzerinde yerleşik bir web sunucusu kullandığım için 8080 portunu dinlemeye ayarladım. Dilediğiniz farklı bir port’u bu işlem için tahsis edebilirsiniz.

server_name tanımlaması, tarayıcı üzerinden uygulamanıza erişimde kullanacağınız lokal isim.

Not: Bu isimle eklediğiniz tanımlamayı /etc/hosts dosyanıza 127.0.0.1 halid.local şeklinde eklemeniz gerekiyor.

root tanımlaması rails uygulamanızın bulunduğu public klasörüne yapılmalıdır. Kendi isteğinize göre değiştirebilirsiniz.

charset tanımlamasıyla uygulama içerisinde kullanacağınız karakter setini tanımlamanız gerekiyor.

passenger_enabled parametresiyle ise uygulamanızın passenger desteğiyle deploy edilmesi gerektiğini tanımlıyoruz.

Bu şekilde dosyayı kaydedin.

Son olarak mongoDB kurulumu için MongoDB Downloads sayfasından stable olan son sürümü indirip, kuruyoruz.

[bash]
curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-1.6.5.tgz
tar xzf mongodb-osx-x86_64-1.6.5.tgz
sudo mv mongodb-osx-x86_64-1.6.5 /usr/local/mongodb
sudo mkdir /usr/local/mongodb_data /var/log/mongodb
sudo chown -R root /usr/local/mongodb
[/bash]

Bu işlemden sonra conf. dosyasını oluşturuyoruz.

[bash]
sudo vi /usr/local/mongodb/mongod.conf
[/bash]

Dosya içerisine şu satırları ekleyip, kaydediyoruz.

[bash]
dbpath = /usr/local/mongodb_data
bind_ip = 127.0.0.1
[/bash]

MongoDB’nin otomatik olarak başlaması için  daemon oluşturuyoruz.

[bash]
sudo vim /Library/LaunchDaemons/org.mongodb.mongod.plist
[/bash]

Oluşturduğumuz dosya içerisine şu adreste bulunan satırları ekleyip, kaydediyoruz.

http://pastebin.com/k4K5zjbK

Ayarların aktif olması için şu komutu çalıştırıyoruz;
[bash]sudo launchctl load /Library/LaunchDaemons/org.mongodb.mongod.plist[/bash]

MongoDB’nin çalışıp çalışmadığını öğrenmek için; http://localhost:28017 adresini ziyaret edebilirsiniz.

Örnek rails projesini oluşturmak için ilgili path içerisinde;
[bash]rails halid[/bash] komutunu çalıştırmanız gerekiyor.

Tüm işlemlerin doğru olduğuna eminseniz, uygulamaya tarayıcı üzerinden erişmeye çalıştığınızda şu şekilde bir ekran görüntüsüyle karşılaşmalısınız.

Bir sonraki makalede rails – mongodb bağlantısı hakkında birşeyler karalayacağım.

Görüşmek üzere,

Kaynaklar:

http://shiftcommathree.com/articles/how-to-install-mongodb-on-os-x

http://developer.apple.com/tools/rubyonrails.html

Geliştirici ve Proje Gönüllüsü Arıyorum…

nasty-keyboardUlusal çapta ün yapacak ve zamanla yabancı kaynaklı tüm içerik yönetim sistemlerine rakip olabileceğini düşündüğüm Ulubatlı isminde bir CMS(İçerik Yönetim Sistemi) geliştiriyorum. Bu nedenle PHP 5 ve “Nesne Yönelimli Programlama” bilgisi olan “Junior” – “Senior” Geliştiricilere, Arayüz geliştiricilerine ve Proje gönüllülerine ihtiyacım var…

FriendFeed, Facebook vb. sosyal ağlar üzerinden duyurusunu bu şekilde yaptım. Uzun süredir birkaç arkadaş ile görüşmelerim devam ediyor. Yaz bitmeden çalışmalara başlayıp ortaya birşeylerin çıkmasını ümid ediyorum. :)

Umarım başarılı bir proje başlatır ve devam ettirebiliriz…

Bu konuda yardımcı olabilecek her türlü arkadaşımızı bekliyoruz… halid@halid.org e-Posta adresi üzerinden irtibata geçebilirsiniz.

Görüşmek Dileğiyle…

PHP'nin Geliştiricisi Zeev Suraski Türkiye'ye Geliyor!

2623340273_2e531efe92Duyduğumda yüzümün gülümsemesine yetebilen bir haber :)

PHP’nin geliştiricisi ve PHP üzerine olan çalışmaları ile ünlü ZEND firmasının kurucu ortağı Zeev Suraski Türkiyeye geliyor.

24 Ocak 2009 tarihinde Taksim Nippon Otelde düzenlenecek platforma birçok ünlü programcı kimlik daha katılıyor.

PHP’nin haricinde Python(Django Framework), Java Spring Framework, 3D Oyun Geliştirme, DotNet Platformunda Facebook Uygulaması Geliştirme gibi ilginç konularında yer aldığı platform oldukça dolu dolu geçeceğe benziyor.

Duyar duymaz kaydımı yaptırdım :)

Programın içeriğine buradan ulaşabilirsiniz.