Ana içeriğe geç

LEMP

Bu makalede

Bilgi

LEMP, Linux işletim sistemini, NGINX web sunucusunu (telaffuzu "engine-x"), MySQL veritabanını ve PHP betik dilini içeren açık kaynaklı bir web geliştirme teknoloji yığınıdır.

  • Linux, barındırma ve sunucu yönetimini sağlar.
  • NGINX, yüksek performanslı bir web sunucusu ve vekil sunucu olarak görev yapar.
  • MySQL, verileri depolamak ve işlemek için ilişkisel bir veritabanıdır.
  • PHP, dinamik web uygulamaları oluşturmak için kullanılan bir programlama dilidir.

LEMP: Temel Özellikler

  • Konteynerize Çözüm: LEMP yığını hem klasik dağıtım hem de konteynerize çözüm olarak mevcuttur. Bir Docker konteyneri, bileşenler ve bağımlılıkları için izolasyon sağlayarak geliştirme ve üretim için özdeş bir ortam oluşturur.
  • Yüksek Performans: NGINX'in olay odaklı mimarisi, binlerce eşzamanlı bağlantıyı etkili bir şekilde yönetmesine olanak tanır. FastCGI aracılığıyla optimize edilmiş PHP yürütme, dinamik içeriğin hızlı işlenmesini sağlar ve statik dosyaların gelişmiş önbelleğe alınması sunucu yükünü azaltır.
  • Esnek Yapılandırma: LEMP, her bir bileşeni yapılandırma imkanı sunar. NGINX, karmaşık yönlendirme şemalarını, yük dengelemeyi ve önbelleğe almayı destekler. MySQL, performans ve güvenlik parametrelerini ince ayar yapmaya olanak tanır. PHP, gerekli eklentileri dahil etme ve bellek kullanımını optimize etme seçeneğiyle belirli uygulama ihtiyaçlarına göre yapılandırılabilir.
  • Çok İşlevsellik: PHP 8.3, modern web geliştirme için bir dizi özellik setiyle birlikte gelir. Çeşitli veri formatları, şifreleme ve ağ protokolleriyle çalışmayı destekler. MySQL, işlemler, karmaşık sorgular ve çoğaltma desteğiyle güvenilir veri depolama sağlar. NGINX, istekleri yönlendirme, SSL sonlandırma ve medya içeriği yönetme için gelişmiş yetenekler sunar.
  • Güvenlik: LEMP, çok katmanlı bir güvenlik sistemi içerir. NGINX, DDoS saldırılarına ve diğer web tehditlerine karşı koruma sağlar. MySQL, esnek kullanıcı izin yönetimi ve veri şifreleme sunar. PHP, modern güvenlik gereksinimleri göz önünde bulundurularak yapılandırılmıştır. Konteynerizasyon, bir bileşendeki güvenlik açıklarının diğerlerini etkilemesini engelleyen ek bir izolasyon katmanı sağlar.
  • Ölçeklenebilirlik: LEMP mimarisi, uygulamaların verimli bir şekilde ölçeklendirilmesine olanak tanır. NGINX, birden fazla sunucu arasında yük dağıtımını destekler. MySQL, büyük veri setleri için veri çoğaltma ve bölme (sharding) sağlar. PHP-FPM, işçi süreçlerinin sayısını hassas bir şekilde kontrol etmeye olanak tanır. Konteynerizasyon, yük arttıkça ek uygulama örneklerinin dağıtılmasını kolaylaştırır.
  • Güncellemelerin Kolaylığı: LEMP bileşenlerinin güncellemeleri bağımsız olarak yapılabilir. NGINX ve PHP, hizmet işlemini kesintiye uğratmadan güncellemeleri destekler. MySQL, güvenli veritabanı güncellemeleri için araçlar sağlar. Konteynerler ile, güncellemeleri uygulamadan önce izole bir ortamda test etmek mümkündür.

Çalıştırma Özellikleri

ID Yazılım Adı Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Özel Alan Adı Aktif
21 LEMP Ubuntu 22.04 + + + + 1 1 - Hayır SİPARİŞ VER

