Üyelik işlemi: https://cloud.digitalocean.com/registrations/new
Yeni Server oluşturma:
Olusan server bilgileri:
Server kurulumu:
esryrlmz@esryrlmz:~$ ssh root@178.62.110.33
İlk girişte mail adresine gelen şifreyi , daha sonrada yeni şifre isteyecek
Yeni kullanıcı oluşturma ve yetki verme:
root@urad:~# adduser esryrlmz
root@urad:~# adduser esryrlmz root
root@urad:~# adduser esryrlmz sudo
Yetki dosyasını düzenleyebilmek için vimin kurulu olması gerekiyor. Bunun için gerekli araçları kuralım.
root@urad:~# apt-get install sudo mc vim openssh-client resolvconf fail2ban logrotate automysqlbackup etckeeper
Yetki dosyasını vimle açıp düzenleyelim. Vimle ilgili kısa not:
Belgeden çıkmak için esc tuşuna bas+ ':'+
wq => yaz ve çık
wq!=>zorla yaz ve çık
q=>çık
q!=> zorla çık
root@urad:~# vim /etc/sudoers
Dosyayı aşağıdaki gibi düzeltip wq ile çıkalım.
Sunucudan çıkış yapıp yerelde configürasyon dosyasını düzenleyelim.
esryrlmz@esryrlmz:~$ vim ~/.ssh/config
Bundan sonra rootla girmek için ssh esryrlmz@urad , kullanıcıyla girmek için ssh urad kullanabiliriz.
Github SSH Ayarı
esryrlmz@esryrlmz:~$ ls -al ~/.ssh
esryrlmz@esryrlmz:~$ ssh-keygen -t rsa -b 4096 -C "esryrlmz@gmail.com"
Gelen komutları Enter ile geçelim
esryrlmz@esryrlmz:~$ eval "$(ssh-agent -s)"
esryrlmz@esryrlmz:~$ ssh-add ~/.ssh/id_rsa
esryrlmz@esryrlmz:~$ mc
esryrlmz@esryrlmz:~$ mc
esryrlmz>.ssh>id_rsa.pub > "f3" Gelen ekrandaki sifrenin tamamını kopyala(ctrl+shift+c)>"f3"> github sayfasındaki settings>ssh keys> add ssh keys> Key kısmına kopyaladığımız şifreyi yazıp "kaydet"
esryrlmz@esryrlmz:~$ ssh -T git@github.com
Gelen komuta "yes" yazalım
Sonuc Böyleyse Ssh key ekleme tamamlandı.
"Hi username! You've successfully authenticated, but GitHub does not provide shell access."
19/x ile gerekli programların kurulması
Github hesabında 19/x deposunun fork edilmiş olması gerekmektedir. Fork edilmediyse: https://github.com/19/x
Kendi hesabınızdaki 19/x deposundaki branch:master olan seçili alanı gh_pages olarak değiştirin. Gelen index sayfasını raw ile açın ve linkini kopyalayın(sembolik =19xlink)
root@urad:~# wget 19xlink
root@urad:~# bash x
Kurulum bitince ; root@urad:~# x
Gelen ekrandan >Yönetim Görevleri>
- Web Sunucusu
- Rails sunucu
- Veri tabanı sunucusunu(mysql) kur
.Conf Klasörü
Yerelde mc ile projenizin ana dizinine gidin eğer .conf klasörü yoksa buradan klasörü indirim proje ana dizinine çıkartın daha sonra tekrar mc ile girip bakın .conf kalsörü içinde nginx configürasyon dosyaları olmalı.
Veri tabanı BackUp
esryrlmz@esryrlmz:~$ mysqldump -u root -p --databases db_urad > /home/esryrlmz/urad/db.sql
esryrlmz@esryrlmz:~$ cd urad
esryrlmz@esryrlmz:~/urad$ git add .
esryrlmz@esryrlmz:~/urad$ git commit -m "."
esryrlmz@esryrlmz:~/urad$ git push origin master
Github Rails Proje Clon
- mc ile anadizine gel (açılan ekranın bir üst dizini)
- srv klasorünü gir
root@urad:/srv# mkdir /www/178.62.110.33/
root@urad:/srv/www/178.62.110.33#
git clone git@github.com:esrayorulmaz/urad.git site
İşlem bitince exit ile mc den çıkalım
Ek Kurulumlar
Nokogiri: root@urad:~# sudo apt-get install libxslt-dev libxml2-dev
Mysql bağımlılığı: root@urad:~# sudo apt-get install libmysql-ruby libmysqlclient-dev
Rmagick bağımlılığı root@urad:~# sudo apt-get install libmagickwand-dev imagemagick
Passenger bağımlılığı: root@urad:~# sudo apt-get install libcurl4-openssl-dev
Diğer root@urad:~# sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion libcurl4-openssl-dev
Veri tabanı Restore
root@urad:~# mysql -u root -p
mysql> create database db_urad
root@urad:/srv/www/178.62.110.33/site# mysql -u root -p db_urad<db.sql
Rails Proje komutları
root@urad:/srv/www/178.62.110.33/site# bundle install
root@urad:/srv/www/178.62.110.33/site# RAILS_ENV=production bundle exec rake db:migrate
root@urad:/srv/www/178.62.110.33/site# RAILS_ENV=production bundle exec rake db:seeds
root@urad:/srv/www/178.62.110.33/site# RAILS_ENV=production bundle exec rake essets:precompile
Ek Kurulumlar
root@urad:/srv/www/178.62.110.33/site# sudo apt redis-server
root@urad:/srv/www/178.62.110.33/site# sudo gem install resque
root@urad:/srv/www/178.62.110.33/site# sudo gem install redis
root@urad:/srv/www/178.62.110.33/site# bundle exec RAILS_ENV=production PIDFILE=./tmp/resque.pid BACKGROUND=yes QUEUE="*" rake resque:work --trace >> log/worker1.log //*
-bash: log/worker1.log: No such file or directory
Dosya Sahipliği
root@urad:~# chown -R www-data:www-data /srv/www/rsdev.uzem.omu.edu.tr/site/
Nginx ve passenger Kurulumu
root@urad:~# sudo gem install passenger
root@urad:~# sudo passenger-install-nginx-module
"Enter"
"Enter"
Gelen Ekranda "Yes: downloud ..." ile baslayan 1 i seçip enterla devam ediyoruz
Sonrasında gelen ekranlarıda "Enter" tuşuna basarak devam edip kurulumu bitirelim
Not: Hata ile karsılasırsanız, buyuk bi ihtimal sunucunuzdaki boyut ile alakalıdır. 1 MB lık server açtıysanız muhtemelen hata verecektir. Digitaloceansa giderek serverı kapatıp boyutunu ayarlayıp tekrar acın ve nginx kurulumuna bastan başlayın.
Not: Ana dizinde opt/nginx/ klasörü boşsa kurulum olmamıştır. Kurulumu tekrar deneyin
Sembolik Bağlar
1- /srv/www/178.62.110.33/site/.conf/etc/nginx.conf dosyasını kendi proje ayarlarınızla güncelledikten sonra /opt/nginx/conf yoluna aktarın
2. /etc/nginx/ yoluna mc ile gelerek;
root@urad:/srv/www/178.62.110.33/site/.conf/etc# ln -s /etc/nginx /opt/nginx/conf
3. /usr/sbin/nginx binary dosyasını kaldır (rm -rf nginx)
4. root@urad:/opt/nginx/sbin/nginx/# ln -s /opt/nginx/sbin/nginx /usr/sbin/nginx
5. config dosyasında bulunan htpp içerisinde bulunan passenger_root ve passenger ruby de bulunan versiyon numaralarının uyumlu olması gerekli sistemdeki versiyon numarası buraya yazılmalı
6. app/.conf/etc/ yolunda yer alan resque dosyasını etc/init.d/resque dosyasına kopyalayın(f5)
Server Çalıştırma
root@urad:~# killall nginx
Proje içerisindeki /tmp klasörüne gir
root@urad:/srv/www/178.62.110.33/site/tmp# touch restart.txt
root@urad:~# sudo service nginx start
Çalışan proses root@urad:~# ps aux | grep nginx
çalışma log: root@urad:~# tail -f production.log