Skip to content

Commit

Permalink
Update server.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tayfunoziserikan committed Apr 21, 2013
1 parent 82cda61 commit da298fe
Showing 1 changed file with 197 additions and 2 deletions.
199 changes: 197 additions & 2 deletions development/server.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,208 @@
# Capistrono

# Ubuntu server
# Ubuntu Server 12.10

Ubuntu Server'ı kurup root kullanıcısı ile terminalden ssh bağlantısını oluşturduğunuzu varsayıyoruz.
Aşağıdaki işlemleri sırasyıla takip edin;

## Varsayılan SSH Port Numarasını Değiştirin

```bash
$ nano /etc/ssh/sshd_config
# What ports, IPs and protocols we listen for
# Port 22 -> Bu satıra rasgele bir port numarası veriniz.
$ /etc/init.d/ssh restart
```

## Mevcut Paketleri Güncelleyin

```bash
$ apt-get update && apt-get upgrade
```

## Aşağıdaki Paketleri Kurun

Bu paketleri kurmamızın sebebi ```add-apt-repository ppa:*/*``` gibi kanal ekleme komutunu çalıştırabilmek içindir.
Bu komut ubuntu 12.10 ile birlikte varsayılan olarak çalışmamaktadır.

```bash
$ sudo apt-get install python-software-properties && sudo apt-get install software-properties-common
```

## Locale Uyarılarından Kurtulun

```bash
$ 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
```

## Eğer Sunucuda Apache2 ve MySQL gibi şu anda kullanmak istemeceğiniz paketler varsa kaldırın.

```bash
$ apt-get update && apt-get upgrade
```

## Bir Deployer kullanıcısı ekleyin

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.

```bash
$ groupadd admin && adduser deployer --ingroup admin
```

Kullanıcı şifresini ve verilen soruları cevaplayın. Artık deployer kullanıcımız oluşturuldu.
Bu kullanıcıya daha sonra ruby rbenv ve diper deploy süreçlerinde ihtiyaç duyacağız.

Sıradakı aşama olan Nginix kurulumuna başlayabilirisiniz...

# Nginx

# Unicorn
## Stabil Güncel Sürüm İçin Nginx Kanalını Ekleyin

```bash
$ add-apt-repository ppa:nginx/stable
$ apt-get update
```

## Nginx'i Kurun

```bash
$ apt-get install nginx
```

Kurulmu tamamlandıktan sonra nginx'i ```service nginx start``` komutu ile konsoldan başlatın.

### 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:

```bash
* Starting nginx nginx
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
...done.
...done.
```

Nano v.b. bir editör ile Nginx defaul site ayarlarını açın.

```bash
$ nano /etc/nginx/sites-available/default
```

Server ayarlarının olduğu satırdaki aşağıdakı kısmı bulun ve belirtildiği (```ipv6only=on``` kısmına dikkat!)
şekilde değiştirip, dosyayı kaydedip kapatın.

** Önce **

```bash
server {
listen 80;
listen [::]:80 default_server;
...
```
** Sonra **
```bash
server {
listen 80;
listen [::]:80 ipv6only=on default_server;
...
```
Bu işlemi yaptıktan sonra konsoldan ```service nginx start``` komutunu koştuğunuzda nginx başlatılacaktır.
## Nginx'i Başlatın
```bash
$ service nginx start
```
Sunucu ip'nizi yada domaini yazarak nginx start sayfasının geldiğinden emin olunuz.
# Git & Curl
Sunucunuzdaki kodları Capistrano aracılığı ile deploy edebilmemiz için Git kurulu olması gerekmektedir.
Aynı zamadan sunucunuzda Curl da kurulu olmalıdır. Aşağıdakı paketleri kurun.
```bash
$ apt-get -y install curl git-core
```
## Sunucuya github proje reposundaki ssh key'i ekleyin ve github bağlantısını doğrulayın.
Bu işlemi yapmadan önce aşağıdakı komutu çalıştırın ve çıktıyı doğrulayın.
```bash
$ ssh [email protected]
# The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)? yes
# Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
# Permission denied (publickey).
```
...TODO...
# Rbenv
Sunucumuza Rbenv kurabilmek için öncesinde deployer olarak ssh bağlantısı oluşturmalıyız.
```bash
$ ssh [email protected] -p xxxx
```
Bu işlemden sonra aşlağıdaki paketleri kurun. Bu paketlerden daha önceden mevcut kurulu olanlar olabilir.
```bash
$ sudo apt-get install zlib1g-dev openssl libopenssl-ruby1.9.1 libssl-dev libruby1.9.1 libreadline-dev git-core make make-doc
```
Deployer kullanıcısının home dizinine gidin. Rbenv'i GitHub reposundan klonlayın vekabuk ve konsol
ayarlarını yapıp tekrar başlatın.
```bash
$ cd ~
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL
```
Rbenv kurulumunu ```which rbenv``` komutu ile konsoldan doğrulayın.
Herşey yolunda gidiyorsa şu şekilde bir çıktı almalısınız: ```/home/deployer/.rbenv/bin/rbenv```
Şimdi gerekli pluginleri kurmak için aşağıdaki adımları takip edin.
```bash
$ mkdir -p ~/.rbenv/plugins
$ cd ~/.rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git
$ git clone git://github.com/sstephenson/rbenv-gem-rehash.git
$ rbenv install 2.0.0-p0
$ rbenv rehash
$ rbenv global 2.0.0-p0
$ ruby -v
# ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
```
Eğer yukarıdakı adımları izleyip ruby versiyonunu doğruladıysanız işlem tamamlanmış demektir.
Artık Rbenv aktif ve ilgili ruby versiyonu sunucunuza kurulmuş demektir.
# Bundler
Rbenv kurumulundan hemen sonra sisteme bundler gem'i kurmamız gerekmekte. Aşağıdaki komutları çalıştırın.
```bash
$ gem install bundler --no-ri --no-rdoc
$ rbenv rehash
$ bundle -v

```
# Unicorn
# Backup
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.
Expand Down

0 comments on commit da298fe

Please sign in to comment.