Nginx
Her zamanki gibi, işleme sudo yetkisine sahip normal bir kullanıcı ile başlıyoruz depoları güncelledikten sonra nginx’i kuruyoruz.
sudo apt update
sudo apt install nginx
Firewall ayarlarından Nginx Full
olanı seçiyoruz. Böylece http ve https bağlantılarına izin verilmiş olacak. Son olarak enable seçeneğiyle firewall her açılışta aktif hale gelecek.
sudo ufw allow 'Nginx Full'
sudo ufw enable
Bu adımda size ssh bağlantısının kesilebileceği uyarısı gelecektir. Evet seçeneğiyle devam edin, bağlantınız kesilmeyecek çünkü ssh portu 22 varsayılan olarak açık geliyor. Nginx kuruldu ve firewall ayarları yapıldı. Sunucu IP adresini tarayıcıdan çağırdığınızda nginx hoşgeldiniz sayfası gelecektir.
MySQL
sudo apt install mysql-server
Bu adımda mysql için bazı güvenlik ayarlamalarını yapacağımız, kurulumla birlikte gelen scripti çalıştırıyoruz.
sudo mysql_secure_installation
Sizden ilk olarak VALIDATE PASSWORD PLUGIN
için onay istenecek. Bu özelliği NO ile devre dışı bırakmanızı öneriyorum ancak her zaman güçlü ve tahmini zor şifreler seçmeye özen göstermelisiniz. İnternette hazır şifre üreticilerden yardım alınabilir. Güçlü şifreler oluşturmak için BU SİTEYİ kullanın.
Kalan sorulara cevap olarak her seferinde Y girin ve entere basın. Bu süreçte anonim kullanıcılar ile test veritabanını kaldırılacak, uzaktan root girişini kapatacak ve yeni kuralları aktif hale getirecektir. Şimdi test edelim.
sudo mysql
Programın çıktısı şöyle olacaktır:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
exit komutu ile çıkış yapabilirsiniz.
Dikkat ettiyseniz mysql root şifresi oluşturmadık çünkü mysql yetkilendirme için password
yerine unix_socket
kullanıyor. Bu ilk başta bir güvenlik açığı gibi görünse de aslında sistemi daha güvenli kılıyor. İleride mysql root şifresine ihtiyacınız olursa bir tane oluşturabilirsiniz.
PHP
sudo apt install php-fpm php-mysql
PHP kurulumu bu kadardı. Sırada nginx’in php ile sorunsuz çalışması için yapacağımız bazı önemli ayarlar var.
Nginx için varsayılan web kök dizini /var/www/html
dir ve tek bir web sitesi kullanacaksanız başka ayara gerek yoktur. Biz çoklu site kullanımına göre example.com için ayarımızı yapacağız.
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
Alan adımız için gerekli dizinleri oluşturduk ve kullanıcımıza erişim haklarını verdik. Şimdi nginx’e sitemizi tanıtalım.
sudo nano /etc/nginx/sites-available/example.com
Açılan dosyanın içine aşağıdaki bilgileri girin.
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ :404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Son olarak sembolik bağlantıyı veriyoruz, yazımda hata olup olmadığını denetliyoruz ve nginx’i yeniden başlatıyoruz.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Kurulumu tamamladık ancak web kökünde halen dosya yok ve sitemiz boş gözüküyor. Test etmek için basit index dosyası hazırlamak yeterlidir.
nano /var/www/example.com/html/index.html
dosyasına alttaki içeriği girin
<html>
<head>
<title>Hoşgeldiniz</title>
</head>
<body>
<h1>Merhaba Dünya!</h1>
<p>Example.com için test sayfasıdır</p>
</body>
</html>
Artık alan adınızı tarayıcıdan açtığınızda karşınıza bu test sayfası gelecektir. Dikkat ederseniz web kök dosyalarımız artık /var/www/html
klasöründen okunmuyor. Blok oluşturmanın güzel yanı bu.
Şimdi PHP’nin doğru çalıştığından emin olmak için bize detaylı çıktı veren php test sayfasını oluşturalım.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/html/info.php
Burada info.php
dosyasını tarayıcıdan çağırdığınızda detaylı php bilgilerine ulaşabilirsiniz. Kontrol ettikten sonra dosyayı silmeyi unutmayın!
Kurulumu tamamladık. Aynı metodu izleyerek, daha fazla siteyi sunucuda host edebilirsiniz.