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
- Cloud Console’a girin: console.hetzner.cloud
- Yeni bir proje oluşturun: Örneğin
wolinka-dev-server Create Serverbutonuna 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.comiçin sunucu IP adresinizi tanımlayın. wwwön ekiyle de erişilebilmesi içinwwwiç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:
- E-posta Adresi: Sertifika yenileme bildirimleri ve güvenlik uyarıları için kullanılacak bir e-posta adresi girin.
- Hizmet Koşulları: Let’s Encrypt hizmet koşullarını kabul ettiğinizi onaylayın.
- Alan Adı Seçimi: Certbot, sunucunuzdaki sanal ana bilgisayar dosyalarından alan adlarınızı (örneğin,
domainadi.comvewww.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. - 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.
- Dil seçimi: Türkçe’yi seçin ve “Devam” butonuna tıklayın.
- Hoş Geldiniz: “Başlayalım” butonuna tıklayın.
- Veritabanı Bilgileri: Daha önce yapılandırdığınız veritabanı bilgileri otomatik olarak gelecektir. “Gönder” butonuna tıklayın.
- 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/