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.
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
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.
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;
}
}
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.
Komut
Çıktı
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Çıktıdaki gibi sonuçları görüyorsanız artık herşey tamamdır demektir.
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.

İlk site örneği
Sunucunuzda aynı işlemleri tekrar ederek istediğiniz kadar site oluşturabilirsiniz.
Last modified 3yr ago