Skip to content

Commit dea985f

Browse files
author
Onur Özgür ÖZKAN
committed
Merge pull request #6 from tayfunoziserikan/master
Deploy süreçleri dokümante edildi.
2 parents c9982e9 + 0307c94 commit dea985f

File tree

1 file changed

+226
-2
lines changed

1 file changed

+226
-2
lines changed

development/server.md

+226-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,237 @@
11
# Capistrono
22

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...
462

563
# Nginx
664

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+
```
8167
9168
# Rbenv
10169
170+
Sunucumuza Rbenv kurabilmek için öncesinde deployer olarak ssh bağlantısı oluşturmalıyız.
171+
172+
```bash
173+
$ ssh [email protected] -p xxxx
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+
11235
# Backup
12236
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.
13237

0 commit comments

Comments
 (0)