Takip et

Giriş: Web Projeleriniz İçin Neden LEMP Stack Tercih Etmelisiniz?

Ubuntu 16.04’te LEMP Stack Kurulumu: Adım Adım Rehber

Web sitenizi veya uygulamanızı yüksek performansla yayınlamak mı istiyorsunuz? Ubuntu 16.04 sunucunuzda Linux, Nginx, MySQL ve PHP (LEMP) stack’i kurmak, bu hedefe ulaşmanın en etkili yollarından biridir. Bu kapsamlı rehber, LEMP kurulumunu baştan sona adım adım açıklayarak web projenizi hayata geçirmenize yardımcı olacak.

Giriş: Web Projeleriniz İçin Neden LEMP Stack Tercih Etmelisiniz?

Günümüzün dijital dünyasında, hızlı ve güvenilir bir web altyapısı, online başarının temelini oluşturur. Bir web sitesi veya uygulamasının performansı, kullanıcı deneyimini doğrudan etkiler ve arama motoru sıralamalarında kritik bir rol oynar. Peki, bu noktada LEMP stack neden bu kadar popüler bir seçenek haline geldi? Geleneksel LAMP (Linux, Apache, MySQL, PHP) stack’ine bir alternatif olarak ortaya çıkan LEMP, özellikle yüksek trafikli siteler ve modern web uygulamaları için optimize edilmiş bir yapı sunar.

LEMP kısaltması, web sunucusu bileşenlerinin baş harflerinden oluşur: Linux (işletim sistemi), Enginx (web sunucusu, “Engine-X” olarak telaffuz edilir), MySQL (ilişkisel veritabanı yönetim sistemi) ve PHP (sunucu taraflı betik dili). Her bir bileşen, web uygulamanızın sorunsuz çalışması için hayati bir role sahiptir. Linux, stabil ve güvenli bir temel sağlarken, Nginx yüksek performanslı statik içerik sunumu ve eş zamanlı bağlantı yönetimi konusunda üstündür. MySQL, verilerinizin düzenli ve erişilebilir olmasını garanti ederken, PHP dinamik içerik oluşturma ve kullanıcı etkileşimini sağlar. Bu kombinasyon, özellikle kaynak verimli ve ölçeklenebilir çözümler arayan geliştiriciler ve sistem yöneticileri için ideal bir seçimdir.

LEMP stack’in sunduğu avantajlar saymakla bitmez. Nginx’in olay tabanlı mimarisi sayesinde, binlerce eş zamanlı bağlantıyı düşük kaynak tüketimiyle yönetebilir, bu da özellikle yüksek trafikli web siteleri için kritik bir performans artışı anlamına gelir. Ayrıca, statik içeriklerin hızlı bir şekilde sunulması ve PHP gibi dinamik içerik işlemcileriyle FastCGI üzerinden verimli bir şekilde iletişim kurması, genel web sitesi yanıt süresini önemli ölçüde iyileştirir. Güvenlik açısından da LEMP, modüler yapısı sayesinde daha kolay izlenebilir ve yapılandırılabilir bir ortam sunar. Bu güçlü ve esnek yapı, hem küçük kişisel projelerden hem de büyük kurumsal uygulamalara kadar geniş bir yelpazedeki ihtiyaçları karşılayabilir. Bu rehberde, Ubuntu 16.04 üzerinde bu güçlü yapıyı nasıl kuracağınızı adım adım öğreneceksiniz.

LEMP Stack Nedir ve Bileşenleri Nelerdir? Temel Kavramlara Giriş

LEMP stack, modern web uygulamalarını barındırmak için kullanılan güçlü bir yazılım paketidir. Adından da anlaşılacağı gibi, bu stack dört temel bileşenden oluşur ve her biri web sunucusu ortamınızın belirli bir yönünü ele alır. Bu bileşenleri anlamak, kurulum sürecini ve her birinin web projenizdeki rolünü kavramak açısından kritik öneme sahiptir. Şimdi, her bir bileşeni daha yakından inceleyelim.

Linux İşletim Sistemi: Sağlam Temeliniz

LEMP stack’in “L” harfi, temel işletim sistemi olan Linux’u temsil eder. Linux, açık kaynak kodlu, güvenilir, esnek ve yüksek performanslı bir işletim sistemidir. Sunucular için en popüler seçimlerden biridir, çünkü stabilite, güvenlik ve geniş bir topluluk desteği sunar. Ubuntu, Linux tabanlı dağıtımlar arasında özellikle sunucu ortamlarında yaygın olarak kullanılan ve tercih edilen bir seçenektir. Ubuntu 16.04 LTS (Long Term Support) sürümü, uzun süreli güvenlik güncellemeleri ve kararlılığı ile bilinir, bu da onu üretim ortamları için güvenilir bir tercih yapar. Linux üzerinde çalışmak, sistem kaynaklarını daha verimli kullanmanızı sağlar ve web sunucunuzun performansını artırır.

Nginx (Engine-X): Yüksek Performanslı Web Sunucusu

LEMP stack’in kalbinde yer alan “E”, Nginx’i temsil eder. Nginx, olay tabanlı (event-driven) ve asenkron mimarisi sayesinde, özellikle yüksek eş zamanlı bağlantı sayılarını düşük bellek tüketimiyle yönetme konusunda Apache’ye kıyasla daha verimlidir. Bu özelliği, onu yüksek trafikli web siteleri ve modern web uygulamaları için ideal bir seçenek haline getirir. Nginx, statik dosyaları (HTML, CSS, JavaScript, resimler vb.) son derece hızlı bir şekilde sunabilir ve dinamik içerik isteklerini (PHP gibi) FastCGI Process Manager (PHP-FPM) aracılığıyla PHP yorumlayıcısına ileterek işler. Bu ayrım, Nginx’in sadece bir proxy görevi görmesini ve PHP’nin iş yükünü ayrı bir süreçte yönetmesini sağlar, bu da genel sistem performansını ve kararlılığını artırır.

MySQL: Güçlü Veritabanı Yönetim Sistemi