Yığın, adhocore/lemp:8.3 görüntüsü kullanılarak bir Docker konteyneri içinde dağıtılır. Veri depolama için aşağıdaki dizinler kullanılır:

  • Veritabanı dosyaları için /root/data;
  • Web sitesi dosyaları için /root/webroot.

Not

MySQL ile çalışmak için, MySQL istemcisi ana sistemde yüklü olmadığından Docker konteyneri üzerinden bağlanmanız gerekir. Aşağıdaki komutu kullanın:

docker exec -it lemp-stack mysql -u root -p 

Not

Aksi belirtilmedikçe, varsayılan olarak geliştiricinin web sitesinden veya işletim sisteminin depolarından yazılımın en son sürümünü yükleriz.

Bilgi

Sunucu dağıtım sürecinin otomatik olarak oluşturulan açıklaması burada mevcuttur.

LEMP Dağıtıldıktan Sonra Başlangıç

Siparişiniz ödendiğinde, kayıt sırasında sağladığınız adrese sunucunuzun kullanıma hazır olduğunu bildiren bir e-posta bildirimi alırsınız. Bu e-posta, bağlanmak için VPS IP adresinizi, oturum açma bilgilerinizi ve şifrenizi içerecektir.

Şirketimiz müşterileri, donanımlarını sunucu kontrol paneli ve APIInvapi üzerinden yönetir. Sunucunun IP adresini "Network" sekmesinde bulabilirsiniz. Ağ ayarlarını yönetme konusunda detaylı bir kılavuz burada mevcuttur.

  • Sunucuya SSH üzerinden bağlanmak için Login ve Password: Yazılım dağıtımından sonra sunucu hazır olduğunda kayıtlı e-posta adresinize gönderilen e-posta bildiriminde sağlanır. Veritabanına bağlanmak için kullanılan şifre, SSH sunucu bağlantı şifresiyle aynıdır.

  • NGINX:

    • Web sunucusu 88. porttan erişilebilir
    • Web içeriği /root/webroot dizinine yerleştirilir. Bir web sitesi barındırmak için dosyalarınızı bu dizine kopyalayın.
    • Sunucunun işlevselliğini test etmek için bir test dosyası oluşturun:
      echo "Hello World!" > /root/webroot/test.html 
      
    • Erişim: http://<sunucu_IP_adresiniz>:88/test.html

  • MySQL:

    • Veritabanı 3306. porttan erişilebilir
    • Veriler /root/data içinde depolanır
    • Kök şifresi, sunucuya SSH erişim şifresiyle eşleşir.
    • Bağlanmak için şunu kullanın:
      docker exec -it lemp-stack mysql -u root -p
      

    Önemli: PHP'den Veritabanına Bağlanma

    Web uygulamalarını (WordPress, Laravel vb.) yapılandırırken, veritabanı ana bilgisayarı olarak şunu kullanın:

    127.0.0.1 yerine localhost

    wp-config.php için WordPress örneği:

    define('DB_HOST', '127.0.0.1');
    

    localhost kullanmak şu hataya neden olur: Fatal error: Uncaught mysqli_sql_exception: No such file or directory
    Sebep: PHP, konteynerde varsayılan yolda mevcut olmayan Unix soketi üzerinden bağlanmaya çalışır.

  • PHP 8.3:

    • Tüm gerekli eklentilerle birlikte konteynerde yüklüdür
    • Artırılmış performans için FastCGI üzerinden çalışır.
    • PHP'nin işlevselliğini kontrol etmek için /root/webroot dizininde bir info.php dosyası oluşturun:
      echo "<?php phpinfo(); ?>" > /root/webroot/info.php
      

  • Portlar:

    • 88: Web (NGINX)
    • 3306: MySQL
    • 5432: PostgreSQL

Not

Veritabanıyla çalışmak için tüm komutlar, docker exec komutu kullanılarak Docker konteyneri üzerinden yürütülmelidir. Konteyner, izolasyonu ve güvenliği artırmak için özel bir ağ olan lemp-net içinde çalışır.

Not

Veritabanıyla çalışmaya ilişkin detaylı bilgiler geliştirici dokümantasyonunda bulunabilir.

API Kullanarak LEMP ile Bir Sunucu Siparişi