WordPress’i LEMP Yığını ile Ubuntu 22.04 Üzerine Kurulum Rehberi
Günümüz web dünyasında, dinamik ve güçlü web siteleri oluşturmak için WordPress en popüler içerik yönetim sistemlerinden (CMS) biridir. Milyonlarca web sitesi, blog ve e-ticaret platformu WordPress altyapısını kullanmaktadır. WordPress’in performansı, esnekliği ve geniş eklenti/tema ekosistemi, onu hem bireysel kullanıcılar hem de büyük işletmeler için cazip bir seçenek haline getirmektedir. Bu makalede, WordPress’i yüksek performanslı bir web sunucusu yığını olan LEMP (Linux, Nginx, MariaDB ve PHP) ile Ubuntu 22.04 LTS işletim sistemi üzerine nasıl kuracağınızı adım adım detaylı bir şekilde anlatacağız.
LEMP yığını, geleneksel LAMP (Linux, Apache, MySQL, PHP) yığınına kıyasla daha verimli kaynak kullanımı ve daha yüksek performans sunmasıyla bilinir. Özellikle yüksek trafikli web siteleri için Nginx, hafif yapısı ve olay tabanlı mimarisi sayesinde Apache’ye göre daha iyi bir tercih olabilir. MariaDB, MySQL’in topluluk tarafından geliştirilen, uyumlu ve performanslı bir alternatifidir. PHP ise WordPress’in temelini oluşturan sunucu tarafı betik dilidir. Bu rehber, Ubuntu 22.04 sunucunuzda LEMP yığını kurarak WordPress’i hızlı ve güvenli bir şekilde çalıştırmanıza yardımcı olacaktır.
Ön Gereksinimler
Bu rehbere başlamadan önce aşağıdaki maddeleri kontrol etmeniz ve hazırlamanız gerekmektedir:
* Ubuntu 22.04 Sunucusu: Temiz bir Ubuntu 22.04 LTS (Jammy Jellyfish) kurulumuna sahip bir sunucuya ihtiyacınız var. Sanal bir makine, bulut sunucusu veya fiziksel bir makine olabilir.
* Sudo Yetkileri: Sunucuda sudo ayrıcalıklarına sahip bir kullanıcı hesabınız olmalıdır. Root kullanıcı olarak doğrudan işlem yapmak yerine, güvenlik açısından sudo kullanılması önerilir.
* Temel Linux Bilgisi: Komut satırı (CLI) kullanımı ve temel Linux komutları hakkında bilgi sahibi olmanız kurulum sürecini kolaylaştıracaktır.
* Alan Adı (Opsiyonel ama Önerilir): Eğer bir alan adı kullanacaksanız, DNS kayıtlarınızın sunucunuzun IP adresine işaret ettiğinden emin olun. Bu, Nginx yapılandırmasını daha gerçekçi bir senaryoda test etmenizi sağlar. Alan adınız yoksa, sunucunuzun IP adresi üzerinden de kurulumu tamamlayabilirsiniz.
Sistem Güncellemesi
Kuruluma başlamadan önce, Ubuntu sunucunuzdaki paket listesini güncellemeli ve mevcut paketleri en son sürümlerine yükseltmelisiniz. Bu, olası güvenlik açıklarını kapatır ve en güncel yazılım sürümlerini kullanmanızı sağlar.
Komut satırını açın ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
sudo apt update komutu, yerel paket indeksini güncelleyerek depolardaki yeni paket bilgilerini alır. sudo apt upgrade -y komutu ise, indirilen paket bilgilerine göre mevcut tüm paketleri günceller. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar.
Nginx Kurulumu
Nginx (Engine-X), yüksek performanslı, hafif ve ölçeklenebilir bir web sunucusu ve ters proxy sunucusudur. WordPress için dinamik içerikleri PHP-FPM aracılığıyla sunarken, statik içerikleri (CSS, JS, resimler) doğrudan ve hızlı bir şekilde sunar.
Nginx’i kurmak için aşağıdaki komutu kullanın:
sudo apt install nginx -y
Kurulum tamamlandıktan sonra Nginx servisi otomatik olarak başlayacaktır. Servisin çalıştığını ve sistem başlangıcında etkinleştirildiğini doğrulamak için aşağıdaki komutları kullanabilirsiniz:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
sudo systemctl status nginx komutu, Nginx servisinin durumunu gösterecektir. Çıktıda active (running) ibaresini görmeniz gerekmektedir.
Eğer sunucunuzda UFW (Uncomplicated Firewall) etkinse, Nginx’in web trafiğini alabilmesi için güvenlik duvarı kurallarını ayarlamanız gerekmektedir.
sudo ufw allow 'Nginx HTTP'
sudo ufw status
sudo ufw allow 'Nginx HTTP' komutu, Nginx’in HTTP (80 numaralı port) trafiğine izin verir. Eğer HTTPS kullanacaksanız, sudo ufw allow 'Nginx HTTPS' komutunu da çalıştırmanız gerekebilir. sudo ufw status komutu, güvenlik duvarı kurallarınızı listeler.
Artık bir web tarayıcısı açıp sunucunuzun IP adresini (veya alan adınızı) girerek Nginx’in varsayılan karşılama sayfasını görmelisiniz. Bu, Nginx’in başarıyla kurulduğunu ve çalıştığını gösterir.
MariaDB Kurulumu ve Yapılandırması
MariaDB, WordPress’in tüm içeriklerini, kullanıcı bilgilerini ve ayarlarını depolamak için kullanacağı ilişkisel veritabanı yönetim sistemidir. MySQL’in açık kaynaklı bir çatalı olup, performans ve özellik açısından oldukça benzerdir.
MariaDB sunucusunu kurmak için aşağıdaki komutu çalıştırın:
sudo apt install mariadb-server -y
Kurulum tamamlandıktan sonra MariaDB servisi otomatik olarak başlayacaktır. Servisin çalıştığını ve sistem başlangıcında etkinleştirildiğini doğrulamak için:
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
MariaDB kurulumunun güvenliğini sağlamak için mysql_secure_installation betiğini çalıştırmanız şiddetle tavsiye edilir. Bu betik, kök parolasını ayarlamanıza, anonim kullanıcıları kaldırmanıza, uzaktan kök girişi yasaklamanıza ve test veritabanını silmenize olanak tanır.
sudo mysql_secure_installation
Betik size bir dizi soru soracaktır:
1. Enter current password for root (enter for none): İlk kurulumda root parolası olmadığı için doğrudan Enter tuşuna basın.
2. Set root password? [Y/n] Y yazıp Enter tuşuna basarak yeni bir root parolası belirleyin. Güçlü bir parola seçtiğinizden emin olun.
3. Remove anonymous users? [Y/n] Y yazıp Enter tuşuna basın. Bu, anonim kullanıcıların veritabanına erişimini engeller.
4. Disallow root login remotely? [Y/n] Y yazıp Enter tuşuna basın. Bu, root kullanıcısının sadece localhost üzerinden bağlanabilmesini sağlar ve uzaktan erişimden kaynaklanabilecek güvenlik risklerini azaltır.
5. Remove test database and access to it? [Y/n] Y yazıp Enter tuşuna basın. Test veritabanı gereksizdir ve kaldırılması güvenlik açısından faydalıdır.
6. Reload privilege tables now? [Y/n] Y yazıp Enter tuşuna basın. Bu, yaptığınız değişikliklerin hemen etkili olmasını sağlar.
WordPress İçin Veritabanı ve Kullanıcı Oluşturma
WordPress’in çalışabilmesi için özel bir veritabanına ve bu veritabanına erişim yetkisi olan bir kullanıcıya ihtiyacı vardır. Şimdi bu adımları gerçekleştirelim.
MariaDB kabuğuna root kullanıcısı olarak giriş yapın:
sudo mysql
Aşağıdaki SQL komutlarını sırayla çalıştırarak WordPress için bir veritabanı ve kullanıcı oluşturun. wordpress_db, wordpress_user ve YOUR_PASSWORD kısımlarını kendi istediğiniz değerlerle değiştirin. Güçlü bir parola kullandığınızdan emin olun.
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
* CREATE DATABASE wordpress_db ...: wordpress_db adında yeni bir veritabanı oluşturur ve karakter setini UTF-8 olarak ayarlar.
* CREATE USER 'wordpress_user'...: localhost üzerinden erişebilecek wordpress_user adında yeni bir kullanıcı oluşturur ve parolasını belirler.
GRANT ALL PRIVILEGES ON wordpress_db. TO 'wordpress_user'...: wordpress_user‘a wordpress_db veritabanı üzerindeki tüm ayrıcalıkları verir.
* FLUSH PRIVILEGES;: Ayrıcalık tablolarını yenileyerek değişikliklerin hemen etkili olmasını sağlar.
* EXIT;: MariaDB kabuğundan çıkar.
PHP Kurulumu ve Yapılandırması
WordPress, PHP ile yazılmıştır ve çalışmak için bir PHP yorumlayıcısına ihtiyaç duyar. LEMP yığınında, PHP-FPM (FastCGI Process Manager) kullanılır. PHP-FPM, PHP betiklerini işlemek için ayrı bir süreç yöneticisi olarak çalışır ve Nginx ile FastCGI protokolü üzerinden iletişim kurar. Bu sayede Nginx, statik dosyaları doğrudan sunarken, dinamik PHP isteklerini PHP-FPM’ye yönlendirir.
Ubuntu 22.04 varsayılan olarak PHP 8.1 sürümünü sunar. WordPress’in sorunsuz çalışması için gerekli olan PHP-FPM ve çeşitli PHP uzantılarını kuralım:
sudo apt install php-fpm php-mysql php-common php-cli php-gd php-curl php-mbstring php-xml php-xmlrpc php-zip php-soap php-intl -y
Bu komut, PHP 8.1 FPM’yi ve WordPress’in ihtiyaç duyduğu yaygın uzantıları kurar:
* php-fpm: PHP FastCGI Süreç Yöneticisi.
* php-mysql: PHP’nin MariaDB/MySQL veritabanlarıyla iletişim kurmasını sağlar.
* php-common: PHP için ortak dosyalar.
* php-cli: Komut satırı arayüzünden PHP betiklerini çalıştırmak için.
* php-gd: Resim işleme (thumbnail oluşturma, boyutlandırma vb.) için gereklidir.
* php-curl: Uzak sunucularla iletişim kurmak için (API entegrasyonları, güncellemeler vb.).
* php-mbstring: Çok baytlı karakter dizileriyle çalışmak için (farklı diller için).
* php-xml, php-xmlrpc: XML işleme ve XML-RPC API desteği için.
* php-zip: Zip dosyalarını sıkıştırmak ve açmak için.
* php-soap: SOAP tabanlı web servisleri için.
* php-intl: Uluslararasılaştırma ve yerelleştirme (çok dilli siteler) için.
Kurulum tamamlandıktan sonra PHP-FPM servisinin çalıştığını doğrulayın:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
sudo systemctl status php8.1-fpm
PHP Yapılandırması (php.ini)
WordPress’in performansını ve dosya yükleme limitlerini artırmak için php.ini dosyasında bazı değişiklikler yapmanız önerilir.
PHP-FPM’nin php.ini dosyasını düzenlemek için favori metin düzenleyicinizi kullanın (örneğin, nano):
sudo nano /etc/php/8.1/fpm/php.ini
Dosyayı açtıktan sonra aşağıdaki değerleri bulun ve önerilen şekilde değiştirin (eğer farklı değerler varsa). Bu değerler, WordPress’in büyük medya dosyalarını yüklemesine ve karmaşık işlemleri tamamlamasına olanak tanır.
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
date.timezone = Europe/Istanbul ; Kendi zaman diliminizi ayarlayın, örneğin Asia/Istanbul veya America/New_York
Değişiklikleri kaydettikten sonra (Nano’da Ctrl+O, Enter, Ctrl+X), PHP-FPM servisini yeniden başlatarak değişikliklerin etkili olmasını sağlayın:
sudo systemctl restart php8.1-fpm
WordPress Kurulumu
Artık LEMP yığını hazır olduğuna göre, WordPress dosyalarını sunucunuza indirebilir ve uygun dizine yerleştirebiliriz.
1. WordPress Dosyalarını İndirme:
Önce /tmp dizinine gidin ve WordPress’in en son sürümünü indirin:
cd /tmp
wget https://wordpress.org/latest.tar.gz
2. Dosyaları Çıkarma:
İndirdiğiniz sıkıştırılmış dosyayı açın:
tar -xvzf latest.tar.gz
Bu işlem, /tmp dizini altında wordpress adında yeni bir dizin oluşturacaktır.
3. WordPress Dosyalarını Web Kök Dizinine Taşıma:
WordPress dosyalarını Nginx’in sunacağı uygun bir dizine taşıyın. Genellikle /var/www/html/ altına kendi alan adınızla bir dizin oluşturmak iyi bir pratiktir. your_domain.com yerine kendi alan adınızı veya istediğiniz bir dizin adını kullanın (örneğin, wordpress).
sudo mkdir -p /var/www/html/your_domain.com
sudo mv wordpress/* /var/www/html/your_domain.com/
4. Dosya İzinlerini Ayarlama:
WordPress’in düzgün çalışabilmesi, eklentileri ve temaları yükleyebilmesi için doğru dosya ve dizin izinlerine sahip olması gerekir. Web sunucusu kullanıcısı (www-data Nginx için) WordPress dosyalarına sahip olmalı ve uygun okuma/yazma izinlerine sahip olmalıdır.
sudo chown -R www-data:www-data /var/www/html/your_domain.com
sudo find /var/www/html/your_domain.com -type d -exec chmod 755 {} \;
sudo find /var/www/html/your_domain.com -type f -exec chmod 644 {} \;
* sudo chown -R www-data:www-data /var/www/html/your_domain.com: /var/www/html/your_domain.com dizininin ve içindeki tüm dosyaların/dizinlerin sahipliğini www-data kullanıcısına ve www-data grubuna atar.
* sudo find ... -type d -exec chmod 755 {} \;: Tüm dizinler için 755 izinlerini (sahip için tam, grup ve diğerleri için okuma ve çalıştırma) ayarlar.
* sudo find ... -type f -exec chmod 644 {} \;: Tüm dosyalar için 644 izinlerini (sahip için okuma ve yazma, grup ve diğerleri için sadece okuma) ayarlar.
Nginx Sanal Host Yapılandırması
Nginx’in WordPress dosyalarını sunabilmesi için bir sanal host (server block) yapılandırması oluşturmanız gerekmektedir. Bu yapılandırma, Nginx’e gelen istekleri hangi dizine yönlendireceğini ve PHP dosyalarını nasıl işleyeceğini söyler.
1. Nginx Yapılandırma Dosyası Oluşturma:
Yeni bir Nginx sanal host dosyası oluşturun. your_domain.com yerine kendi alan adınızı kullanın:
sudo nano /etc/nginx/sites-available/your_domain.com.conf
Dosyanın içine aşağıdaki yapılandırmayı yapıştırın. your_domain.com kısımlarını kendi alan adınızla değiştirmeyi unutmayın.
server {
listen 80;
listen [::]:80;
root /var/www/html/your_domain.com;
index index.php index.html index.htm;
server_name your_domain.com www.your_domain.com; # Alan adınızı buraya yazın
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # PHP-FPM sürümünüze dikkat edin (örn: php8.1-fpm)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Güvenlik için bazı WordPress dosyalarına erişimi engelle
location ~ /\.ht {
deny all;
}
location ~ /wp-config.php {
deny all;
}
location ~* /xmlrpc.php {
deny all;
}
# favicon.ico için hızlı erişim
location = /favicon.ico {
log_not_found off;
access_log off;
}
# robots.txt için hızlı erişim
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Statik dosyalar için önbellekleme
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Bu yapılandırma bloğu şunları yapar:
* listen 80;: Nginx’in HTTP (80) portundan gelen istekleri dinlemesini sağlar.
* root /var/www/html/your_domain.com;: Web sitesinin kök dizinini belirtir.
* index index.php ...;: Dizin isteklerinde önce hangi dosyaların aranacağını belirler.
* server_name your_domain.com www.your_domain.com;: Bu sanal host’un hangi alan adları için geçerli olduğunu tanımlar.
* location / { ... }: Köke gelen istekleri işler. try_files yönergesi, dosya veya dizin varsa onu sunar, yoksa isteği index.php‘ye yönlendirir (WordPress’in permalink yapısı için gereklidir).
* location ~ \.php$ { ... }: .php uzantılı dosya isteklerini PHP-FPM’ye FastCGI protokolü üzerinden iletir. fastcgi_pass yönergesi, PHP-FPM’nin soket dosyasının yolunu belirtir.
* location ~ /\.ht { deny all; }: .htaccess gibi gizli dosyalara doğrudan erişimi engeller.
* Diğer location blokları, wp-config.php, xmlrpc.php gibi hassas WordPress dosyalarına erişimi engellemek ve statik dosyaları önbelleğe almak gibi güvenlik ve performans iyileştirmeleri sağlar.
2. Sanal Host’u Etkinleştirme:
Oluşturduğunuz yapılandırma dosyasını sites-enabled dizinine sembolik bir bağlantı (symlink) oluşturarak etkinleştirin:
sudo ln -s /etc/nginx/sites-available/your_domain.com.conf /etc/nginx/sites-enabled/
3. Varsayılan Nginx Yapılandırmasını Devre Dışı Bırakma (İsteğe Bağlı):
Eğer sadece bu alan adını kullanacaksanız, Nginx’in varsayılan yapılandırmasını devre dışı bırakmak iyi bir fikirdir:
sudo rm /etc/nginx/sites-enabled/default
4. Nginx Yapılandırmasını Test Etme ve Yeniden Başlatma:
Nginx yapılandırma dosyasında herhangi bir hata olup olmadığını kontrol etmek için:
sudo nginx -t
Eğer çıktıda syntax is ok ve test is successful mesajlarını görüyorsanız, Nginx servisini yeniden başlatabilirsiniz:
sudo systemctl restart nginx
WordPress Yapılandırması
WordPress dosyaları sunucuda ve Nginx yapılandırması hazır. Şimdi WordPress’in veritabanı bağlantı bilgilerini içeren wp-config.php dosyasını yapılandırmamız gerekiyor.
1. wp-config-sample.php Kopyalama:
WordPress’in web kök dizinine gidin ve örnek yapılandırma dosyasını kopyalayın:
cd /var/www/html/your_domain.com
sudo cp wp-config-sample.php wp-config.php
2. wp-config.php Düzenleme:
Yeni oluşturduğunuz wp-config.php dosyasını açın:
sudo nano wp-config.php
Dosyada aşağıdaki bölümleri bulun ve MariaDB kurulumu sırasında oluşturduğunuz veritabanı adı, kullanıcı adı ve parola ile değiştirin:
// MySQL settings - You can get this info from your web host //
/ The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' ); // Oluşturduğunuz veritabanı adı
/ MySQL database username */
define( 'DB_USER', 'wordpress_user' ); // Oluşturduğunuz veritabanı kullanıcı adı
/ MySQL database password */
define( 'DB_PASSWORD', 'YOUR_PASSWORD' ); // Oluşturduğunuz veritabanı parolası
/ MySQL hostname */
define( 'DB_HOST', 'localhost' );
/ Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/ The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
Güvenlik Anahtarları (Salts) Ekleme:
wp-config.php dosyasında, WordPress’in çerezleri ve şifreleme için kullandığı benzersiz güvenlik anahtarları (salts) bölümü bulunur. Bu anahtarları güvenlik için rastgele oluşturulmuş değerlerle değiştirmeniz şiddetle önerilir.
https://api.wordpress.org/secret-key/1.1/salt/ adresine giderek otomatik olarak oluşturulmuş anahtarları kopyalayabilir ve wp-config.php dosyasındaki ilgili satırları bu değerlerle değiştirebilirsiniz:
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Yukarıdaki satırları kopyaladığınız benzersiz anahtarlarla değiştirin.
Değişiklikleri kaydedin ve dosyayı kapatın.
Tarayıcı Üzerinden WordPress Kurulumu
Tüm arka plan kurulumları tamamlandığına göre, artık web tarayıcınız üzerinden WordPress kurulumunu tamamlayabilirsiniz.
Web tarayıcınızı açın ve sunucunuzun alan adına veya IP adresine gidin (örneğin, http://your_domain.com).
WordPress sizi kurulum sihirbazına yönlendirecektir:
1. Dil Seçimi: İlk olarak, WordPress’in kurulum dilini seçmeniz istenecektir. Tercih ettiğiniz dili seçip “Devam Et” butonuna tıklayın.
2. Hoş Geldiniz Sayfası: Veritabanı bilgilerini zaten wp-config.php dosyasında girdiğiniz için bu adımı geçeceksiniz. “Hadi Başlayalım!” veya “Continue” gibi bir düğme görebilirsiniz, tıklayın.
3. Site Bilgileri: Bu adımda aşağıdaki bilgileri girmeniz istenecektir:
* Site Başlığı: Web sitenizin adı (sonradan değiştirebilirsiniz).
* Kullanıcı Adı: WordPress yönetici paneline giriş yapmak için kullanacağınız kullanıcı adı. admin gibi yaygın adlardan kaçınarak daha güvenli bir kullanıcı adı seçin.
* Parola: Yönetici hesabınız için güçlü bir parola oluşturun.
* E-posta Adresiniz: Yönetici e-posta adresiniz. Parola sıfırlama ve bildirimler için kullanılacaktır.
* Arama motorlarının bu siteyi indekslemesini engelle: Eğer sitenizi henüz herkese açık hale getirmek istemiyorsanız bu kutucuğu işaretleyebilirsiniz. Daha sonra WordPress yönetici panelinden bu ayarı değiştirebilirsiniz.
4. WordPress’i Kur: Tüm bilgileri girdikten sonra “WordPress’i Kur” butonuna tıklayın.
Kurulum tamamlandığında, WordPress size başarılı bir kurulum mesajı gösterecek ve yönetici paneline giriş yapmanız için bir bağlantı sunacaktır. Yönetici kullanıcı adınız ve parolanızla giriş yaparak sitenizi yapılandırmaya başlayabilirsiniz.
Ek Güvenlik ve Optimizasyon Önerileri
WordPress’i LEMP yığını üzerinde kurduktan sonra, sitenizin performansını ve güvenliğini daha da artırmak için bazı ek adımlar atmanız önerilir:
* SSL/TLS Kurulumu (HTTPS): Web sitenizin güvenliğini artırmak ve SEO sıralamanızı iyileştirmek için Let’s Encrypt gibi ücretsiz bir sertifika yetkilisi kullanarak SSL/TLS kurun. Certbot aracı bu işlemi otomatikleştirebilir. Bu, tüm trafiğin şifreli olmasını sağlar.
* Nginx Güvenlik Başlıkları: Nginx yapılandırmanıza X-Frame-Options, X-Content-Type-Options, Content-Security-Policy gibi güvenlik başlıkları ekleyerek çeşitli web saldırılarına karşı koruma sağlayabilirsiniz.
* WordPress Güvenlik Eklentileri: Wordfence, Sucuri Security gibi popüler güvenlik eklentilerini kurarak sitenizi kötü amaçlı yazılımlara, kaba kuvvet saldırılarına ve diğer tehditlere karşı koruyabilirsiniz.
* Yedekleme Stratejileri: Düzenli olarak sitenizin veritabanını ve dosyalarını yedeklemek, olası veri kayıplarına karşı en iyi sigortadır. UpdraftPlus gibi eklentiler veya sunucu düzeyinde yedekleme çözümleri kullanabilirsiniz.
* Nginx FastCGI Cache: Yüksek trafikli siteler için Nginx’in FastCGI önbellekleme özelliğini etkinleştirerek PHP-FPM’nin her istekte betiği yeniden işlemesini engelleyebilir ve performansı önemli ölçüde artırabilirsiniz.
* PHP Opcache: PHP’nin yerleşik Opcache modülünü etkinleştirmek, PHP betiklerinin önbelleğe alınmış derlenmiş kodunu kullanarak sayfa yükleme sürelerini kısaltır. Genellikle php.ini dosyasında opcache.enable=1 ayarını yapmak yeterlidir.
* WordPress Performans Eklentileri: WP Super Cache, LiteSpeed Cache (eğer LiteSpeed kullanıyorsanız), WP Rocket gibi önbellekleme eklentileri kullanarak WordPress’in ön yüz performansını artırabilirsiniz.
* Dizin İzinlerini Kontrol Etme: Kurulumdan sonra, wp-content dizini içindeki uploads klasörünün www-data kullanıcısı tarafından yazılabilir olduğundan emin olun. Diğer tüm dosyalar ve dizinler için güvenlik açısından daha kısıtlı izinler (örneğin, 644 ve 755) önerilir.
* XML-RPC Kapatma: Eğer XML-RPC’yi kullanmıyorsanız (mobil uygulama veya Jetpack gibi eklentiler hariç), güvenlik risklerini azaltmak için Nginx yapılandırmasında veya bir güvenlik eklentisi aracılığıyla kapatmayı düşünebilirsiniz.
Sonuç
Bu kapsamlı rehberde, WordPress’i Ubuntu 22.04 sunucusu üzerine LEMP (Linux, Nginx, MariaDB, PHP-FPM) yığını ile nasıl kuracağınızı adım adım öğrendiniz. Nginx’in performansı, MariaDB’nin sağlamlığı ve PHP-FPM’nin verimliliği sayesinde, web siteniz yüksek performanslı ve güvenli bir altyapıya sahip olacaktır. Kurulum adımlarını dikkatlice takip ederek, WordPress sitenizi başarıyla yayına alabilir ve web dünyasına adım atabilirsiniz. Unutmayın, herhangi bir web uygulamasında olduğu gibi, düzenli bakım, güncelleme ve güvenlik önlemleri sitenizin uzun ömürlü ve sorunsuz çalışması için kritik öneme sahiptir.
