HTTP Sunucusu Kurulumu

Nginx HTTP web sunucusu kurlumunu anlatıyoruz.

Nginx web sunucu yazılımımızı kurarak çalıştığını gördükten sonra artık ilk sunucu türümüz olan HTTP sunucusu kurulumuna geçiş yapıyoruz. Böylece artık sitelerimizi rahatça kurabileceğiz.

1. Hosts Dosyasını Ayarlama

Eğer localhost üzerinde çalışacaksanız öncelikle kendinize özel bir çalışma alanı oluşturmalısınız. Bu derste site örnek adresimiz demosite.com olacağı için (siz başka bir isimde belirleyebilirsiniz) /etc/ klasöründeki hosts dosyasına aşağıdaki satırı eklemeliyiz.

hosts
127.0.0.1    demosite.com

Yani son durumda hosts dosyamızın aşağıdakine benzer şekilde gözükmesi gerekiyor.

hosts
127.0.0.1       localhost
127.0.1.1       ubuntu
127.0.0.1       demosite.com

Özetle bilgisayarınızda istediğiniz bir sanal alan adı oluşturarak ders sonunda tarayıcıdan bu adrese girdiğinizde sitenizi görebileceksiniz.

Gerçek bir sunucu üzerinde çalışıyorsanız 127.0.0.1 adresi yerine sunucu ip adresinizi yazmanız gerekmektedir.

Örnek olarak x.x.x.x ip adresli sunucumuzda site1.com, site2.com ve site3.com web siteleri varsa hosts dosyamız şu şekilde olmalıdır.

hosts
x.x.x.x     site1.com
x.x.x.x     site2.com
x.x.x.x     site3.com

2. Site Dosyalarının Yolunu Belirleme

Bir HTTP sunucusu kurduğumuza göre oluşturacağımız sitenin dosyalarını da bir yerde tutmamız gerekiyor. Bunun için genel olarak kullanılan dizin /var/www/ dizinidir. Bu nedenle bizde yeni klasör oluşturma komutuyla dizinimizi oluşturup içine örnek bir PHP dosyası koyalım.

sudo mkdir /var/www/demosite.com/

Oluşturduğumuz site klasörüne gerekli izinleri verelim.

sudo chown -R $USER:$USER /var/www/demosite.com
sudo chmod -R 755 /var/www

Şimdi ise site klasörümüzde index.php dosyası oluşturalım.

sudo touch /var/www/demosite.com/index.php

Oluşturduğumuz dosyaya ise nano metin editörü ile örnek içeriğimizi girelim.

sudo nano /var/www/demosite.com/index.php
index.php
<?php 

echo "Merhaba, bu ilk sitemiz!";

?>

Klasör ve dosya oluşturma, dosya içeriğini düzenleme gibi işlemleri direkt konsoldan komutlarla yapmak yerine gezgin üzerinden fare kullanarakta yapabilirsiniz. Ama konsola alışmanız için komutlarla yapmanızı tavsiye ederiz.

3. Sunucu Bloklarının Oluşturulması

Artık sitemizin konfigürasyon dosyasını oluşturarak siteyi aktif etmenin zamanı geldi. Bunun için /etc/nginx/sites-available/ dizininde yer alan ve Nginx kurulumuyla beraber gelen default konfigürasyon tablomuzu sitemizin adıyla aynı dizin içine kopyalayarak gerekli düzenlemeleri yapabiliriz. Fakat kolaylık olması amacıyla dosyayı kendimiz oluşturarak aşağıdaki komutları direkt bu dosyamızın içine kopyalayabiliriz.

sudo touch /etc/nginx/sites-available/demosite.com

Dosyamızı nano veya gedit ile açarak aşağıdaki komutları içine yapıştırınız.

demosite.com
server {    
    listen 80;
    listen [::]:80;

    server_name demosite.com www.demosite.com;
    root /var/www/demosite.com;
    index index.php index.html;
     
    location / {
        try_files $uri $uri/ @rewrites;
    }
     
    location @rewrites {
        rewrite ^ /index.php last;
    }
     
    location ~ \.php {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        } 
}

Burada yer alan server_name ziyaret edilecek olan alan adıdır. Yani bu domaine bir istek geldiğinde yazdığımız server bloku çalışacaktır. root ise site dosyalarının yer aldığı dizin konumudur.

location ~ .php komutu PHP dosyalarının sunucumuzda yorumlanabilmesini sağlar fakat bu özelliği kullanabilmeniz için php-fpm paketini kurmanız gerekiyor. İlgili kurulum Nginx Kurulumu sayfasında yer almaktadır.

Eğer siteniz PHP dosyası içermiyor ve sadece HTML dosyalarını içeriyorsa location ~ .php özelliğini kullanmanıza gerek yoktur. Konfigürasyondan bu alanı silebilirsiniz.

🔈 Konfigürasyon dosyanızda listen satırında default_server tanımlamasını kullanarak gelen isteğin herhangi bir siteye denk gelmemesi durumunda default olarak çalıştırılacak server bloku seçilmiş olur. Örneğin demosite.com için default_server tanımlamasını kullanırsak sunucuda olmayan bir site isteği gönderildiğinde demosite.com kullanıcıya sunulacaktır. Fakat bu tercih edilen bir kullanım değildir

demosite.com
server {    
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name demosite.com www.demosite.com;
    root /var/www/demosite.com;
    index index.php index.html;
     
    location / {
        try_files $uri $uri/ @rewrites;
    }
     
    location @rewrites {
        rewrite ^ /index.php last;
    }
         
}

4. Sunucu Blokunun Etkinleştirilmesi

Sunucu blokumuzu bir üst başlıkta oluşturduk fakat sitemizin aktif olabilmesi için yazdığımız bloku etkinleştirmemiz gerekiyor. Bunun için aşağıdaki komut ile sites-available dizinindeki konfigürasyon dosyamızı sites-enabled dizinine kısayol olarak atıyoruz.

sudo ln -s /etc/nginx/sites-available/demosite.com /etc/nginx/sites-enabled/demosite.com

Ardından Nginx servisini yeniden başlatalım.

sudo systemctl restart nginx

Servisimiz ayağa kalktığında herhangi bir yazım hatası var mı kontrol etmek için aşağıdaki komutu çalıştıralım.

sudo nginx -t

Çıktıdaki gibi sonuçları görüyorsanız artık herşey tamamdır demektir.

5. Sonuç

Adımları sırasıyla kurduktan sonra tarayıcımızdan hosts dosyasında ayarladığınız domain adresine tarayıcınızdan gittiğinizde ekranda sitemizi görebilirsiniz. Bu örnekte localhost üzerinde çalıştığımız için rastgele belirlediğimiz demosite.com adresini açtığımızda aşağıdaki ekranla karşılaşırız.

Sunucunuzda aynı işlemleri tekrar ederek istediğiniz kadar site oluşturabilirsiniz.

Last updated