|
1 | 1 | # Capistrono
|
2 | 2 |
|
3 |
| -# Ubuntu server |
| 3 | +# Ubuntu Server 12.10 |
| 4 | + |
| 5 | +Ubuntu Server'ı kurup root kullanıcısı ile terminalden ssh bağlantısını oluşturduğunuzu varsayıyoruz. |
| 6 | +Aşağıdaki işlemleri sırasyıla takip edin; |
| 7 | + |
| 8 | +## Varsayılan SSH Port Numarasını Değiştirin |
| 9 | + |
| 10 | +```bash |
| 11 | +$ nano /etc/ssh/sshd_config |
| 12 | +# What ports, IPs and protocols we listen for |
| 13 | +# Port 22 -> Bu satıra rasgele bir port numarası veriniz. |
| 14 | +$ /etc/init.d/ssh restart |
| 15 | +``` |
| 16 | + |
| 17 | +## Mevcut Paketleri Güncelleyin |
| 18 | + |
| 19 | +```bash |
| 20 | +$ apt-get update && apt-get upgrade |
| 21 | +``` |
| 22 | + |
| 23 | +## Aşağıdaki Paketleri Kurun |
| 24 | + |
| 25 | +Bu paketleri kurmamızın sebebi ```add-apt-repository ppa:*/*``` gibi kanal ekleme komutunu çalıştırabilmek içindir. |
| 26 | +Bu komut ubuntu 12.10 ile birlikte varsayılan olarak çalışmamaktadır. |
| 27 | + |
| 28 | +```bash |
| 29 | +$ sudo apt-get install python-software-properties && sudo apt-get install software-properties-common |
| 30 | +``` |
| 31 | + |
| 32 | +## Locale Uyarılarından Kurtulun |
| 33 | + |
| 34 | +```bash |
| 35 | +$ export LANGUAGE=en_US.UTF-8 && export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8 && locale-gen en_US.UTF-8 && sudo dpkg-reconfigure locales |
| 36 | +``` |
| 37 | + |
| 38 | +## Eğer Sunucuda Apache2 ve MySQL gibi şu anda kullanmak istemeceğiniz paketler varsa kaldırın. |
| 39 | + |
| 40 | +```bash |
| 41 | +$ apt-get update && apt-get upgrade |
| 42 | +``` |
| 43 | + |
| 44 | +## Htop kurun (Bu bir tavsiyedir) |
| 45 | + |
| 46 | +```bash |
| 47 | +$ apt-get install htop |
| 48 | +``` |
| 49 | + |
| 50 | +## Bir Deployer kullanıcısı ekleyin |
| 51 | + |
| 52 | +Bunun için öncesinde bir admin grubu oluşturmalısınız ve ardından deployer adında bir kullanıcıyı bu gruba ekleyin. |
| 53 | + |
| 54 | +```bash |
| 55 | +$ groupadd admin && adduser deployer --ingroup admin |
| 56 | +``` |
| 57 | + |
| 58 | +Kullanıcı şifresini ve verilen soruları cevaplayın. Artık deployer kullanıcımız oluşturuldu. |
| 59 | +Bu kullanıcıya daha sonra ruby rbenv ve diper deploy süreçlerinde ihtiyaç duyacağız. |
| 60 | + |
| 61 | +Sıradakı aşama olan Nginix kurulumuna başlayabilirisiniz... |
4 | 62 |
|
5 | 63 | # Nginx
|
6 | 64 |
|
7 |
| -# Unicorn |
| 65 | +## Stabil Güncel Sürüm İçin Nginx Kanalını Ekleyin |
| 66 | + |
| 67 | +```bash |
| 68 | +$ add-apt-repository ppa:nginx/stable |
| 69 | +$ apt-get update |
| 70 | +``` |
| 71 | + |
| 72 | +## Nginx'i Kurun |
| 73 | + |
| 74 | +```bash |
| 75 | +$ apt-get install nginx |
| 76 | +``` |
| 77 | + |
| 78 | +Kurulmu tamamlandıktan sonra nginx'i ```service nginx start``` komutu ile konsoldan başlatın. |
| 79 | + |
| 80 | +### DİKKAT: Ubuntu 12.10 da nginx 1.2.7 versiyonunu kurdugunuzda nginix'i başlatırken aşağıdaki gibi bir hata alırsanız: |
| 81 | + |
| 82 | +```bash |
| 83 | +* Starting nginx nginx |
| 84 | +nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) |
| 85 | +nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) |
| 86 | +nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) |
| 87 | +nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) |
| 88 | +nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) |
| 89 | +nginx: [emerg] still could not bind() |
| 90 | + ...done. |
| 91 | + ...done. |
| 92 | +``` |
| 93 | + |
| 94 | +Nano v.b. bir editör ile Nginx default site ayarlarını açın. |
| 95 | + |
| 96 | +```bash |
| 97 | +$ nano /etc/nginx/sites-available/default |
| 98 | +``` |
| 99 | + |
| 100 | +Server ayarlarının olduğu satırdaki aşağıdakı kısmı bulun ve belirtildiği (```ipv6only=on``` kısmına dikkat!) |
| 101 | +şekilde değiştirip, dosyayı kaydedip kapatın. |
| 102 | + |
| 103 | +** Önce ** |
| 104 | + |
| 105 | +```bash |
| 106 | +server { |
| 107 | + listen 80; |
| 108 | + listen [::]:80 default_server; |
| 109 | + ... |
| 110 | +``` |
| 111 | +
|
| 112 | +** Sonra ** |
| 113 | +
|
| 114 | +```bash |
| 115 | +server { |
| 116 | + listen 80; |
| 117 | + listen [::]:80 ipv6only=on default_server; |
| 118 | + ... |
| 119 | +``` |
| 120 | +
|
| 121 | +Bu işlemi yaptıktan sonra konsoldan ```service nginx start``` komutunu koştuğunuzda nginx başlatılacaktır. |
| 122 | +
|
| 123 | +## Nginx'i Başlatın |
| 124 | +
|
| 125 | +```bash |
| 126 | +$ service nginx start |
| 127 | +``` |
| 128 | +
|
| 129 | +Sunucu ip'nizi yada domaini yazarak nginx start sayfasının geldiğinden emin olunuz. |
| 130 | +
|
| 131 | +# Git & Curl |
| 132 | +
|
| 133 | +Sunucunuzdaki kodları Capistrano aracılığı ile deploy edebilmemiz için Git kurulu olması gerekmektedir. |
| 134 | +Aynı zamadan sunucunuzda Curl da kurulu olmalıdır. Aşağıdakı paketleri kurun. |
| 135 | +
|
| 136 | +```bash |
| 137 | +$ apt-get -y install curl git-core |
| 138 | +``` |
| 139 | +
|
| 140 | +## Sunucuya github proje reposundaki ssh key'i ekleyin ve github bağlantısını doğrulayın. |
| 141 | +
|
| 142 | +Bu işlemi yapmadan önce aşağıdakı komutu çalıştırın ve çıktıyı doğrulayın. |
| 143 | +
|
| 144 | +```bash |
| 145 | + |
| 146 | +# The authenticity of host 'github.com (207.97.227.239)' can't be established. |
| 147 | +# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. |
| 148 | +# Are you sure you want to continue connecting (yes/no)? yes |
| 149 | +# Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts. |
| 150 | +# Permission denied (publickey). |
| 151 | +``` |
| 152 | +
|
| 153 | +Sunucuya GitHub reponuzda bulunan Settings > Deploy Keys sekmesine eklemek üzere bir public ssh_key oluşturun. |
| 154 | +Deploy sırasında GitHub'ın sormaması için herhangi bir şifre vermeyin. Böylelikle deploy süreci hızlanmış olacaktır. |
| 155 | +
|
| 156 | +```bash |
| 157 | +$ ssh-keygen -t rsa -C "[email protected]" |
| 158 | +# GitHub üyelik e-postanız veya herhangi bir e-posta adresi. |
| 159 | +# Örneğin sunucuda barındırılacak ygulamanın info@... adresi olabilir. |
| 160 | +``` |
| 161 | +
|
| 162 | +Oluşturulan public ssh_key'in içeriğini kopyalayın ve GitHub'da belirtilen sekmeye gidip "Add Deploy Key" diyerek ekleyin. |
| 163 | +
|
| 164 | +```bash |
| 165 | +$ cat ~/.ssh/id_rsa.pub |
| 166 | +``` |
8 | 167 |
|
9 | 168 | # Rbenv
|
10 | 169 |
|
| 170 | +Sunucumuza Rbenv kurabilmek için öncesinde deployer olarak ssh bağlantısı oluşturmalıyız. |
| 171 | +
|
| 172 | +```bash |
| 173 | + |
| 174 | +``` |
| 175 | +
|
| 176 | +Bu işlemden sonra aşlağıdaki paketleri kurun. Bu paketlerden daha önceden mevcut kurulu olanlar olabilir. |
| 177 | +
|
| 178 | +```bash |
| 179 | +$ sudo apt-get install zlib1g-dev openssl libopenssl-ruby1.9.1 libssl-dev libruby1.9.1 libreadline-dev git-core make make-doc |
| 180 | +``` |
| 181 | +
|
| 182 | +Deployer kullanıcısının home dizinine gidin. Rbenv'i GitHub reposundan klonlayın vekabuk ve konsol |
| 183 | +ayarlarını yapıp tekrar başlatın. |
| 184 | +
|
| 185 | +```bash |
| 186 | +$ cd ~ |
| 187 | +$ git clone git://github.com/sstephenson/rbenv.git .rbenv |
| 188 | +$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc |
| 189 | +$ exec $SHELL |
| 190 | +``` |
| 191 | +
|
| 192 | +Rbenv kurulumunu ```which rbenv``` komutu ile konsoldan doğrulayın. |
| 193 | +Herşey yolunda gidiyorsa şu şekilde bir çıktı almalısınız: ```/home/deployer/.rbenv/bin/rbenv``` |
| 194 | +
|
| 195 | +Şimdi gerekli pluginleri kurmak için aşağıdaki adımları takip edin. |
| 196 | +
|
| 197 | +```bash |
| 198 | +$ mkdir -p ~/.rbenv/plugins |
| 199 | +$ cd ~/.rbenv/plugins |
| 200 | +$ git clone git://github.com/sstephenson/ruby-build.git |
| 201 | +$ git clone git://github.com/sstephenson/rbenv-gem-rehash.git |
| 202 | +$ rbenv install 2.0.0-p0 |
| 203 | +$ rbenv rehash |
| 204 | +$ rbenv global 2.0.0-p0 |
| 205 | +$ ruby -v |
| 206 | +# ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] |
| 207 | +``` |
| 208 | +
|
| 209 | +Eğer yukarıdakı adımları izleyip ruby versiyonunu doğruladıysanız işlem tamamlanmış demektir. |
| 210 | +Artık Rbenv aktif ve ilgili ruby versiyonu sunucunuza kurulmuş demektir. |
| 211 | +
|
| 212 | +# Bundler |
| 213 | +
|
| 214 | +Rbenv kurumulundan hemen sonra sisteme bundler gem'i kurmamız gerekmekte. Aşağıdaki komutları çalıştırın. |
| 215 | +
|
| 216 | +```bash |
| 217 | +$ gem install bundler --no-ri --no-rdoc |
| 218 | +$ rbenv rehash |
| 219 | +$ bundle -v |
| 220 | +
|
| 221 | +``` |
| 222 | +
|
| 223 | +# Node.js |
| 224 | +
|
| 225 | +En temel haliyle Rails projelerinde assets-precompile işlemleri için node.js'in de sunucuda kurulu olması gerekmektedir. |
| 226 | +
|
| 227 | +```bash |
| 228 | +$ add-apt-repository ppa:chris-lea/node.js |
| 229 | +$ apt-get update |
| 230 | +$ apt-get install nodejs |
| 231 | +``` |
| 232 | +
|
| 233 | +# Unicorn |
| 234 | +
|
11 | 235 | # Backup
|
12 | 236 | Backup işlemleri için [backup](https://github.com/meskyanichi/backup) gemini kullanıyoruz. Veritabanı yedeği, assets(resim, video) yedekleri ve log yedeklerini almamız yeterli. Uygulamalarımızı githubda geliştirdiğimiz için uygulamanın yedeğini alma ihtiyacı duymuyoruz. Yedeği hem locale hemde yedek işlemleri için ayırdığımız sunucuya alıyoruz.
|
13 | 237 |
|
|
0 commit comments