Ubuntu Sunucu Nasıl Kurulur? - Wolinka

Ubuntu Sunucu Nasıl Kurulur?


Ubuntu, dünya genelinde yaygın olarak kullanılan en popüler Linux dağıtımlarından biridir. Kullanım kolaylığı, geniş topluluk desteği ve güncel yazılım paketleri sayesinde özellikle sunucu kurulumlarında sıkça tercih edilir. Bu rehberde, Hetzner Cloud üzerinde sıfırdan bir Ubuntu sunucusunun nasıl kurulacağını, ilk aşamada alınması gereken temel güvenlik önlemlerini ve WordPress kurulumu için yapılması gereken adımları ayrıntılı şekilde ele alacağız.

Not: Bu içerik özellikle bulut sunucu (VPS) kiralayan kullanıcılar, geliştiriciler ve sistem yöneticileri için hazırlanmıştır.

Hetzner Cloud’da Ubuntu Sunucu Oluşturma

  1. Cloud Console’a girin: console.hetzner.cloud
  2. Yeni bir proje oluşturun: Örneğin wolinka-dev-server
  3. Create Server butonuna tıkla:
    • Location: Falkenstein (Türkiye’ye yakın sunucular daha düşük ping verir.)
    • Image: Ubuntu 24.04
    • Type: CX22 (2 vCPU, 4GB RAM – başlangıç için ideal)
    • SSH Key: Bir sonraki adımda anlatacağımız public keyi ekleyeceğiz.
    • Name: wolinka-dev-01 (opsiyonel, dilerseniz aynı kalabilir.)

Not: “Backups” opsiyonel ama öneririm (ekstra ücretlidir).

Dikkat Edilmesi Gerekenler:

  • Lokasyon (Türkiye’ye yakın sunucular daha düşük ping verir)
  • CPU, RAM, Disk kapasitesi
  • IPv4 desteği
  • SSH bağlantısı

Ubuntu Sunucuya SSH ile Bağlantı Kurma

SSH Anahtarı Oluşturma

(Zaten oluşturduysan bu adımı atla)

Ubuntu, sunucuya güvenli bağlantı kurmak için SSH anahtarı kullanılır. Eğer daha önce SSH anahtarı oluşturmadıysan, MacOS cihazlarda bu işlemi nasıl yapacağını detaylı şekilde anlattığımız şu rehbere göz atabilirsin:

🔗 MacOS Üzerinde SSH Anahtarı Oluşturma Rehberi

Bu rehberde:

  • SSH anahtarları nasıl oluşturulur?
  • Hangi dizine kaydedilir?
  • GitHub, sunucular ve terminalde nasıl kullanılır?

adım adım açıklanmıştır.

SSH Anahtarını Hetzner Paneline Ekleme

Oluşturduğun id_rsa.pub (public key) dosyasını Hetzner Cloud panelindeki SSH bölümüne yapıştır ve yeni sunucunu bu anahtarla oluştur.

SSH ile Bağlanma

Terminal üzerinden bağlanmak için:

ssh root@sunucu-ip-adresi

Bu adımda parola gerekmez, çünkü bağlantı anahtar doğrulamasıyla yapılır.

Sunucuyu Güncelle

apt update && apt upgrade -y

Ubuntu Sunucu için Temel Güvenlik Önlemleri

Sunucuyu kurduktan hemen sonra alacağımız bazı temel güvenlik önlemleri, sunucumuzu kötü niyetli erişimlere karşı korunmasını sağlar. Bu adımlar WordPress kurulumundan bile önce yapılmalıdır. Çünkü internetten erişilebilir bir sunucu, dakikalar içinde saldırı botlarının hedefi olabilir.

Yeni Bir Kullanıcı Oluşturun (Root Yetkisi Vererek)

Root kullanıcısı ile sürekli işlem yapmak hem risklidir hem de önerilmez. Bunun yerine sudo yetkisine sahip yeni bir kullanıcı oluşturmalıyız. Bu kullanıcı artık sudo komutlarıyla yönetici yetkisi kazanabilir.

adduser kullanici_adi
usermod -aG sudo kullanici_adi

SSH Anahtarınızı Yeni Kullanıcıya Ekleyin

