Ubuntu Server Üzerinde Nginx ve MariaDB Kurulumları

Apache HTTP Server bağımlılıklarımı gittikçe Nginx‘e doğru aktarmaya devam ediyorum. Elbette proje sayısına ve ilişkili diğer bağımlılıklara bağlı olarak bu süreç değişiklikler gösterebiliyor.

AA

Bu yazıda Ubuntu 16.04+ üzerindeki sunucunuza Nginx HTTP Server ve MariaDB veritabanı sunucusu kurulumlarından bahsedeceğim1. Go ve R dilleri ile ilgili sonraki yazılar da bu yazıdaki yönergeler zemin olacak şekilde ilerliyor olacaklar. O halde lafı uzatmadan başlayalım. İşlemler için DigitalOcean altında oluşturduğum 16.04 droplet kullanacağım.

Nginx Kurulumu

Nginx’e dair Nginx nedir ve nasıl kurulur sorularına değinmiş, ek olarak yapı ve konfigürasyon işlemlerine de kısaca değinmiştim. Bu yazıda sunucu üzerine kurulumundan bahsedeceğim. SSH üzerinden komut satırı ile devam edelim.

sudo apt-get update
sudo apt-get install nginx

Birkaç dakikalık yükleme işleminin ardından port kontrollerine geçebiliriz.

sudo ufw app list

Uyguladığımız komutun dönüşü şu şekilde olacaktır.

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Ön tanımlı olarak firewall kapalı olacaktır. Nginx HTTP, OpenSSH aktivasyonu ve firewall’ın enable edilmesi ile devam edebiliriz.

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'OpenSSH'
sudo ufw status

Yukarıdaki işlemlerden sonra çıktımız şu şekilde olacak:

Status: active

To                         Action      From
--                         ------      ----
Nginx HTTP                 ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Nginx HTTP (v6)            ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

Artık sunucumuz yayına hazır. Son bir kontrolden geçirelim.

systemctl status nginx

Komut nginx.service‘in çalıştığı dönüşünü bize iletmeli.

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-01-12 10:11:45 UTC; 10min ago
 Main PID: 2066 (nginx)
    Tasks: 2
   Memory: 3.5M
      CPU: 39ms
   CGroup: /system.slice/nginx.service
           ├─2066 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           └─2067 nginx: worker process

Jan 12 10:11:45 ubuntu systemd\[1\]: Starting A high performance web server and a reverse proxy server...
Jan 12 10:11:45 ubuntu systemd\[1\]: Started A high performance web server and a reverse proxy server.

DigitalOcean üzerinden IP adresi bilgisine sahibiz. Ancak, komut satırı üzerinden tekrar bağlantı sağlayacağımız IPv4 değerini almak istersek uygulamamız gereken komut şu şekilde olacaktır.

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\\/.\*$//'

Yapılandırma içerisinde curl güncel olarak bulunuyor. Ancak, olası bir aksiliğe karşı indirme işlemi gerçekleştirmek isteyebilirsiniz.

sudo apt-get install curl

Sunucu üzerinde sadece Golang ve Rlang kullanacağım için PHP kurulumuna değinmeyeceğim. Ancak PHP kurulumuyla devam etmek isterseniz Ubuntu 16.04.1 Üzerine NGINX, PHP-FPM ve MariaDB Kurulumu başlıklı yazıyla devam edebilirsiniz2. Ön tanımlı olarak sunulan, sunucu ve alanadı işlemleri için kullanılacak dizinler:

cat etc/nginx
cat /etc/nginx/nginx.conf
cat /etc/nginx/sites-available/
cat /etc/nginx/sites-enabled/

Yayın için kullanacağımız dizin:

cat /var/www/html/

Bir sonraki aşamada da MariaDB yükleme işlemlerine geçebiliriz.

MariaDB Kurulumu

Bir önceki yazımda MariaDB’yi MySQL üzerine yapılandırmıştık. Bu yazıda ise sıfırdan bir kurulum gerekleştireceğiz ve ardından versiyon kontrolü yapıp veritabanı sunucusunu yeniden başlatacağız.

sudo apt-get update
sudo apt-get install mariadb-server mariadb-client
mysql --version
sudo service mysql restart

Ardından mysql yazarak yapılandırma aşamasına geçebiliriz.

mysql
create database if not exists [veritabani-adi];
create user '[veritabani-kullanici-adi]'@'localhost' identified by '[veritabani-sifre]';
grant usage on *.* to '[veritabani-kullanici-adi]'@'localhost' identified by '[veritabani-sifre]';
grant all privileges on [veritabani-adi].* to '[veritabani-kullanici-adi]'@'localhost';
flush privileges;
show databases;
exit;

Bu aşamada son bir kontrolden geçirelim.

/etc/init.d/mysql status

Kırmızı renkli bir hata alıyorsanız eğer ufak bir metin düzenleme işlemi yapmanız gerekecektir.

nano /etc/mysql/debian.cnf

[client] altındaki password alanına root kullanıcı için oluşturduğunuz şifreyi girip veritabanını yeniden başlatalım.

/etc/init.d/mysql restart
/etc/init.d/mysql status
mysqladmin -u root -p version

İşlemlerimiz tamamlandı. Bir sonraki adım olarak Go ve R dillerini sunucunuza yükleyebilirsiniz.