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