Stack’in “M” harfi, popüler açık kaynaklı ilişkisel veritabanı yönetim sistemi olan MySQL’i ifade eder. MySQL, web uygulamaları için verileri depolamak, yönetmek ve almak için kullanılır. Kullanıcı bilgileri, ürün katalogları, blog yazıları gibi her türlü yapılandırılmış veriyi düzenli bir şekilde saklar. Yüksek performans, güvenilirlik ve kullanım kolaylığı sunar. WordPress, Joomla, Drupal gibi birçok popüler içerik yönetim sistemi (CMS) ve özel web uygulamaları MySQL’i arka uç veritabanı olarak kullanır. Veritabanı, uygulamanızın dinamik içeriğini besleyen ana kaynaktır ve doğru bir şekilde yapılandırılması, web sitenizin hızını ve işlevselliğini doğrudan etkiler.

PHP: Dinamik İçerik ve Uygulama Mantığı

Son olarak, “P” harfi, sunucu taraflı betik dili olan PHP’yi temsil eder. PHP, web sayfalarında dinamik içerik oluşturmak, form verilerini işlemek, veritabanlarıyla etkileşim kurmak ve oturumları yönetmek gibi görevler için yaygın olarak kullanılır. Nginx ile birlikte PHP’yi kullanırken, genellikle PHP-FPM (FastCGI Process Manager) adı verilen bir süreç yöneticisi devreye girer. PHP-FPM, PHP yorumlayıcısının Nginx ile verimli bir şekilde iletişim kurmasını sağlar. Nginx bir PHP isteği aldığında, bu isteği PHP-FPM’ye iletir; PHP-FPM kodu işler ve sonucu Nginx’e geri gönderir, Nginx de bu sonucu son kullanıcıya iletir. Bu mimari, PHP uygulamalarınızın daha hızlı ve güvenilir çalışmasına olanak tanır, özellikle yüksek yük altında bile performansın korunmasına yardımcı olur. Bu bileşenlerin bir araya gelmesiyle, dinamik, hızlı ve ölçeklenebilir web uygulamaları oluşturmak için güçlü bir platform elde edersiniz.

Ubuntu 16.04 Sunucusunu Hazırlama: İlk Adımlar Nelerdir?

LEMP stack kurulumuna başlamadan önce, Ubuntu 16.04 sunucunuzun optimum performans ve güvenlik için doğru şekilde hazırlandığından emin olmalısınız. Bu hazırlık adımları, kurulum sürecini sorunsuz hale getirecek ve gelecekteki olası sorunların önüne geçecektir. Sunucunuzu güncellemek, yeni bir kullanıcı oluşturmak ve güvenlik duvarını yapılandırmak bu sürecin temelini oluşturur.

Sistem Güncellemesi ve Temel Paket Kurulumları

Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan emin olmak en iyi uygulamadır. Bu, hem güvenlik açıklarını kapatır hem de en son yazılım paketlerini almanızı sağlar. SSH aracılığıyla sunucunuza bağlandıktan sonra, aşağıdaki komutları kullanarak paket listelerini güncelleyebilir ve mevcut paketleri yükseltebilirsiniz:

sudo apt update
sudo apt upgrade -y

Bu komutlar, sisteminizdeki tüm paketleri en yeni sürümlerine güncelleyecektir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar, bu da etkileşimsiz bir güncelleme süreci demektir. Güncelleme işlemi tamamlandıktan sonra, bazı temel yardımcı programların kurulu olduğundan emin olmak faydalı olacaktır. Örneğin, curl veya wget gibi araçlar, ilerleyen adımlarda ihtiyaç duyabileceğiniz dosyaları indirmek için kullanılabilir.

Yeni Bir Kullanıcı Oluşturma ve Sudo Yetkileri Verme

Sunucunuza doğrudan root kullanıcısıyla çalışmak yerine, güvenlik amacıyla sudo yetkilerine sahip yeni bir kullanıcı oluşturmak her zaman tavsiye edilir. Bu, yanlışlıkla sistem dosyalarına zarar verme riskini azaltır ve daha güvenli bir çalışma ortamı sağlar. Yeni bir kullanıcı oluşturmak için:

sudo adduser [kullanıcı_adı]

Örneğin, sudo adduser webuser komutu ile webuser adında bir kullanıcı oluşturabilirsiniz. Sistem sizden yeni kullanıcının parolasını girmenizi ve bazı ek bilgileri (isteğe bağlı) doldurmanızı isteyecektir. Kullanıcı oluşturulduktan sonra, ona sudo yetkileri vermek için aşağıdaki komutu kullanın:

sudo usermod -aG sudo [kullanıcı_adı]

Bu komut, yeni kullanıcınızı sudo grubuna ekler. Artık bu kullanıcıyla oturum açabilir ve sudo komutunu kullanarak yönetici ayrıcalıklarına sahip komutları çalıştırabilirsiniz. Bu adımdan sonra mevcut root oturumunuzdan çıkış yapıp yeni kullanıcı ile giriş yapmanız güvenli bir başlangıç için önemlidir.

UFW (Uncomplicated Firewall) ile Güvenlik Duvarı Yapılandırması

Güvenlik, bir sunucu kurulumunun en önemli yönlerinden biridir. UFW, Ubuntu’da varsayılan olarak gelen ve güvenlik duvarını yönetmeyi kolaylaştıran bir araçtır. LEMP stack’i kurmadan önce, sadece gerekli portlara izin vererek sunucunuzu dış tehditlere karşı korumanız hayati önem taşır. Öncelikle, UFW’nin kurulu olup olmadığını kontrol edelim ve gerekirse kuralım:

sudo apt install ufw

UFW’yi varsayılan olarak tüm gelen bağlantıları reddedecek şekilde ayarlamak iyi bir başlangıçtır:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Şimdi, LEMP stack’in çalışması için gerekli olan portlara izin vermemiz gerekiyor:

  • SSH (Port 22): Sunucuya uzaktan erişim için.
  • HTTP (Port 80): Nginx’in web trafiğini sunması için.
  • HTTPS (Port 443): SSL/TLS şifreli web trafiği için (ileride SSL kurmayı planlıyorsanız).

