Debian 10'da RainLoop Kurulumu
Tags: debian, rainloop
Published: 2022-04-25 12:30:26

[![N|Solid](https://www.rainloop.net/static/img/logo-256x256-tiny.png)](https://www.rainloop.net/)

**_RainLoop nedir?_** Rainloop PHP ile kodlanmış, kurulumu ve kullanımı basit web-tabanlı e-posta istemcisidir. Yani Rainloop Google Inbox ve gmail siteleri ile aynı işlevi görür. Bu uygulamalar ile google sunucularında bulunan e-posta hesaplarınızın yönetimini yapılıyor. Rainloop ile de kendi sunucularınızdaki e-posta hesapları kolaylıkla yönetebilirsiniz. Kısaca, RainLoop ile kullanıcıya bir arayüz sunmuş oluyoruz.

### Kurulum İçin Gereksinimler

- Güncel bir [Debian 10](https://www.debian.org/distrib/). 
- Sunucu IP'niz ile gösterilen geçerli bir alan adı (domain).


## Adım 1 -- Sunucu oluşturmak

En az 2GB RAM'e sahip işletim sistemi olarak Debian 10'u seçerek yeni bir sunucu oluşturun. SSH aracılığıyla Bulut Sunucunuza bağlanın ve sayfanın üst kısmında vurgulanan kimlik bilgilerini kullanarak oturum açın.

Debian 10 sunucunuzda oturum açtıktan sonra, temel sisteminizi mevcut en son paketlerle güncellemek için aşağıdaki komutu çalıştırın.

```sh
apt-get update -y
```
****

## Adım 2 -- LEMP Server İndirmek

İlk olarak, sunucunuza [NGINX](https://www.nginx.com/) web sunucusu, [MariaDB](https://mariadb.org/), [PHP](https://www.php.net/) ve diğer gerekli PHP uzantılarını yüklemeniz gerekecek. Hepsini aşağıdaki komutla yükleyebilirsiniz:

```sh
apt-get install nginx mariadb-server php php-cli php-fpm php-curl php-json php-mbstring php-mysql php-common php-xml unzip -y
```

Tüm paketler yüklendikten sonra **php.ini** dosyasını düzenleyerek bazı değişiklikler yapmamız gerekecek.

```sh
nano /etc/php/7.3/fpm/php.ini
```

Aşağıdaki satırları bu şekilde değiştirelim:

```sh
upload_max_filesize = 50M
post_max_size = 50M
date.timezone = Asia/Kolkata
```

Dosyayı kaydedin ve kapatın. ardından değişiklikleri uygulamak için PHP-FPM hizmetini yeniden başlatın:

```sh
systemctl restart php7.3-fpm
```
****

## Adım 3 -- RainLoop için bir Veritabanı Oluşturmak

RainLoop için bir veritabanı ve kullanıcı oluşturmanız gerekecek. İlk olarak, aşağıdaki komutla MariaDB'ye giriş yapın:

```sh
mysql
```

Giriş yaptıktan sonra, aşağıdaki komutla bir veritabanı ve kullanıcı oluşturun:

```sh
CREATE DATABASE raindb;
CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'password';
```

Ardından, aşağıdaki komutla tüm ayrıcalıkları raindb'ye veriyoruz:

```sh
GRANT ALL ON raindb.* TO 'rainuser'@'localhost';
```

Ardından, ayrıcalıkları temizleyerek ve aşağıdaki komutla MariaDB kabuğundan çıkıyoruz:

```sh
FLUSH PRIVILEGES;
EXIT;
```

Bu noktada MariaDB'yi, RainLoop için yapılandırmış oluyoruz.
****
## Adım 4 -- RainLoop Kurulumu

İlk olarak, Nginx varsayılan kök dizini içinde RainLoop için bir dizin oluşturuyoruz:

```sh
mkdir /var/www/rainloop
```

Daha sonra aşağıdaki komutla RainLoop'un en son sürümünü indiriyoruz:

```sh
wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip 
```

Ardından, indirdiğimiz dosyayı aşağıdaki komutla /var/www/rainloop dizinine açıyoruz:

```sh
unzip rainloop-community-latest.zip -d /var/www/rainloop
```

Ardından, rainloop dizininin sahipliğini ve iznini değiştirelim:

```sh
chown -R www-data:www-data /var/www/rainloop
chmod -R 775 /var/www/rainloop
```

Nginx'i yapılandırmaya devam edelim.
****
## Adım 5 -- RainLoop için Nginx Yapılandırması

RainLoop için bir Nginx sanal sunucu yapılandırma dosyası oluşturmamız gerekecek. Aşağıdaki komutla oluşturabiliriz:

```sh
nano /etc/nginx/sites-available/rainloop.conf
```

Aşağıdaki satırları ekleyin:

```sh
server {

listen 80;

server_name rainloop.example.com;
root /var/www/rainloop;

index index.php;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_keep_conn on;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~ /\.ht {
deny all;
}

location ^~ /data {
deny all;
}

}
```

Dosyayı kaydedip kapatalım, ardından aşağıdaki komutla Nginx sanal sunucuyu etkinleştirelim:

```sh
ln -s /etc/nginx/sites-available/rainloop.conf /etc/nginx/sites-enabled/
```

Ardından, aşağıdaki komutla herhangi bir syntax hatası için Nginx'i doğrulayalım:

```sh
nginx -t
```

Aşağıdaki çıktıyı almalısınız:

```sh
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```

Ardından, değişiklikleri uygulamak için Nginx hizmetini yeniden başlatalım.

```sh
systemctl reload nginx
```

Herhangi bir hata alırsanız, Nginx varsayılan sunucu yapılandırma dosyasını düzenlemeniz ve server_names_hash_bucket_size değerini ayarlamanız gerekir:

```sh
nano /etc/nginx/nginx.conf
```

Aşağıdaki satırı http { altına ekleyin:

```sh
server_names_hash_bucket_size 64;
```

Dosyayı kaydedip kapatın, ardından değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın:

```sh
systemctl restart nginxAdmin
```
****
## Adım 6 -- RainLoop Arayüzüne Erişim Sağlamak

Şimdi web tarayıcınızı açın ve http://rainloop.example.com/?admin URL'sini kullanarak RainLoop admin arayüzüne erişim sağlayın. Aşağıdaki sayfayı görmelisiniz:

Login: Admin
Password: 12345

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0o006tssskygbkaen5f6.png)

Şimdi ise http://rainloop.example.com URL'sini kullanarak RainLoop kullanıcı arayüzüne erişim sağlayın. Aşağıdaki sayfayı görmelisiniz:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fcyym5gus764ueirv4qc.png)
 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcardyxrsko5r8zfowaf.png)