Yeni kullanıcı ile parola yerine SSH ile güvenli bağlantı kurmak için, yerel makinenizdeki SSH public key’i bu kullanıcının yetkili anahtar listesine ekleyin.

  • Yerel bilgisayarınızda mevcut bir SSH anahtarınız yoksa oluşturun:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/yeni_kullanici_key
  • Public key’i sunucuya kopyalayın (ya da elle yapacaksanız):
mkdir -p /home/kullanici_adi/.ssh
nano /home/kullanici_adi/.ssh/authorized_keys

Buraya public key içeriğini yapıştırın.

  • Dosya izinlerini düzeltin:
chmod 700 /home/kullanici_adi/.ssh
chmod 600 /home/kullanici_adi/.ssh/authorized_keys
chown -R kullanici_adi:kullanici_adi /home/kullanici_adi/.ssh
  • Yeni Kullanıcıyla SSH Bağlantısını Test Edin
ssh -i ~/.ssh/yeni_kullanici_key kullanici_adi@sunucu_ip

SSH Ayarlarını Güçlendirin

Sunucuya root ile doğrudan bağlantı, saldırganların en çok denediği yollardan biridir. Bu erişimi engellemek, ilk savunma hattıdır.

SSH yapılandırmasını düzenleyerek aşağıdaki adımları uygulayacağız:

a. sshd_config Dosyasını Yetkili Olarak Açın

Bir sunucu kurulumunda root erişimini açık bırakmak, tüm kapıları kilitleyip anahtarı dışarıda bırakmaya benzer. SSH yapılandırmasını düzenleyerek root hesabının doğrudan oturum açmasını engelleyin.

sudo nano /etc/ssh/sshd_config

💡 Eğer sudo olmadan açarsanız şu hatayı alırsınız:
[ File '/etc/ssh/sshd_config' is unwritable ]
Bu durumda dosya salt okunur açılır ve değişiklikler kaydedilemez. Çözüm: sudo ile açmaktır.

b. Root Girişini Kapatın ve Parola ile Girişleri Engelleyin