Bu portlara izin vermek için aşağıdaki komutları kullanın:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Alternatif olarak, port numaralarını belirterek de izin verebilirsiniz:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Kuralları tanımladıktan sonra, UFW’yi etkinleştirebilirsiniz:

sudo ufw enable

Etkinleştirme sırasında bir uyarı alabilirsiniz, onaylamak için y tuşuna basın. Güvenlik duvarının durumunu kontrol etmek için:

sudo ufw status

Bu komut, etkin kuralları listeleyecektir. Sunucunuz artık temel güvenlik önlemleriyle korunmaktadır. Bu hazırlık adımları, LEMP stack kurulumunuz için sağlam ve güvenli bir zemin oluşturur.

Nginx Kurulumu ve Temel Yapılandırma: Web Sunucunuzu Ayağa Kaldırma

LEMP stack’in ilk temel bileşeni olan Nginx’i kurarak web sunucunuzu faaliyete geçireceğiz. Nginx, özellikle yüksek performanslı statik içerik sunumu ve eş zamanlı bağlantı yönetimi konusunda üstün bir web sunucusudur. Kurulumu oldukça basittir ve temel yapılandırmasıyla hemen çalışmaya başlayabiliriz.

Nginx Paketini Kurma

Nginx’i Ubuntu 16.04 sisteminize kurmak için aşağıdaki komutu kullanabilirsiniz. Daha önce sistem güncellemesi yaptığımız için paket listelerimiz günceldir:

sudo apt install nginx -y

Kurulum tamamlandığında, Nginx servisi otomatik olarak başlayacaktır. Servisin durumunu kontrol etmek ve çalıştığından emin olmak için aşağıdaki komutu kullanabilirsiniz:

systemctl status nginx

Çıktıda “active (running)” ifadesini görmelisiniz. Bu, Nginx’in başarıyla kurulduğunu ve çalıştığını gösterir. Ayrıca, web tarayıcınızdan sunucunuzun IP adresini (veya alan adını) ziyaret ederek Nginx’in varsayılan karşılama sayfasını görmelisiniz. Eğer bu sayfayı görüyorsanız, Nginx doğru bir şekilde çalışıyor demektir.

Nginx için Güvenlik Duvarı Ayarları

Daha önce UFW ile temel güvenlik duvarı kurallarını belirlemiştik. Nginx kurulumu, UFW için bazı uygulama profilleri ekler. Bu profilleri kullanarak Nginx’e özel izinler tanımlayabiliriz:

sudo ufw app list

Bu komut, mevcut uygulama profillerini listeler. Çıktıda genellikle şunları görürsünüz:

  • Nginx Full: Hem 80 (HTTP) hem de 443 (HTTPS) portlarına izin verir.
  • Nginx HTTP: Sadece 80 (HTTP) portuna izin verir.
  • Nginx HTTPS: Sadece 443 (HTTPS) portuna izin verir.

Eğer sadece HTTP trafiği sunacaksanız, Nginx HTTP profilini etkinleştirebilirsiniz. Eğer ileride SSL/TLS ile HTTPS kullanmayı planlıyorsanız, Nginx Full profilini kullanmak daha uygun olacaktır. Örneğin, HTTP trafiğine izin vermek için:

sudo ufw allow 'Nginx HTTP'

Eğer daha önce manuel olarak 80 ve 443 portlarına izin verdiyseniz, bu adımı atlayabilirsiniz veya daha spesifik uygulama profillerini kullanmak için mevcut kuralları silebilirsiniz. Güvenlik duvarı kurallarını güncelledikten sonra, UFW durumunu tekrar kontrol edin:

sudo ufw status

Nginx Sunucu Bloğu Yapılandırması (Sanal Host)

Nginx, Apache’deki sanal hostlara benzer şekilde “sunucu blokları” kullanarak birden fazla web sitesini aynı sunucu üzerinde barındırmanıza olanak tanır. Kendi web siteniz için özel bir sunucu bloğu oluşturmak, Nginx yapılandırmanızın düzenli kalmasını sağlar. Varsayılan olarak, Nginx bir varsayılan sunucu bloğu ile gelir. Kendi bloğumuzu oluşturalım:

Öncelikle, web siteniz için bir dizin yapısı oluşturalım. Örneğin, example.com alan adı için:

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com

Bu komutlar, web sitesi dosyalarınızın bulunacağı dizini oluşturur ve kullanıcınıza bu dizin üzerinde sahiplik verir. Şimdi, bu dizin içinde basit bir HTML dosyası oluşturalım:

nano /var/www/example.com/html/index.html

