Bu yazıda nginx kurulumu, passenger kurulumu, rvm kurulumu ve rails deploy edilmesi konularını öğreneceksiniz.
Ortamların Hazırlanması
1. Şu komutlar ile RVM paketini kuruyoruz:
1 2 3 4 |
echo 'insecure' > ~/.curlrc gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \curl -sSL https://get.rvm.io | bash -s stable --ruby |
2. X.X.X olan yerleri değiştirerek ruby’nin istediğiniz sürümünü kurabilirsiniz:
1 2 3 |
rvm install ruby-X.X.X rvm --default use ruby-X.X.X |
3.Bundler’ı yükleyin
1 2 |
gem install bundler --no-rdoc --no-ri |
4. Node JS’i yükleyin
1 2 3 4 5 6 |
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl --fail -ssL -o setup-nodejs https://deb.nodesource.com/setup_0.12 sudo bash setup-nodejs sudo apt-get install -y nodejs |
5. Her şey sorunsuz ise passenger ve nginx’i kurabiliriz
1 2 3 4 5 |
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 sudo apt-get install -y apt-transport-https ca-certificates sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main > /etc/apt/sources.list.d/passenger.list' sudo apt-get update |
6. Şu komutlar ile Passenger + Nginx’i kurun
1 |
sudo apt-get install -y nginx-extras passenger |
7. Passenger modülünü aktifleştirmemiz gerek. Şu dosyayı bulun /etc/nginx/nginx.conf
. İstediğiniz bir metin editörü ile dosyayı açın. (Ben vim kullanacağım)
1 2 |
sudo vim /etc/nginx/nginx.conf |
Şu satırı bulup: # include /etc/nginx/passenger.conf;
başındaki # karakterini kaldırarak yorum satırı olmaktan kurtarın. Şöyle görünmeli:
1 2 |
include /etc/nginx/passenger.conf; |
Eğer nginx.conf içinde bu satırı görmüyorsanız, http bloğu içine kendiniz ekleyin.
Nginx’i yeniden başlatın
1 |
sudo service nginx restart |
7. Aşağıdaki komutu çalıştırdığınızda altındaki yanıtları alıyorsanız şimdiye kadar her şey yolunda demektir.
1 2 3 4 |
sudo /usr/bin/passenger-config validate-install * Checking whether this Phusion Passenger install is in PATH... ✓ * Checking whether there are no other Phusion Passenger installations... ✓ |
Update & upgrade
1 2 3 |
sudo apt-get update sudo apt-get upgrade |
Uygulamanın Deploy Edilmesi
1. Sunucunuza ssh ile bağlanın.
1 |
ssh root@sunucunuz |
2. Uygulama için bir kullanıcı oluşturacağız. Oluşturacağınız kullanıcıya uygulamanızla aynı ismi vermeniz daha iyi olacaktır. Ben demouser diyeceğim
1 |
sudo adduser demouser |
Aşağıdaki komutu yazarak demouser kullanıcınıza sudo ayrıcalıklarını tanımlayın.
1 |
$ visudo |
Şu satırı bularak root ALL=(ALL:ALL) ALL altına aşağıdaki satırı ekleyin.
1 |
demouser ALL=(ALL:ALL) ALL |
Şu komutu çalıştırarak demouser kullanıcsı olarak oturumunuza devam edin:
1 |
sudo -u demouser -H bash -l 2 |
Uygulamanızın kodunu demouser kullanıcınızın home dizinine indirin. (Bu dizin tercihe kalmış. Ben kullanıcıların home dizinlerini tercih ediyorum. Siz /var/www/myapp gibi bir dizini de tercih edebilirsiniz.)
1 2 |
cd git clone git@github.com:username/myapp.git cd myapp |
Eğer git kurulu değilse şu komut ile kurabilirsiniz:
sudo apt-get install -y git
3. Uygulama gerekliliklerini kurun
1 2 |
cd myapp bundle install --deployment --without development test |
4. database.yml ve secrets.yml dosyalarını yapılandırmamız gerek. Öncelikle veritabanı:
1 |
vim config/database.yml |
sqlite için şu şekilde görünmeli:
1 2 3 |
production: adapter: sqlite3 database: db/production.sqlite3 |
secret key oluşturun:
1 |
RAILS_ENV=production rake secret |
Oluşturulan secret key’i kopyalayın. secrets.yml dosyasını açın
1 |
vim config/secrets.yml |
Şu satırı bulun ve keyi yapıştırın:
1 |
production: secret_key_base: kopyaladiginiz_secret_key |
Şu komutları çalıştırarak assetleri compile edip database de migrate edin 🙂 :
1 |
RAILS_ENV=production rake assets:precompile</code> <code>RAILS_ENV=production rake db:migrate |
Nginx Yapılandırması
exit yazarak root kullanıcınıza geri dönün. Daha sonra aşağıdaki komutu çalıştırarak yapılandırma dosyanızı belirtilen yola oluşturun. Ve içeriğini aşağıdaki gibi doldurun
1 |
sudo vim /etc/nginx/sites-available/myapp.conf |
myapp.conf yerine kendi uygulamanızın ismini yazmayı unutmayın
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name alanadiniz.com; # Uygulamanızın public dizinini gösterin root /home/demouser/myapp/public; # Passenger'i aktif edin passenger_enabled on; passenger_ruby /ruby-dosya-yolu; } |
Uygulamanızın tam dizinini bulmak için pwd komutunu kullanabilirsiniz.
Ruby yolunu bulmak için de which ruby komutunu kullanabilirsiniz.
Şimdi şu dizine (/etc/nginx/sites-enabled) yapılandırma dosyamızı link olarak ekleyelim
1 |
sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/myapp.conf |
Tamamlandığında Nginx’i yeniden başlatabilirsiniz:
1 |
sudo service nginx restart |
Bir cevap yazın