Dosyada şu satırları bulun ve aşağıdaki gibi düzenleyin (ya da başındaki # işaretini kaldırıp düzenleyin):

PermitRootLogin no
PasswordAuthentication no

Açıklamaları:

  • PermitRootLogin no: Root kullanıcısı SSH ile giriş yapamaz.
  • PasswordAuthentication no: Parola ile giriş tamamen kapatılır. Sadece SSH anahtarıyla giriş yapılabilir.

🔐 Uyarı: Bu değişiklikleri yapmadan önce, yeni oluşturduğun kullanıcıyla SSH anahtarı üzerinden başarıyla bağlanabildiğinden emin olmalısın. Aksi takdirde sunucuya erişimini kaybedebilirsin.

c. SSH Servisini Yeniden Başlatın

Değişikliklerin aktif olması için SSH servisini yeniden başlatın:

sudo systemctl restart ssh

Herhangi bir hata olmadığını test etmek isterseniz:

sudo sshd -t

Bu komut sessizce tamamlanıyorsa yapılandırma doğrudur.

UFW Güvenlik Duvarını Aktif Edin

UFW (Uncomplicated Firewall), Ubuntu sunucularda gelen ve giden ağ trafiğini kontrol etmek için kullanılan basit ama etkili bir güvenlik duvarı aracıdır. Özellikle dışarıdan sadece belirli portlara (örneğin SSH, HTTP, HTTPS) izin vererek sunucuyu gereksiz açık kapılardan korur.

Sunucunuzda UFW yüklü değilse önce bunu yükleyin:

sudo apt install ufw

Ardından aşağıdaki adımlarla güvenlik duvarını yapılandırın:

a. SSH için izin verin (aksi takdirde kendinizi kilitlersiniz)

sudo ufw allow OpenSSH

Bu komut, SSH (port 22) üzerinden gelen bağlantılara izin verir. Bu olmadan ufw enable dediğinizde kendi bağlantınızı da kesebilirsiniz.

b. Güvenlik duvarını etkinleştirin

sudo ufw enable

Bu komutla UFW aktif hale gelir. Artık sadece izin verdiğiniz servisler dış dünyadan erişilebilir olur.

c. Durumu kontrol edin

sudo ufw status verbose

Bu komut, hangi kuralların etkin olduğunu detaylı bir şekilde listeler.

Web Trafiğine (HTTP ve HTTPS) İzin Verin

UFW etkinleştirildiğinde, sadece izin verilen bağlantı türlerine dış dünyadan erişim sağlanabilir. SSH erişimine izin verdikten sonra, web sitenizin düzgün çalışabilmesi için HTTP (port 80) ve HTTPS (port 443) bağlantılarına da izin vermeniz gerekir.

a. HTTP ve HTTPS trafiğini açmak için:

sudo ufw allow http
sudo ufw allow https

veya daha kısa haliyle:

sudo ufw allow 80
sudo ufw allow 443

Bu komutlar sayesinde ziyaretçiler web sitenize tarayıcı üzerinden erişebilir. Aksi takdirde, WordPress kurulu olsa bile site dış dünyaya kapalı olur.

b. Durumu tekrar kontrol edin:

sudo ufw status verbose

Beklenen çıktı şu şekilde olur:

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere

Artık SSH, HTTP ve HTTPS üzerinden güvenli ve erişilebilir bir yapı kurmuş olursunuz.

Fail2Ban ile Brute-Force Saldırılarını Engelleyin

Fail2Ban Nedir?

Fail2Ban, log dosyalarını izleyerek şüpheli davranışları (örneğin yanlış parola denemeleri) tespit eder ve geçici olarak IP adreslerini yasaklar. Özellikle SSH brute-force saldırılarını engellemek için kullanılır.

Kurulum

Ubuntu üzerinde Fail2Ban kurmak için terminalde aşağıdaki komutu girin:

sudo apt install fail2ban -y

Kurulum tamamlandıktan sonra servisi başlatın:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Varsayılan Ayarlar Yeterli mi?

Evet, çoğu durumda varsayılan /etc/fail2ban/jail.conf yeterlidir. Ancak istersen özel yapılandırma dosyasını düzenleyerek aşağıdaki gibi özelleştirebilirsin:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Aşağıdaki ayarları örnek olarak değiştirebilirsin:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
findtime = 600

Bu ayarlar:
– 10 dakika boyunca (600 saniye) 5 defa yanlış giriş yapan IP’yi
– 10 dakika boyunca engeller.

Fail2Ban Durumunu Görüntüle

SSH için Fail2Ban aktif mi diye kontrol etmek için:

sudo fail2ban-client status sshd

Örnek çıktı:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     4
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     1

Sonuç

Fail2Ban, UFW’nin yapamadığı şeyi yapar. Sunucuya ulaşan ama yanlış şifre deneyen botları aktif olarak analiz eder ve geçici olarak engeller. Bu da sistem kaynaklarının korunmasına ve giriş noktalarının daha güvenli hale gelmesine yardımcı olur.

🔐 Özellikle root girişini şifreyle kapattıysan bile, bu ekstra katman seni daha da güçlendirir.

Otomatik Güvenlik Güncellemelerini Etkinleştirin

Neden?

Sunucuların en büyük güvenlik açıkları, güncellenmeyen yazılımlardan kaynaklanır. Özellikle bilinen güvenlik zafiyetleri, yaması olmayan sistemlerde hala çalışabilir.

Otomatik güncellemeler, sistemin kritik güvenlik açıklarına karşı kendini düzenli olarak korur.

Nasıl Yapılır?

Aşağıdaki komutlar, otomatik güncellemeleri etkinleştirir:

sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Bu işlemden sonra Ubuntu, güvenlik yamalarını otomatik olarak arka planda indirip kurar.

(Opsiyonel) SSH Portunu Değiştirin

Botlar genellikle 22. portu hedef alır. SSH portunu değiştirerek bu taramaların büyük kısmını engelleyebilirsiniz:

nano /etc/ssh/sshd_config

Örneğin:

Port 2222

Yeni portu açmayı unutmayın:

ufw allow 2222/tcp
systemctl restart ssh

Şimdi Ne Oldu?

Artık sunucunuz yalnızca sizin tanımladığınız kullanıcıyla, güvenli bir bağlantı üzerinden erişilebilir durumda. Böylece temel güvenlik önlemlerini tamamlamış olduk.

LAMP Stack Kurulumu (Linux + Apache + MySQL + PHP)

LAMP Stack, WordPress gibi PHP tabanlı uygulamaların çalışması için gereken temel yazılımlardan oluşur:

  • L: Linux (Zaten Ubuntu kullanıyoruz)
  • A: Apache – Web sunucusu
  • M: MySQL / MariaDB – Veritabanı sunucusu
  • P: PHP – WordPress’in çalıştığı betik dili

Apache Web Sunucusunu Kurma

Apache, kullanıcıların tarayıcıdan yaptığı HTTP/HTTPS isteklerini karşılayan web sunucusudur.

sudo apt update
sudo apt install apache2 -y

Ardından Apache servisini başlatıp her açılışta çalışacak şekilde ayarlayalım:

sudo systemctl start apache2
sudo systemctl enable apache2

Test:

Tarayıcına şu adresi yaz: http://sunucu-ip-adresi

Apache’nin “It works!” sayfası geliyorsa kurulum başarılıdır.

MySQL Veritabanı Sunucusunu Kurun

WordPress tüm içerikleri (yazılar, kullanıcılar, ayarlar) bir veritabanında tutar. Bu yüzden MySQL ya da MariaDB gibi bir veritabanı sunucusuna ihtiyaç duyar.

sudo apt install mysql-server -y

Veritabanı servisini başlatın ve etkinleştirin:

sudo systemctl start mysql
sudo systemctl enable mysql

Güvenlik yapılandırmasını başlatın:

sudo mysql_secure_installation

Bu komut:

  • Root şifresi oluşturmanı ister.
  • Uzaktan root erişimini devre dışı bırakır.
  • Test veritabanlarını siler.
  • Güvenli varsayılan ayarları yapar.

PHP ve WordPress İçin Gerekli Eklentileri Kurun

PHP, WordPress’in çalışmasını sağlayan betik (script) dilidir. PHP’nin WordPress ile uyumlu sürümünü ve bazı temel eklentilerini kurmamız gerekir:

sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-xml php-mbstring php-zip php-bcmath -y

PHP Sürümünü Kontrol Edin:

php -v

PHP 8.1 ve üzeri önerilir. Ubuntu 22.04 ve 24.04 sürümleri varsayılan olarak bunu içerir.

Apache’yi PHP ile Yeniden Başlatın

Apache, yeni yüklenen PHP modüllerini algılaması için yeniden başlatılmalıdır:

sudo systemctl restart apache2

PHP Test Sayfası (İsteğe Bağlı)

PHP’nin düzgün çalıştığını test etmek için aşağıdaki komutla bir test dosyası oluşturun:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Sonra tarayıcıda şu adrese girin:

http://sunucu-ip/info.php

PHP sürümü ve yapılandırması görünüyorsa her şey yolunda demektir.

✅ Kurulumdan sonra bu dosyayı silin:

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

Apache Üzerinde .htaccess Aktifleştirme

WordPress ya da benzeri bir uygulamada URL yönlendirmeleri veya özel .htaccess kuralları çalışabilmesi için, Apache yapılandırmasında AllowOverride ayarının All olması gerekir. Özellikle mod_rewrite gibi URL yeniden yazma kuralları çalışmıyorsa aşağıdaki adımı uygulamamız gerekir.

AllowOverride Ayarını Aktif Hale Getirin

Apache’nin ana yapılandırma dosyasını açın:

sudo nano /etc/apache2/apache2.conf

Şu bloğu bulun:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AllowOverride None ifadesini AllowOverride All olarak değiştirin:

AllowOverride All

Bu ayar .htaccess dosyasının aktif olarak çalışmasını sağlar.

Değişikliği yaptıktan sonra Apache’yi yeniden başlatın:

sudo systemctl restart apache2

Artık .htaccess ile çalışan yönlendirme kuralları (örneğin WordPress kalıcı bağlantıları) etkin olacaktır.

Ubuntu Sunucusuna Alan Adı Tanımlama: Tek ve Çoklu Site Kurulumu

Hetzner Cloud üzerinde Ubuntu sunucunuzu hazırladık, güvenlik önlemlerini tamamladık ve LAMP (Linux, Apache, MySQL, PHP) yığınını kurduk. Şimdi web sitemizin internette görünür hale gelmesi için en kritik aşamalardan birine geçiyoruz: alan adınızı (domain) sunucumuza tanımlama.

Bu bölümde, bir alan adını sunucuya nasıl bağlayacağımızı ve aynı sunucuda birden fazla web sitesini nasıl barındırabileceğimizi adım adım anlatacağız.

Tek Alan Adı Tanımlama

Tek bir web sitesi kuracaksanız, Apache’de sanal ana bilgisayar (virtual host) adı verilen bir yapılandırma dosyası oluşturmanız gerekir. Bu dosya, Apache’ye hangi alan adı isteği geldiğinde hangi klasördeki dosyaları göstermesi gerektiğini söyler.

Adım 1: Alan Adınızı Sunucunuza Yönlendirin (DNS)

Öncelikle, alan adı yöneticinizin (GoDaddy, Namecheap gibi) paneline gidin ve sunucunuzun IP adresini alan adınızın DNS kayıtlarına ekleyin.

  • A kaydı oluşturarak, domainadi.com için sunucu IP adresinizi tanımlayın.
  • www ön ekiyle de erişilebilmesi için www için de bir A kaydı oluşturun.

DNS değişikliklerinin internete yayılması (propagation) birkaç dakika ile birkaç saat sürebilir.

Adım 2: Web Sitesi Dosyaları İçin Klasör Oluşturun

Alan adınız için özel bir klasör yapısı kurmak, hem düzeni sağlar hem de gelecekteki olası güvenlik sorunlarını azaltır.

sudo mkdir -p /var/www/domainadi.com/public_html

Ardından, bu klasörün sahipliğini sunucuda oluşturduğunuz kullanıcıya verin. Böylece dosya işlemleri için yönetici yetkisine ihtiyacınız kalmaz.

sudo chown -R kullanici_adi:kullanici_adi /var/www/domainadi.com/
sudo chmod -R 755 /var/www/domainadi.com/

Adım 3: Sanal Ana Bilgisayar Dosyasını Oluşturun

Apache’nin varsayılan yapılandırma dosyasını kopyalayarak yeni bir sanal ana bilgisayar dosyası oluşturun.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domainadi.com.conf

Şimdi bu dosyayı düzenleyerek alan adınıza özel ayarları tanımlayın:

sudo nano /etc/apache2/sites-available/domainadi.com.conf

Dosyanın içeriğini aşağıdaki gibi değiştirin:

<VirtualHost *:80>
    ServerAdmin admin@domainadi.com
    ServerName domainadi.com
    ServerAlias www.domainadi.com
    DocumentRoot /var/www/domainadi.com/public_html

    <Directory /var/www/domainadi.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/domainadi.com_error.log
    CustomLog ${APACHE_LOG_DIR}/domainadi.com_access.log combined
</VirtualHost>

ServerAdmin: Sitenizle ilgili sorunlarda iletişim kurulacak kişinin e-posta adresidir. Bu adres, sunucunun varsayılan hata sayfalarında (örneğin 404 veya 500 hatalarında) gösterilebilir. Opsiyoneldir.

ServerName: Ana alan adınızı belirtir.

ServerAlias: www ön eki ile yapılan istekleri de kabul etmesini sağlar.

DocumentRoot: Web sitenizin dosyalarının bulunduğu klasörü gösterir.

Adım 4: Sanal Ana Bilgisayarı Etkinleştirin

Oluşturduğunuz yapılandırma dosyasını a2ensite komutuyla etkinleştirin ve Apache servisini yeniden başlatın.

sudo a2ensite domainadi.com.conf
sudo systemctl restart apache2

Artık tarayıcıya domainadi.com yazdığınızda, sunucunuz /var/www/domainadi.com/public_html klasöründeki içeriği gösterecektir.

Birden Fazla Alan Adı Tanımlama (Çoklu Site Kurulumu)

Aynı sunucuda birden fazla web sitesi barındırmak istiyorsanız, her alan adı için yukarıdaki adımları tekrarlamanız yeterlidir. Bu sayede her sitenin kendi dosya dizini ve yapılandırması olur.

SSL Sertifikası Kurulumu (HTTPS’e Geçiş)

SSL (Secure Sockets Layer) sertifikası, sitemiz ile ziyaretçilerimiz arasında güvenli ve şifrelenmiş bir bağlantı kurar. Bu, hem veri güvenliği hem de SEO (arama motoru optimizasyonu) için kritik bir adımdır. Bu rehberde, ücretsiz ve otomatik bir sertifika yetkilisi olan Let’s Encrypt‘i, resmi aracı olan Certbot ile kullanacağız.

Adım 1: Certbot Kurulumu

Certbot, Apache web sunucunuzla entegre çalışarak SSL sertifikası alma ve yenileme işlemlerini kolaylaştıran bir araçtır. Öncelikle Certbot’u ve gerekli Apache eklentisini sunucumuza kuralım:

sudo apt update
sudo apt install certbot python3-certbot-apache -y

Adım 2: Güvenlik Duvarı Ayarlarını Güncelleme

Daha önce UFW güvenlik duvarını yapılandırmıştık. SSL sertifikası, web sitenizin HTTPS (443 numaralı port) üzerinden erişilmesini gerektirir. Bu nedenle, HTTPS trafiğine izin vermemiz ve artık yeterli olmayan yalnızca HTTP (80 numaralı port) kuralını kaldırmamız gerekir.

sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'
  • sudo ufw allow 'Apache Full' komutu, hem HTTP (80) hem de HTTPS (443) trafiğine izin verir.
  • sudo ufw delete allow 'Apache' ise sadece HTTP trafiğine izin veren eski kuralı siler.

Bu değişiklikleri yaptıktan sonra, UFW’nin durumunu kontrol ederek kuralların doğru bir şekilde uygulandığından emin olmalıyız:

sudo ufw status

Çıktıda Apache Full kuralının etkin olduğunu görmeniz gerekir.

Adım 3: SSL Sertifikası Alma ve Kurulum

Şimdi Certbot’u çalıştırarak sertifika alma ve Apache yapılandırma işlemini başlatalım:

sudo certbot --apache

Bu komut, sizi aşağıdaki adımlara yönlendirecektir:

  1. E-posta Adresi: Sertifika yenileme bildirimleri ve güvenlik uyarıları için kullanılacak bir e-posta adresi girin.
  2. Hizmet Koşulları: Let’s Encrypt hizmet koşullarını kabul ettiğinizi onaylayın.
  3. Alan Adı Seçimi: Certbot, sunucunuzdaki sanal ana bilgisayar dosyalarından alan adlarınızı (örneğin, domainadi.com ve www.domainadi.com) otomatik olarak algılar. Hangi alan adları için sertifika almak istediğinizi seçin. Genellikle tüm listeyi seçmek en doğru yaklaşımdır.
  4. HTTPS Yönlendirmesi: Certbot, HTTP trafiğini otomatik olarak HTTPS’ye yönlendirmek isteyip istemediğinizi sorar. Bu, iyi bir güvenlik ve SEO uygulamasıdır. Trafik yönlendirmesi için genellikle 2. seçeneği (Redirect) seçmeniz önerilir.

Tüm bu adımları tamamladığımızda, Certbot size sertifikanın başarıyla yüklendiğini bildiren bir mesaj gösterecektir.

Adım 4: Sertifika Otomatik Yenileme Kontrolü

Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, bu sürenin dolmasına yakın sertifikaları otomatik olarak yenileyecek şekilde ayarlanır. Bu otomasyonun doğru çalıştığından emin olmak için aşağıdaki komutu kullanabiliriz:

sudo certbot renew --dry-run

Bu komut, sertifika yenileme işlemini canlı olarak değil, sadece bir test olarak çalıştırır. Eğer herhangi bir hata mesajı almazsanız, otomatik yenileme işlemi doğru bir şekilde çalışıyor demektir.

Adım 5: Kurulumu Test Etme

Artık kurulumun başarılı olup olmadığını kontrol edebiliriz. Tarayıcınızdan https://domainadi.com adresine gidin. Adres çubuğunda bir kilit simgesi görüyorsanız ve site sorunsuz bir şekilde açılıyorsa, SSL sertifikanız başarıyla kurulmuş demektir.

Sunucumuz artık güvenli bir HTTPS bağlantısıyla erişilebilir durumda. Bu aşamadan sonra, WordPress kurulumu için gerekli dosya işlemlerine geçebiliriz.

Ubuntu Sunucuya WordPress Kurulumu

Sunucunuz artık tam anlamıyla hazır. Temel güvenlik ayarlarınızı yaptınız, web sunucunuzu (Apache), veritabanı sunucunuzu (MySQL) ve PHP’yi kurdunuz. Şimdi sitemizin kalbi olan WordPress’i kurma zamanı.

Adım 1: WordPress Veritabanını Oluşturun

WordPress’in çalışması için bir veritabanına ihtiyacı var. Aşağıdaki komutla MySQL’e bağlanıp yeni bir veritabanı ve kullanıcı oluşturacağız.

sudo mysql

MySQL komut satırına girdikten sonra şu komutları sırasıyla çalıştırın. wordpress yerine istediğiniz bir veritabanı adı, wordpress_user yerine istediğiniz bir kullanıcı adı ve 'guclu_sifre_buraya' yerine güçlü bir parola belirleyin.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'guclu_sifre_buraya';
GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Bu komutlar, WordPress için bir veritabanı oluşturur, bu veritabanına erişebilecek bir kullanıcı tanımlar ve gerekli izinleri verir.

Adım 2: WordPress Dosyalarını İndirin ve Hazırlayın

Şimdi WordPress’in en son sürümünü sunucunuza indireceğiz.

cd /tmp
wget https://wordpress.org/latest.tar.gz

İndirdiğimiz sıkıştırılmış dosyayı tar komutu ile açın:

tar -xzvf latest.tar.gz

Bu işlem, wordpress adında yeni bir klasör oluşturacaktır. WordPress dosyalarını, web sitenizin ana dizini olan /var/www/domainadi.com/public_html klasörüne kopyalamamız gerekir.

sudo rsync -avP /tmp/wordpress/ /var/www/domainadi.com/public_html/

Dosyaların doğru yetkilere sahip olduğundan emin olalım. Daha önce oluşturduğunuz kullanıcıya sahiplik vermiştik, şimdi bu yetkiyi tüm dosyalara uygulayalım.

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

Adım 3: .htaccess Dosyasını Oluşturun ve Yazılabilir Yapın

WordPress kalıcı bağlantı (permalink) yapılarının düzgün çalışabilmesi için .htaccess dosyasına ihtiyaç vardır. WordPress bazen bu dosyayı otomatik oluşturamaz, bu durumda bizim müdahale etmemiz gerekir.

Aşağıdaki komutla oluşturabilirsiniz:

sudo touch /var/www/domainadi.com/public_html/.htaccess
sudo chown www-data:wlnk /var/www/domainadi.com/public_html/.htaccess
sudo chmod 644 /var/www/domainadi.com/public_html/.htaccess

domainadi.com yerine kendi alan adınızı yazmayı unutmayın. Eğer WordPress kalıcı bağlantı ayarlarını düzenlerken .htaccess dosyasına yazamıyorsa, geçici olarak chmod 664 verilebilir. Ayar yapıldıktan sonra tekrar 644 yapılmalıdır.

Bu işlem sonrasında WordPress admin panelinden Ayarlar > Kalıcı Bağlantılar bölümüne girerek istediğiniz permalink yapısını seçin ve “Değişiklikleri Kaydet” butonuna tıklayın. .htaccess dosyası otomatik olarak güncellenecektir.

Ekstra: .htaccess İçin Güvenlik Kuralı (İsteğe Bağlı)

İstersen .htaccess içine temel bir güvenlik kuralı da ekleyebilirsin. Örneğin wp-config.php gibi önemli dosyaların dışarıdan erişimini engellemek için:

<Files wp-config.php>
  order allow,deny
  deny from all
</Files>

WordPress’in .htaccess dosyasını düzenleyebilmesi için dosyanın yazılabilir olduğundan emin olun. Aksi takdirde kalıcı bağlantılar çalışmayabilir. Bu ayarı yaptıktan sonra “Ayarlar > Kalıcı Bağlantılar” ekranından permalink ayarlarını yeniden kaydedin.

Adım 4: WordPress Yapılandırma Dosyasını Ayarlayın

WordPress, veritabanı bağlantı bilgilerini wp-config.php dosyasında saklar. Dosyayı oluşturmak için örnek yapılandırma dosyasını kopyalayacağız.

cd /var/www/domainadi.com/public_html
cp wp-config-sample.php wp-config.php

Şimdi bu dosyayı bir metin editörüyle açalım:

sudo nano wp-config.php

Açılan dosyada aşağıdaki satırları bulup, Adım 1‘de belirlediğimiz veritabanı adı, kullanıcı adı ve parola ile değiştirelim.

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

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

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

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

Ayrıca, WordPress’in kullandığı güvenlik anahtarlarını (salt keys) oluşturmak için aşağıdaki adresi ziyaret edin: https://api.wordpress.org/secret-key/1.1/salt/

Sayfada çıkan anahtarları kopyalayın ve wp-config.php dosyasındaki ilgili bölüme yapıştırın. Bu, sitenizin güvenliğini artırır.

Dosyayı kaydedin ve kapatın (CTRL + O, Enter, CTRL + X).

Adım 5: WordPress Kurulumunu Tamamlayın

Tüm bu adımlardan sonra, WordPress’in web arayüzünden kurulumunu yapmaya hazırız. Tarayıcınızda alan adınıza gidin: https://domainadi.com

Karşınıza WordPress kurulum sihirbazı çıkacaktır.

  1. Dil seçimi: Türkçe’yi seçin ve “Devam” butonuna tıklayın.
  2. Hoş Geldiniz: “Başlayalım” butonuna tıklayın.
  3. Veritabanı Bilgileri: Daha önce yapılandırdığınız veritabanı bilgileri otomatik olarak gelecektir. “Gönder” butonuna tıklayın.
  4. Kurulumu Başlat: WordPress veritabanına başarıyla bağlandıysa, site başlığı, kullanıcı adı, parola ve e-posta adresi gibi temel bilgileri girmeniz istenir. Bu bilgileri doldurun ve “WordPress’i Kur” butonuna tıklayın.

Kurulum tamamlandığında, yönetici panelinize (dashboard) giriş yapabiliriz.

Tebrikler! Hetzner Cloud sunucunuzda Ubuntu, Apache, MySQL, PHP, SSL ve WordPress kurulumunuzu başarıyla tamamladık. Artık sitemizi geliştirmeye başlayabiliriz.

Sonuç

Bu rehberde, Hetzner Cloud üzerinde sıfırdan bir Ubuntu sunucusu oluşturup, güvenlik önlemleri alarak LAMP (Linux, Apache, MySQL, PHP) stack kurulumu yaptık ve WordPress altyapısını güvenli bir şekilde yayına aldık. Ayrıca HTTPS sertifikasıyla web sitemizi hem ziyaretçi güvenliği hem de SEO açısından güçlendirdik.

Bu sürecin her adımı, sürdürülebilir ve güvenli bir web geliştirme ortamı kurmanıza yardımcı olmak üzere tasarlandı. Eğer yeni kullanıcıysanız, bu kurulumları terminal üzerinden yapmanın ilk başta zorlayıcı görünebileceğini biliyoruz. Ancak her adım, ileride karşılaşabileceğiniz birçok teknik sorunu en baştan önlemenizi sağlar.

Eğer bu makale size faydalı olduysa, diğer teknik rehberlerimizi de keşfetmeyi unutmayın. Ayrıca aklınıza takılan herhangi bir konuda iletişime geçebilirsiniz 👉 https://wolinka.com.tr/iletisim/

Eğer Faydalı Bulduysan, Devamı Burada

Eğer bu içerik sana fayda sağlıyorsa daha fazlası için abone olabilirsin. Zorlayıcı teklif yok, spam yok. Sadece işini büyütmene yardımcı olacak içten ipuçları. ✨

    Bir yanıt yazın

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