Açılan dosyaya aşağıdaki içeriği ekleyin:

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hoş Geldiniz!</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }
        h1 { color: #333; }
        p { color: #666; }
    </style>
</head>
<body>
    <h1>example.com Nginx Sunucusu Başarıyla Çalışıyor!</h1>
    <p>LEMP Stack kurulumunuzun ilk adımı tamamlandı.</p>
</body>
</html>

Kaydedin ve çıkın (Ctrl+X, Y, Enter). Şimdi, Nginx için yeni bir sunucu bloğu dosyası oluşturalım:

sudo nano /etc/nginx/sites-available/example.com

Bu dosyaya aşağıdaki yapılandırmayı ekleyin:

server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name example.com www.example.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

server_name kısmını kendi alan adınızla değiştirmeyi unutmayın. Eğer bir alan adınız yoksa, sunucunuzun IP adresini kullanabilirsiniz. Bu yapılandırma, Nginx’e belirli bir alan adı için hangi dizinden içerik sunacağını söyler.

Bu sunucu bloğunu etkinleştirmek için, sites-enabled dizinine bir sembolik bağlantı oluşturmamız gerekiyor:

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

Varsayılan Nginx yapılandırmasının çakışmasını önlemek için, varsayılan sunucu bloğunu devre dışı bırakın:

sudo rm /etc/nginx/sites-enabled/default

Nginx yapılandırmanızda herhangi bir sözdizimi hatası olup olmadığını kontrol edin:

sudo nginx -t

Eğer “test is successful” mesajını görürseniz, her şey yolunda demektir. Son olarak, Nginx’i yeniden başlatarak değişiklikleri uygulayın:

sudo systemctl restart nginx

Artık tarayıcınızdan http://example.com adresine (veya sunucu IP adresinize) giderek yeni web sitenizin çalıştığını görmelisiniz. Bu adımlar, Nginx’i başarıyla kurmanızı ve ilk web sitenizi yapılandırmanızı sağlar. Bir sonraki adımda veritabanı sistemimizi kuracağız.

Uzman İpucu: Nginx yapılandırma dosyalarınızı düzenlerken her zaman sudo nginx -t komutunu kullanarak sözdizimi hatalarını kontrol edin. Bu, servisi yeniden başlatmadan önce olası sorunları tespit etmenizi sağlar ve kesinti süresini minimuma indirir.

MySQL Kurulumu ve Güvenlik Ayarları: Veritabanınızı Oluşturma

Web uygulamalarınızın dinamik içeriğini depolamak için bir veritabanı yönetim sistemine ihtiyacımız var. MySQL, bu alanda en popüler ve güvenilir seçeneklerden biridir. Ubuntu 16.04 üzerinde MySQL’i kuracak ve temel güvenlik ayarlarını yapacağız, böylece verileriniz güvende kalacaktır.

MySQL Sunucusu Kurulumu

MySQL sunucusunu kurmak oldukça basittir. Aşağıdaki komutu kullanarak MySQL sunucu paketini yükleyebilirsiniz:

sudo apt install mysql-server -y

Kurulum sırasında veya sonrasında, MySQL için bir root parolası belirlemeniz istenebilir. Bu parola, MySQL veritabanı yönetim sisteminin ana yöneticisi için kullanılacaktır, bu yüzden güçlü ve hatırlayabileceğiniz bir parola seçtiğinizden emin olun. Eğer kurulum sırasında parola belirleme ekranı gelmezse endişelenmeyin, bu daha sonra güvenlik betiği ile ayarlanacaktır.

Kurulum tamamlandıktan sonra, MySQL servisi otomatik olarak başlayacaktır. Servisin durumunu kontrol etmek için:

systemctl status mysql

Yine “active (running)” çıktısını görmelisiniz. Bu, MySQL sunucunuzun başarıyla çalıştığı anlamına gelir.

MySQL Güvenlik Betiğini Çalıştırma

Yeni bir MySQL kurulumu, varsayılan olarak bazı güvensiz ayarlarla gelir. Bu güvenlik açıklarını kapatmak için MySQL ile birlikte gelen güvenlik betiğini çalıştırmak kritik öneme sahiptir. Bu betik, zayıf varsayılanları kaldırmanıza ve temel güvenlik ayarlarını yapmanıza yardımcı olur:

sudo mysql_secure_installation

Bu betiği çalıştırdığınızda, size bir dizi soru sorulacaktır:

  1. VALIDATE PASSWORD PLUGIN: Bu eklenti, kullanıcı parolalarının gücünü kontrol eder. Genellikle “Y” (Evet) diyerek etkinleştirmek iyi bir fikirdir. Eğer etkinleştirirseniz, bir parola gücü seviyesi seçmeniz istenecektir (LOW, MEDIUM, STRONG).
  2. Change the root password? Eğer kurulum sırasında root parolası belirlemediyseniz veya değiştirmek istiyorsanız “Y” diyerek yeni bir parola belirleyebilirsiniz. Eğer zaten belirlediyseniz ve değiştirmek istemiyorsanız “N” diyebilirsiniz.
  3. Remove anonymous users? Anonim kullanıcılar test amaçlıdır ve üretim ortamında güvenlik riski oluşturur. “Y” diyerek bunları kaldırmalısınız.
  4. Disallow root login remotely? root kullanıcısının uzaktan bağlantı kurmasını engellemek, güvenlik için çok önemlidir. Genellikle “Y” diyerek buna izin vermemelisiniz.
  5. Remove test database and access to it? Varsayılan olarak gelen “test” veritabanı ve ona erişim hakları da güvenlik riski oluşturur. “Y” diyerek bunları kaldırmalısınız.
  6. Reload privilege tables now? Yaptığınız değişikliklerin hemen etkili olması için “Y” diyerek ayrıcalık tablolarını yeniden yüklemelisiniz.

Tüm bu adımları tamamladığınızda, MySQL kurulumunuz çok daha güvenli bir hale gelecektir.

MySQL Yönetimi İçin Kullanıcı Oluşturma

Web uygulamalarınızın root kullanıcısıyla doğrudan veritabanına bağlanması iyi bir uygulama değildir. Bunun yerine, uygulamanız için özel bir MySQL kullanıcısı oluşturmalı ve ona yalnızca ihtiyaç duyduğu veritabanı üzerinde gerekli ayrıcalıkları vermelisiniz. MySQL komut istemine bağlanmak için:

sudo mysql -u root -p

Parolanızı girmeniz istendiğinde, MySQL root parolanızı girin. Komut istemine girdikten sonra, yeni bir veritabanı ve kullanıcı oluşturalım:

CREATE DATABASE example_database;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'gucluparo1a';
GRANT ALL PRIVILEGES ON example_database.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  • example_database: Web uygulamanızın kullanacağı veritabanının adı.
  • example_user: Web uygulamanızın veritabanına bağlanmak için kullanacağı kullanıcı adı.
  • gucluparo1a: Bu kullanıcı için belirleyeceğiniz güçlü parola.

Bu komutlar, example_database adında bir veritabanı oluşturur, example_user adında ve localhost‘tan bağlanabilen bir kullanıcı oluşturur ve bu kullanıcıya example_database üzerindeki tüm ayrıcalıkları verir. FLUSH PRIVILEGES; komutu, ayrıcalık tablolarını yeniden yükleyerek değişikliklerin hemen etkili olmasını sağlar. EXIT; ile MySQL komut isteminden çıkabilirsiniz.

Artık web uygulamanız, example_user ve gucluparo1a parolasını kullanarak example_database‘e güvenli bir şekilde bağlanabilir. Bu yapılandırma, veritabanı güvenliğinizi önemli ölçüde artırır ve web projenizin sağlam bir temele oturmasını sağlar.

PHP Kurulumu ve Nginx ile Entegrasyonu: Dinamik İçeriği Etkinleştirme

LEMP stack’in son bileşeni olan PHP’yi kurma ve Nginx ile entegre etme zamanı geldi. PHP, web sitenizin dinamik içeriğini oluşturmak ve veritabanıyla etkileşim kurmak için kullanılacak. Nginx, PHP kodunu doğrudan yorumlamaz; bunun yerine, PHP-FPM (FastCGI Process Manager) aracılığıyla PHP yorumlayıcısıyla iletişim kurar. Bu bölüm, PHP’yi kurma, PHP-FPM’yi yapılandırma ve Nginx sunucu bloğunuzu PHP ile çalışacak şekilde ayarlama adımlarını içerecektir.

PHP ve PHP-FPM Paketlerinin Kurulumu

Ubuntu 16.04 için PHP 7.0 (veya daha yeni bir sürüm, depolarınızda mevcutsa) kurabiliriz. PHP-FPM ve Nginx ile etkileşim için gerekli olan diğer yaygın PHP modüllerini de kuracağız:

sudo apt install php-fpm php-mysql php-cli php-common php-mbstring php-gd php-curl php-xml -y

Bu komut, PHP 7.0’ın FastCGI Process Manager’ını (php-fpm), MySQL veritabanı bağlantısı için gerekli modülü (php-mysql), komut satırı arayüzünü (php-cli), temel PHP dosyalarını (php-common), çok baytlı dize işlevleri için modülü (php-mbstring), grafik işleme için GD kütüphanesini (php-gd), URL’leri işlemek için cURL modülünü (php-curl) ve XML işleme için modülü (php-xml) kurar. Web uygulamanızın ihtiyaçlarına göre daha fazla PHP modülü eklemeniz gerekebilir.

Kurulum tamamlandığında, PHP-FPM servisi otomatik olarak başlayacaktır. Durumunu kontrol etmek için:

systemctl status php7.0-fpm

“active (running)” çıktısını görmelisiniz. Bu, PHP-FPM’nin başarıyla çalıştığı anlamına gelir.

Nginx Sunucu Bloğunu PHP ile Çalışacak Şekilde Yapılandırma

Şimdi Nginx’in PHP dosyalarını PHP-FPM’ye iletmesini sağlayacak şekilde sunucu bloğumuzu düzenlememiz gerekiyor. Daha önce oluşturduğumuz example.com sunucu bloğu dosyasını açın:

sudo nano /etc/nginx/sites-available/example.com

location / bloğunda index satırına index.php ekleyin ve PHP dosyalarını işlemek için bir location ~ \.php$ bloğu ekleyin. Düzenlenmiş yapılandırma şu şekilde görünmelidir:

server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/html;
    index index.php index.html index.htm index.nginx-debian.html; # index.php'yi ekledik

    server_name example.com www.example.com;

    location / {
        try_files $uri $uri/ =404;
    }

    # PHP dosyalarını PHP-FPM'ye iletmek için blok
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; # PHP-FPM soket yolu
    }

    # Hassas dosyaların web üzerinden erişimini engellemek için
    location ~ /\.ht {
        deny all;
    }
}

