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.
127.0.0.1 demosite.com
Yani son durumda hosts
dosyamızın aşağıdakine benzer şekilde gözükmesi gerekiyor.
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.
Ö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.
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
<?php
echo "Merhaba, bu ilk sitemiz!";
?>
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.
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.
🔈 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 ❗
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.

Last updated
Was this helpful?