Her ne kadar çeşitli paneller kullanarak sunucularımızı oluşturabilsekte, en temiz ve performanslı kurulum sanırım manuel kurulum diyebilirim. Bu yazımda Ubuntu, Centos ve Debian için NGINX, MariaDB ve PHP kurulumu yapacağız.
NGINX, MariaDB, PHP Kurulumu Nasıl Yapılır?
NGINX Kurulumu
Sunucumuzdaki tüm bileşenleri güncelliyoruz.
apt-get update && apt-get upgrade
Herşey hazır olduktan sonra NGINX kurulumuna geçiyoruz.
sudo apt install nginx
Yükleme işlemi bittikten sonra NGINX bağlantı noktasına trafik izni vermemiz gerekiyor. Aşağıdaki kodu yazıp NGINX trafiğine izin veriyoruz.
sudo ufw allow 'Nginx Full'
NGINX bağlantı noktasının düzgün çalışıp çalışmadığını kontrol ediyoruz. Herşeyi doğru yaptıysak çıktı yukarıdaki resimdeki gibi olmalıdır.
sudo ufw status
MariaDB Kurulumu
MariaDB kurulum dosyalarını sunucumuza yüklüyoruz.
sudo apt install mariadb-server
MariaDB kurulumunu başlatıyoruz.
sudo mysql_secure_installation
Karşımıza gelicek olan ekranda “Root” şifresi değiştirilsin mi diye soracak “N” diyerek geçiyoruz. Bundan sonra çıkacak tüm sorulara “Y” diyerek geçiyoruz ve kurulumu bitiriyoruz.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): N
MariaDB düzgün çalışıyor mu diye kontrol ediyoruz.
sudo systemctl status mariadb
Örnek çıktı aşağıdaki gibi olmalıdır.
● mariadb.service - MariaDB 10.3.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 25914 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 2345)
Memory: 65.6M
CGroup: /system.slice/mariadb.service
└─25914 /usr/sbin/mysqld
PHP Kurulumu
Ondrej deposunu sunucumuza ekliyoruz.
sudo add-apt-repository ppa:ondrej/php
PHP kurulumunu yapıyoruz.
sudo apt install php8.1 php8.1-fpm
NGINX / PHP Konfigürasyon
Alan adımızı çalıştıracağımız klasörü oluşturuyoruz.
sudo mkdir /var/www/alan_adiniz
Klasör izinlerini ayarlarıyoruz.
sudo chown -R $USER:$USER /var/www/alan_adiniz
Alan adımıza ait conf dosyasını oluşturuyoruz.
sudo nano /etc/nginx/sites-available/alan_adiniz
Nano editörde aşağıdaki kodu kendinize uygun şekilde doldurup “ctrl+x” sonra “y” basarak kaydediyorsunuz.
server {
listen 80;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
#SSL_START
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/alan_adinizcom(birlesik yazın, nokta koymayın).pem;
ssl_certificate_key /etc/nginx/ssl/alan_adinizcom(birlesik yazın, nokta koymayın).key;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL_END
server_name alan_adiniz.com www.alan_adiniz.com;
root /var/www/alan_adiniz.com;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location = /robots.txt {
try_files $uri $uri/ /index.php?$args;
access_log off;
log_not_found off;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
SSL Kurulumu
Ben DNS servisi olarak her zaman CloudFlare DNS kullandığım için SSL işlemlerinide CloudFlare üzerinden göstereceğim. Belki ileride Let’s Encrypt kurulumu ile ilgili bir yazı yazarsam onuda bu rehberle birleştiririm.
CloudFlare kullanıcı panelimizin sidebar menüsünden “SSL /TLS” tıklıyoruz.
“Your SSL/TLS encryption mode” kısmından “Full” seçiyoruz.
Ardından yine sidebar münüsünden “Origin Server” tıklıyoruz.
“Create Certificate” butonuna tıklayıp, sunucumuz için yeni bir SSL sertifikası oluşturuyoruz.
Çıkan sayfada hiçbir şey ellemeden “Create” butonuna tıklıyoruz.
“Create Certificate” butonuna tıklayıp, sunucumuz için yeni bir SSL sertifikası oluşturuyoruz.
Karşımıza gelen bu sayfayı kapatmadan sunucumuzda SSL için düzenlemelere geçiyoruz. Aşağıdaki kod ile sunucumuzda SSL dosyalarını barındıracağımız klasörü oluşturuyoruz.
sudo mkdir /etc/nginx/ssl
“Aşağıdaki kodu yine kendimize göre düzenliyor ve Nano editörü açıyoruz.
sudo nano /etc/nginx/ssl/alan_adiniz.pem
Karşımıza gelen editöre açık bıraktığımız CloudFlare sayfasındaki “Origin Certificate” kısmındaki kodu yapıştırıyor ve ctrl+x – “y” diyerek kayıt ediyoruz.
Yine yukarıdakine benzer işlemleri bu sefer “Private Key” için yapacağız. Aşağıdaki kodu kendimize göre düzenliyor ve Nano editörü açıyoruz.
sudo nano /etc/nginx/ssl/alan_adiniz.key
Karşımıza gelen editöre açık bıraktığımız CloudFlare sayfasındaki “Private Key” kısmındaki kodu yapıştırıyor ve ctrl+x – “y” diyerek kayıt ediyoruz.
SSL kurulumunu böylelikle tamamlamış oluyoruz, aşağıdaki kod ile NGINX servisini yeniden başlatıyoruz ve sisteminiz kullanılabilir hale gelmiş oluyor.
sudo systemctl reload nginx
Site klasörünüzün NGINX kurulumunda oluşturduğumuz /var/www/alan_adiniz alanında olduğunu tekrar hatırlatmak isterim. Herhangi bir sorunuz veya hata ile karşılaşırsanız yorumlara yazabilirsiniz.