Bu yapılandırmada önemli noktalar:

  • index index.php: Nginx’e dizin isteklerinde index.php dosyasını aramasını söyler.
  • location ~ \.php$: Bu blok, URL’si .php ile biten tüm istekleri yakalar.
  • include snippets/fastcgi-php.conf;: Bu dosya, FastCGI iletişimini yapılandırmak için gerekli olan standart ayarları içerir.
  • fastcgi_pass unix:/run/php/php7.0-fpm.sock;: Bu satır, Nginx’in PHP isteklerini PHP-FPM’ye iletmek için kullandığı Unix soketini belirtir. Ubuntu 16.04’te genellikle bu yoldadır.

Değişiklikleri kaydedin ve dosyayı kapatın. Nginx yapılandırmanızda hata olup olmadığını kontrol edin:

sudo nginx -t

Eğer “test is successful” mesajını alırsanız, Nginx’i yeniden başlatarak değişiklikleri uygulayın:

sudo systemctl restart nginx

PHP’nin Çalıştığını Doğrulama

PHP’nin doğru bir şekilde çalıştığından emin olmak için, web sitenizin kök dizinine (/var/www/example.com/html/) basit bir PHP bilgi dosyası oluşturalım:

sudo nano /var/www/example.com/html/info.php

Bu dosyaya aşağıdaki içeriği ekleyin:

<?php
phpinfo();
?>

Kaydedin ve kapatın. Şimdi web tarayıcınızdan http://example.com/info.php adresine gidin (alan adınızı veya IP adresinizi kullanın). Eğer PHP’nin tüm yapılandırma bilgilerini içeren bir sayfa görüyorsanız, LEMP stack’iniz başarıyla kurulmuş ve çalışıyor demektir! Bu sayfa, kurulu PHP sürümünü, etkin modülleri ve diğer yapılandırma ayrıntılarını gösterecektir.

Önemli Güvenlik Notu: info.php dosyası, sunucunuz hakkında hassas bilgiler içerir. Kurulumu doğruladıktan sonra bu dosyayı sunucunuzdan kaldırmanız veya adını değiştirmeniz şiddetle tavsiye edilir. Aksi takdirde, potansiyel güvenlik açıkları oluşturabilir:

sudo rm /var/www/example.com/html/info.php

Tebrikler! LEMP stack’iniz artık tamamen işlevseldir. Artık bu platform üzerinde kendi web uygulamalarınızı veya içerik yönetim sistemlerini (WordPress gibi) kurmaya hazırsınız.

LEMP Stack’i Güvenli ve Optimize Etme: Performans ve Güvenlik İpuçları

LEMP stack’i kurmak harika bir başlangıçtır, ancak bir web sunucusunun sadece çalışır durumda olması yeterli değildir. Performansını optimize etmek ve güvenliğini sağlamak, uzun vadeli başarı için kritik öneme sahiptir. Bu bölümde, LEMP stack’inizi daha hızlı, daha güvenli ve daha kararlı hale getirmek için bazı ileri düzey ipuçları ve yapılandırmalar ele alınacaktır.

