LAMP ve LEMP nedir?
LAMP ve LEMP, bir web sitesini çalıştıran dört yazılımın kısaltmasıdır: Linux, bir web sunucusu, bir veritabanı ve PHP. LAMP'taki A harfi Apache, LEMP'teki E harfi Nginx demektir (Nginx "engine-x" diye okunduğu için E harfini alır). Veritabanı ikisinde de MySQL ya da MariaDB, programlama dili PHP'dir.
WordPress, WooCommerce ve Joomla gibi PHP uygulamaları bu yığında çalışır. WordPress.org web sunucusu olarak Apache ya da Nginx'i önerir, yani ikisi de uygun bir tabandır. Hangisini seçtiğiniz uygulamanın çalışıp çalışmayacağını değil, ayarları nasıl yazdığınızı değiştirir.
Yığın nasıl çalışır?
| Katman | LAMP | LEMP | Görevi |
|---|---|---|---|
| İşletim sistemi | Linux | Linux | Her şeyin üzerinde çalıştığı taban |
| Web sunucusu | Apache | Nginx | Tarayıcıdan gelen istekleri karşılar |
| Veritabanı | MySQL ya da MariaDB | MySQL ya da MariaDB | Yazıları, kullanıcıları, siparişleri saklar |
| Dil | PHP | PHP, PHP-FPM ile | Sayfayı üretir |
Bir istek yığında şöyle ilerler:
- Tarayıcı alan adınıza istek gönderir. İstek sunucunuzun 80 ya da 443 portuna ulaşır.
- Web sunucusu isteği karşılar. İstenen bir resim ya da CSS dosyasıysa doğrudan kendisi verir.
- İstenen bir PHP dosyasıysa web sunucusu onu PHP'ye iletir ve PHP kodu çalıştırır.
- PHP gerekirse veritabanına sorar (örneğin yazıyı ya da ürünü çeker), sayfayı üretir. Web sunucusu sayfayı tarayıcıya geri gönderir.
Bir sayfa açılmıyorsa katmanlara sırayla bakın: systemctl status nginx, systemctl status phpX.Y-fpm ve systemctl status mariadb. X.Y yerine PHP sürümünüzü yazın (Ubuntu 24.04'te 8.3), LAMP'ta nginx yerine apache2 yazın. Hangisi çalışmıyorsa sorun orada başlıyordur.
LAMP ile LEMP arasındaki fark
- Apache
.htaccessdosyalarını okur, Nginx okumaz. Nginx'te kurallar sunucu yapılandırmasına yazılır. - Nginx PHP'yi kendi içinde çalıştırmaz, istekleri PHP-FPM adlı ayrı bir servise iletir. Apache PHP'yi kendi içinde ya da PHP-FPM ile çalıştırabilir.
- Yapılandırma klasörleri farklıdır. Ubuntu'da Apache için
/etc/apache2, Nginx için/etc/nginxkullanılır. - Bellek kullanımını web sunucusu seçiminden çok PHP-FPM işçi sayısı ve veritabanı ayarları belirler.
- Birinin kesin olarak üstün olduğu söylenemez. İkisi de yaygındır, elinizdeki rehber ve alışkanlığınız belirleyici olur.
MySQL mi MariaDB mi?
MariaDB, MySQL'den ayrılan açık kaynaklı bir veritabanıdır ve komutlar ile istemciler büyük ölçüde uyumludur. WordPress'in resmi gereksinim sayfası ikisini de kabul eder, güncel asgari sürümleri oradan kontrol edin. Ubuntu'da mariadb-server paketi tek komutla kurulur. MariaDB belgesine göre 10.4 sürümünden beri root hesabı varsayılan olarak unix_socket ile doğrulanır. Sunucuda sudo mariadb yazmanız yeter, root parolası gerekmez.
Ubuntu'da LEMP kurulumu
Adımlar Ubuntu ve Debian içindir. Önce sunucuya SSH ile bağlanın. Örneklerde alan adı olarak ornek.com kullanılıyor.
- Paket listesini yenileyin:
sudo apt update - Gerekli paketleri kurun:
sudo apt install nginx mariadb-server php-fpm php-mysql. Kurulan sürümler paket deposundaki sürümlerdir. - Veritabanını sertleştirin:
sudo mariadb-secure-installation. Anonim kullanıcıları ve test veritabanını kaldırma, uzaktan root girişini kapatma sorularına evet deyin. - Site klasörünü oluşturun:
sudo mkdir -p /var/www/ornek sudo nano /etc/nginx/sites-available/ornekile bir dosya açın ve şu satırı yapıştırın:server { listen 80; server_name ornek.com www.ornek.com; root /var/www/ornek; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } }- Soketin gerçek adını
ls /run/php/gösterir.phpX.Y-fpm.sockyerine onu yazın. - Siteyi etkinleştirin:
sudo ln -s /etc/nginx/sites-available/ornek /etc/nginx/sites-enabled/ - Ayarı sınayın ve uygulayın:
sudo nginx -tardındansudo systemctl reload nginx - ufw kullanıyorsanız 80 ve 443 portlarını açın:
sudo ufw allow 80/tcpvesudo ufw allow 443/tcp. SSH portunun (22) açık olduğundan emin olun.
PHP'nin çalıştığını sınamak için bir deneme dosyası yazın:
echo '<?php phpinfo();' | sudo tee /var/www/ornek/info.php
Alan adı henüz sunucuya bağlı değilse sunucunun içinden curl -H 'Host: ornek.com' http://127.0.0.1/info.php ile deneyin. Çalıştığını gördükten hemen sonra dosyayı silin: sudo rm /var/www/ornek/info.php. Bu sayfa sunucunuzun ayrıntılarını herkese gösterir.
Uygulama için veritabanı
sudo mariadb ile veritabanı kabuğunu açın ve her uygulama için ayrı bir veritabanı ile kullanıcı oluşturun. Güçlü parolayı kendiniz belirleyin:
CREATE DATABASE ornekdb CHARACTER SET utf8mb4;
CREATE USER 'ornekkullanici'@'localhost' IDENTIFIED BY 'guclu-bir-parola';
GRANT ALL ON ornekdb.* TO 'ornekkullanici'@'localhost';
WordPress kurulum ekranına bu üç değeri (veritabanı, kullanıcı, parola) yazarsınız. WordPress'te güzel bağlantıların çalışması için Nginx satırındaki =404 ifadesini /index.php?$args ile değiştirin.
LAMP için fark
Apache'li yığın için paketleri şöyle kurarsınız:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Siteyi /etc/apache2/sites-available altında tanımlayıp sudo a2ensite ornek ile açarsınız. Güzel bağlantılar için sudo a2enmod rewrite çalıştırın ve Apache'yi sudo systemctl restart apache2 ile yeniden başlatın. .htaccess dosyalarının işlemesi için sitenin klasörüne AllowOverride All yazmanız gerekir. Apache'yi PHP-FPM ile de çalıştırabilirsiniz, bu, olay tabanlı event modeliyle uyumludur. Veritabanı adımları LEMP'tekiyle aynıdır.
Kurulumdan sonra
- HTTPS sertifikası ekleyin. Let's Encrypt ücretsizdir ve Certbot hem Nginx hem Apache ile çalışır.
- Web sunucusunun yazması gereken klasörlerin sahibini ayarlayın. Ubuntu ve Debian'da web sunucusu
www-datakullanıcısıyla çalışır:sudo chown -R www-data:www-data /var/www/ornek. - Güncellemeleri
sudo apt update && sudo apt upgradeile düzenli kurun. Kurulumdan sonra işletim sistemi ve yazılım güncellemeleri size aittir. - Veritabanını
mariadb-dumpile ayrıca yedekleyin. Sunucunun günlük yedeği fiyata dahildir, yine de önemli verilerin ek bir kopyasını kendiniz saklayın.
Yığını hazır istiyorsanız Seturack'ta LAMP ya da LEMP seçeneğiyle sipariş verin, kendiliğinden kurulur. Yalnız WordPress istiyorsanız WordPress VPS seçeneği yeterlidir: kurulum yaklaşık 4-5 dakika sürer, adres ve şifre panelde görünür.
Yorumlar0
Henüz Yorum Yok
İlk düşüncenizi paylaşan siz olun.
Yorum bırakmak için lütfen giriş yapın veya kaydolun.