HTTPS ile SSL/TLS Şifrelemesi Ekleme (Certbot ile Let’s Encrypt)

Web sitenizde SSL/TLS şifrelemesi kullanmak, kullanıcı verilerini korumak, SEO sıralamalarını iyileştirmek ve genel güveni artırmak için olmazsa olmazdır. Let’s Encrypt, ücretsiz SSL sertifikaları sağlayan harika bir girişimdir ve Certbot aracı ile kolayca kurulabilir. Ubuntu 16.04 için Certbot’u kurup Nginx ile entegre edelim:

sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:certbot/certbot -y
sudo apt update
sudo apt install python-certbot-nginx -y

Certbot’u kurduktan sonra, Nginx için SSL sertifikası almak ve otomatik olarak yapılandırmak için aşağıdaki komutu kullanın:

sudo certbot --nginx -d example.com -d www.example.com

example.com ve www.example.com yerine kendi alan adlarınızı yazın. Certbot, e-posta adresinizi isteyecek, hizmet şartlarını kabul etmenizi isteyecek ve sertifikayı otomatik olarak yapılandıracaktır. Ayrıca, HTTP trafiğini HTTPS’e yönlendirip yönlendirmeyeceğinizi de soracaktır. Genellikle “2: Redirect” seçeneğini seçmek iyi bir uygulamadır. Bu işlem tamamlandığında, Nginx yapılandırmanız otomatik olarak güncellenecek ve web siteniz HTTPS üzerinden erişilebilir olacaktır. Certbot ayrıca sertifikaların otomatik yenilenmesini de yapılandıracaktır.

Nginx Optimizasyonları

Nginx’in performansını artırmak için bazı temel yapılandırma değişiklikleri yapabiliriz. Ana Nginx yapılandırma dosyasını açın:

sudo nano /etc/nginx/nginx.conf

http { ... } bloğunun içine aşağıdaki ayarları ekleyebilir veya düzenleyebilirsiniz:

user www-data; # Nginx'in hangi kullanıcıyla çalışacağını belirler
worker_processes auto; # CPU çekirdek sayınıza göre otomatik ayarlanır
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 1024; # Her worker'ın işleyebileceği maksimum bağlantı sayısı
    # multi_accept on; # Yeni bağlantıları daha hızlı kabul eder (isteğe bağlı)
}

http {
    sendfile on; # Dosya gönderme performansını artırır
    tcp_nopush on; # Veri paketlerini optimize eder
    tcp_nodelay on; # Küçük paketleri hemen gönderir
    keepalive_timeout 65; # Bağlantının ne kadar süre açık kalacağını belirler
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Gzip sıkıştırmasını etkinleştirme
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # Hata günlüklerini kapatma veya seviyesini ayarlama (prod ortamı için)
    # error_log /var/log/nginx/error.log crit;

    # ... diğer ayarlar ...
}

worker_processes auto; ayarı, Nginx’in CPU çekirdek sayınıza göre en iyi performansı sağlamasına yardımcı olur. gzip on; ayarı, web sitenizin içeriğini sıkıştırarak daha hızlı yüklenmesini sağlar. Değişiklikleri kaydettikten sonra Nginx’i yeniden başlatın:

sudo systemctl restart nginx

PHP-FPM Optimizasyonları

PHP-FPM havuz yapılandırması, PHP uygulamanızın performansını doğrudan etkiler. Ana PHP-FPM havuz dosyasını açın:

sudo nano /etc/php/7.0/fpm/pool.d/www.conf

Bu dosyada, pm (process manager) ile ilgili ayarları düzenleyebilirsiniz:

  • pm = dynamic: İşlem yöneticisinin dinamik olarak çalışmasını sağlar (varsayılan). Diğer seçenekler static (sabit sayıda çocuk süreci) veya ondemand (istek üzerine çocuk süreci oluşturur).
  • pm.max_children: Oluşturulabilecek maksimum çocuk süreci sayısı. Sunucunuzun RAM’ine bağlıdır.
  • pm.start_servers: Başlangıçta oluşturulacak çocuk süreci sayısı.
  • pm.min_spare_servers: Minimum boşta bekleyen çocuk süreci sayısı.
  • pm.max_spare_servers: Maksimum boşta bekleyen çocuk süreci sayısı.

Bu değerleri sunucunuzun RAM’ine ve beklenen trafik yüküne göre ayarlamanız gerekir. Örneğin, 4GB RAM’e sahip bir sunucu için şu şekilde bir başlangıç yapabilirsiniz:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 15

Ayrıca, php.ini dosyasında da bazı önemli ayarlar bulunur:

sudo nano /etc/php/7.0/fpm/php.ini

Burada memory_limit, upload_max_filesize, post_max_size gibi değerleri uygulamanızın ihtiyaçlarına göre ayarlayabilirsiniz. Örneğin, WordPress gibi bir CMS kullanıyorsanız, bu değerleri artırmanız gerekebilir:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

Değişiklikleri kaydettikten sonra PHP-FPM’yi yeniden başlatın:

sudo systemctl restart php7.0-fpm
Uzman İpucu: PHP-FPM pm ayarlarını yaparken, pm.max_children değerini çok yüksek tutmaktan kaçının. Her PHP çocuk süreci RAM tüketir ve çok fazla çocuk süreci, sunucunuzun belleğini tüketerek performansı düşürebilir veya sunucuyu çökertir. Sunucunuzun RAM’ini göz önünde bulundurarak dikkatli bir denge kurun.

MySQL Optimizasyonları

MySQL performansı, web uygulamanızın hızında önemli bir rol oynar. MySQL yapılandırma dosyasını düzenleyerek bazı temel optimizasyonlar yapabiliriz:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Bu dosyada, özellikle [mysqld] bloğunun altında aşağıdaki ayarları kontrol edebilir veya ekleyebilirsiniz:

# Bağlantı ayarları
max_connections = 200 # Maksimum eş zamanlı bağlantı sayısı
wait_timeout = 60 # Bağlantıların ne kadar süre aktif kalacağı

# Bellek ayarları (RAM'inize göre ayarlayın)
innodb_buffer_pool_size = 1G # InnoDB verileri ve indeksleri için ayrılan RAM (Toplam RAM'in %50-70'i)
key_buffer_size = 128M # MyISAM indeksleri için ayrılan RAM (eğer MyISAM kullanılıyorsa)
query_cache_size = 64M # Tekrar eden sorgular için önbellek boyutu (MySQL 8+ sürümlerinde kaldırılmıştır)
tmp_table_size = 64M
max_heap_table_size = 64M

# Günlük ayarları (isteğe bağlı, hata ayıklama için)
# log_error = /var/log/mysql/error.log
# slow_query_log = 1
# slow_query_log_file = /var/log/mysql/mysql-slow.log
# long_query_time = 1

innodb_buffer_pool_size ayarı özellikle önemlidir ve sunucunuzun RAM’inin %50-70’i kadar bir değer olarak ayarlanması önerilir. Bu, veritabanı performansını önemli ölçüde artırabilir. Değişiklikleri kaydettikten sonra MySQL’i yeniden başlatın:

sudo systemctl restart mysql

Bu optimizasyonlar, LEMP stack’inizin daha verimli çalışmasını sağlayacak ve web projelerinizin daha iyi bir performans sunmasına yardımcı olacaktır. Ancak unutmayın, optimizasyon sürekli bir süreçtir ve sunucunuzun kaynaklarını ve uygulamanızın ihtiyaçlarını düzenli olarak izlemeniz gerekir.

Gerçek Dünya Senaryosu: WordPress Kurulumu ve Yönetimi

LEMP stack’inizi kurduktan ve optimize ettikten sonra, bu güçlü altyapı üzerinde bir web uygulaması çalıştırmanın zamanı geldi. En popüler içerik yönetim sistemlerinden biri olan WordPress’i LEMP stack üzerinde kurmak, bu yetenekleri sergilemek için harika bir gerçek dünya senaryosudur. Bu bölümde, WordPress’i nasıl kuracağınızı ve temel yönetim ipuçlarını ele alacağız.

WordPress İçin Veritabanı Oluşturma

WordPress’in çalışması için bir veritabanına ihtiyacı vardır. Daha önce MySQL için bir kullanıcı oluşturmuştuk, şimdi WordPress için özel bir veritabanı ve gerekirse yeni bir kullanıcı oluşturalım. MySQL komut istemine bağlanın:

sudo mysql -u root -p

Aşağıdaki komutları kullanarak WordPress için bir veritabanı ve kullanıcı oluşturun:

CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'cokguclu_wordpress_parolasi';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

wordpress_db, wordpress_user ve cokguclu_wordpress_parolasi değerlerini kendi tercihinize göre değiştirdiğinizden emin olun.

WordPress Dosyalarını İndirme ve Yapılandırma

Şimdi WordPress dosyalarını sunucunuza indirelim. Web sitenizin kök dizinine gidin (örneğin, /var/www/example.com/html) ve WordPress’in en son sürümünü indirin:

cd /var/www/example.com/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xvzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

Bu komutlar, WordPress’i indirir, sıkıştırılmış dosyayı açar, içeriğini mevcut dizine taşır ve gereksiz dosyaları temizler. Şimdi, WordPress’in yapılandırma dosyasını oluşturalım:

sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

wp-config.php dosyasını açtıktan sonra, veritabanı bilgilerinizi aşağıdaki gibi güncelleyin:

//  MySQL settings - You can get this info from your web host  //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress_db');

/** MySQL database username */
define('DB_USER', 'wordpress_user');

/** MySQL database password */
define('DB_PASSWORD', 'cokguclu_wordpress_parolasi');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Ayrıca, güvenlik anahtarlarını (Authentication Unique Keys and Salts) güncellemek için https://api.wordpress.org/secret-key/1.1/salt/ adresinden yeni anahtarlar oluşturup wp-config.php dosyanıza yapıştırın. Bu, WordPress kurulumunuzun güvenliğini artıracaktır.

Dosya İzinlerini Ayarlama

WordPress’in doğru çalışması ve dosya yüklemeleri gibi işlemler yapabilmesi için doğru dosya izinlerine sahip olması gerekir:

sudo chown -R www-data:www-data /var/www/example.com/html
sudo find /var/www/example.com/html -type d -exec chmod 755 {} \;
sudo find /var/www/example.com/html -type f -exec chmod 644 {} \;

Bu komutlar, www-data kullanıcısına (Nginx ve PHP-FPM’nin çalıştığı kullanıcı) dosyaların sahipliğini verir ve dizinler için 755, dosyalar için 644 izinlerini ayarlar. Bu, hem güvenlik hem de işlevsellik için önemlidir.

WordPress Kurulumunu Tamamlama

Tüm bu adımları tamamladıktan sonra, web tarayıcınızdan alan adınızı (örneğin, http://example.com veya https://example.com) ziyaret edin. WordPress’in hoş geldiniz ekranını görmelisiniz. Buradan dil seçiminizi yapıp site başlığı, yönetici kullanıcı adı, parola ve e-posta adresi gibi bilgileri girerek WordPress kurulumunu tamamlayabilirsiniz.

WordPress Yönetimi ve Bakımı İçin İpuçları

  • Düzenli Güncellemeler: WordPress çekirdeğini, temalarını ve eklentilerini düzenli olarak güncelleyerek güvenlik açıklarını kapatın ve yeni özelliklerden faydalanın.
  • Yedeklemeler: Veritabanınızı ve WordPress dosyalarınızı düzenli olarak yedekleyin. Herhangi bir felaket durumunda verilerinizi kurtarabilmek için bu kritik öneme sahiptir.
  • Güvenlik Eklentileri: Wordfence veya Sucuri gibi güvenlik eklentileri kullanarak sitenizi kötü amaçlı yazılımlara ve saldırılara karşı koruyun.
  • Önbellekleme Eklentileri: WP Super Cache veya W3 Total Cache gibi önbellekleme eklentileri kullanarak sitenizin yüklenme hızını artırın ve sunucu üzerindeki yükü azaltın.
  • PHP Sürümü: Mümkün olduğunca en güncel ve desteklenen PHP sürümünü kullanın. WordPress, daha yeni PHP sürümlerinde daha hızlı ve güvenli çalışır.

Bu adımları takip ederek LEMP stack’iniz üzerinde güçlü, güvenli ve performanslı bir WordPress sitesi çalıştırabilirsiniz. Gerçek dünya senaryolarında bu tür kurulumlar, geliştiricilere ve işletmelere büyük esneklik ve kontrol sağlar.

Sonuç: LEMP Stack ile Güçlü Bir Başlangıç

Bu kapsamlı rehber boyunca, Ubuntu 16.04 üzerinde Linux, Nginx, MySQL ve PHP’den oluşan LEMP stack’i başarıyla kurmayı ve yapılandırmayı öğrendiniz. Sunucunuzu hazırlamaktan başlayarak, her bir bileşenin kurulumuna, temel yapılandırmalarına, güvenlik ayarlarına ve performans optimizasyonlarına kadar her adımı detaylıca inceledik. Ayrıca, gerçek dünya senaryosu olarak popüler WordPress platformunu LEMP stack üzerinde nasıl kuracağınızı da gördünüz.

LEMP stack, modern web uygulamaları ve yüksek trafikli web siteleri için eşsiz bir performans, esneklik ve kararlılık sunar. Nginx’in olay tabanlı mimarisi, MySQL’in güvenilir veritabanı yönetimi ve PHP-FPM’nin verimli dinamik içerik işleme yetenekleri bir araya geldiğinde, projeleriniz için sağlam bir temel oluşturur. Bu rehberdeki bilgileri uygulayarak, web projelerinizi hayata geçirmek için gerekli olan temel altyapıyı güvenle kurabilirsiniz. Unutmayın, sunucu yönetimi sürekli bir öğrenme ve iyileştirme sürecidir. Düzenli güncellemeler, güvenlik denetimleri ve performans izleme, web sunucunuzun uzun vadeli sağlığı için kritik öneme sahiptir.

Sıkça Sorulan Sorular (SSS)

1. Ubuntu 16.04 yerine daha yeni bir Ubuntu sürümü kullanabilir miyim?

Evet, kesinlikle! Bu rehber Ubuntu 16.04’e odaklanmış olsa da, LEMP stack kurulumu adımları Ubuntu 18.04, 20.04 veya 22.04 gibi daha yeni sürümlerde de benzerdir. Yalnızca PHP sürüm numaraları (örneğin, php7.0-fpm yerine php7.4-fpm veya php8.1-fpm) ve bazı paket adlarında küçük farklılıklar olabilir. Her zaman en güncel LTS (Long Term Support) sürümünü kullanmanız tavsiye edilir, çünkü daha uzun süreli güvenlik güncellemeleri ve daha yeni yazılım paketleri sunarlar.

2. Nginx yerine Apache kullanabilir miyim?

Evet, kullanabilirsiniz. Eğer web sunucusu olarak Apache’yi tercih ederseniz, bu durumda stack’iniz LAMP (Linux, Apache, MySQL, PHP) olarak adlandırılır. Apache, Nginx’e göre daha fazla modül esnekliği ve .htaccess dosyaları aracılığıyla dizin bazında yapılandırma imkanı sunar. Ancak Nginx, özellikle yüksek eş zamanlı bağlantı sayıları ve statik içerik sunumu konusunda genellikle daha performanslıdır. Kurulum adımları, Apache ve PHP’nin Apache modülü (libapache2-mod-php) olarak kurulmasını gerektirecektir.

3. MySQL yerine başka bir veritabanı sistemi kullanabilir miyim?

Evet, MySQL yerine PostgreSQL veya MariaDB gibi alternatif veritabanı yönetim sistemlerini kullanabilirsiniz. MariaDB, MySQL’in topluluk tarafından geliştirilen bir fork’udur ve genellikle MySQL ile yüksek düzeyde uyumludur, ancak bazı performans iyileştirmeleri ve ek özellikler sunar. PostgreSQL ise daha karmaşık veri yapıları ve kurumsal düzeyde uygulamalar için güçlü bir alternatiftir. Seçiminiz, projenizin özel gereksinimlerine ve tercihlerinize bağlı olacaktır.

4. Kurulum sırasında bir hata alırsam ne yapmalıyım?

Kurulum sırasında bir hata alırsanız, öncelikle hata mesajını dikkatlice okuyun. Genellikle hata mesajı, sorunun kökeni hakkında ipuçları verir. Şunları deneyebilirsiniz:

  • Komutları doğru yazdığınızdan emin olun.
  • İnternet bağlantınızın aktif olduğundan emin olun.
  • sudo apt update komutunu tekrar çalıştırarak paket listelerinizi güncelleyin.
  • Hata mesajını kopyalayıp arama motorlarında (Google, Stack Overflow vb.) arayın. Büyük olasılıkla başkaları da benzer sorunlarla karşılaşmıştır ve çözümleri mevcuttur.
  • Servislerin durumunu kontrol edin (systemctl status nginx, systemctl status mysql, systemctl status php7.0-fpm).
  • Log dosyalarını kontrol edin (/var/log/nginx/error.log, /var/log/mysql/error.log, /var/log/php7.0-fpm.log).

5. LEMP stack’i kurduktan sonra web siteme nasıl erişebilirim?

Eğer bir alan adınız varsa ve DNS kayıtlarınızı sunucunuzun IP adresine yönlendirdiyseniz, tarayıcınıza http://alanadiniz.com veya https://alanadiniz.com yazarak erişebilirsiniz. Eğer bir alan adınız yoksa veya DNS henüz güncellenmediyse, doğrudan sunucunuzun genel IP adresini (örneğin, http://YOUR_SERVER_IP) tarayıcınıza yazarak web sitenize erişebilirsiniz. Nginx yapılandırmanızda server_name yönergesini doğru bir şekilde ayarladığınızdan emin olun.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.