WordPress kurulumu, hosting hesabınızda bir veritabanı oluşturup WordPress dosyalarını sunucuya yüklemek ve tarayıcıdan beş dakikalık kurulum sihirbazını tamamlamaktan ibarettir. İki yolu vardır: cPanel içindeki Softaculous ile tek tıkla otomatik kurulum ya da dosyaları elle yükleyip wp-config.php dosyasını kendiniz yazdığınız manuel kurulum. Bu rehber ikisini de baştan sona anlatıyor.
Kurulum aslında işin kolay kısmı. Asıl fark, kurulumdan sonraki ilk yarım saatte yaptıklarınızda ortaya çıkar: SSL zorlaması, güvenlik anahtarları, dosya izinleri, kalıcı bağlantı yapısı ve otomatik yedek. Aşağıdaki adımları sırayla uygularsanız siteniz hem güvenli hem de arama motorlarına hazır biçimde açılır.
Kurulumdan Önce Gerekenler#
WordPress’in çalışması için sunucunuzun karşılaması gereken asgari koşullar bellidir. Batihost paketlerinde bunların tamamı hazır gelir, ancak eski bir hostingten geçiyorsanız kontrol edin:
| Bileşen | Asgari | Önerilen | Neden |
|---|---|---|---|
| PHP | 8.1 | 8.3 | 8.3 belirgin biçimde hızlı, 7.x güvenlik güncellemesi almıyor |
| Veritabanı | MySQL 8.0 | MariaDB 10.6+ | utf8mb4 karakter seti ve modern indeks desteği |
| Web sunucusu | Apache | LiteSpeed / Nginx | Statik dosya sunumu ve önbellek performansı |
| PHP bellek limiti | 256M | 512M | WooCommerce ve sayfa oluşturucular yüksek bellek ister |
max_execution_time | 60 | 300 | Büyük içe aktarma ve yedek işlemleri |
| Disk | 5 GB NVMe | 20 GB+ NVMe | Medya kitaplığı ve yedekler hızla büyür |
| SSL | Let’s Encrypt | Otomatik yenilemeli | HTTPS artık zorunlu sayılıyor |
Bunların yanında alan adınızın hosting sunucusuna yönlendirilmiş olması gerekir. Alan adı henüz bağlı değilse önce DNS kayıtları rehberindeki A kaydını ekleyin; yayılma tamamlanmadan kurulum yaparsanız sihirbaz açılmaz. Alan adınız yoksa domain satın alma sayfasından başlayın.
-
WordPress (resmî site)Ücretsizİndir
-
FileZilla Client (FTP/SFTP)İndir
-
Notepad++ (config düzenleme)İndir
WordPress’i yalnızca wordpress.org üzerinden indirin. “Ücretsiz premium tema paketi” vaat eden sitelerdeki arşivler neredeyse her zaman arka kapı içerir.
Yöntem 1: cPanel Softaculous ile Tek Tıkla Kurulum#
Paylaşımlı hosting kullanıyorsanız en hızlı yol budur. Softaculous veritabanını, kullanıcıyı ve wp-config.php dosyasını sizin yerinize oluşturur.
-
cPanel’de kurucuyu açın#
cPanel ana ekranında “Yazılımlar” bölümündeki WordPress Manager by Softaculous ya da Softaculous Apps Installer simgesine tıklayın. Panel arayüzüne yabancıysanız cPanel kullanım rehberine göz atın.
-
Kurulum protokolünü ve alan adını seçin#
Protokol olarak https:// seçin (SSL zaten aktifse) ve “In Directory” alanını boş bırakın. Bu alan doluysa siteniz
site.com/wp/gibi bir alt klasörde açılır. -
Yönetici bilgilerini girin#
Kullanıcı adı olarak kesinlikle
adminyazmayın. Kaba kuvvet saldırılarının tamamı bu adı dener. Parolayı 16 karakterden uzun ve rastgele seçin. -
Veritabanı ön ekini değiştirin#
“Advanced Options” bölümünü açın ve tablo ön ekini
wp_yerinewp7k3_gibi rastgele bir değere çevirin. Bu, otomatik SQL enjeksiyon denemelerinin çoğunu boşa düşürür. -
Kurulumu başlatın ve giriş yapın#
Kurulum bittiğinde panel size iki adres verir: sitenin kendisi ve
site.com/wp-admin. Yönetici paneline girip Ayarlar bölümüne geçin.
Yöntem 2: Manuel WordPress Kurulumu#
Manuel kurulum daha fazla adım içerir ama neyin nerede olduğunu tam olarak bilirsiniz. Kendi sunucunuzda çalışıyorsanız zaten tek seçenek budur.
Adım 1 — Veritabanı ve kullanıcı oluşturun#
cPanel’de “MySQL® Databases” bölümünden bir veritabanı, bir kullanıcı oluşturun ve kullanıcıyı veritabanına ALL PRIVILEGES yetkisiyle ekleyin. Panelin verdiği tam adları not alın; hosting hesabınızın ön eki otomatik eklenir (batihost_wp1 gibi).
Kendi sunucunuzda MySQL komut satırını kullanıyorsanız:
sudo mysql -u root -p
CREATE DATABASE wp_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'BurayaUzunBirParola!2026';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Karakter setinin utf8mb4 olması önemlidir; eski utf8 seti emoji ve bazı Türkçe olmayan karakterleri kaydedemez.
Adım 2 — Dosyaları sunucuya yükleyin#
Arşivi indirip açın ve içindeki dosyaları (klasörün kendisini değil) public_html dizinine kopyalayın. FTP yerine sunucuda çalışıyorsanız tek satırda hallolur:
cd /var/www/site.com
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz --strip-components=1
rm latest.tar.gz
sudo chown -R www-data:www-data /var/www/site.com
--strip-components=1 parametresi, arşivdeki wordpress/ klasörünü atlayıp içeriği doğrudan geçerli dizine açar. Bu parametreyi unutursanız site site.com/wordpress/ adresinde kalır. Bu komutlar ve benzerleri hakkında ayrıntı için Linux temel komutları sayfasına bakabilirsiniz.
Adım 3 — Kurulum sihirbazını çalıştırın#
Tarayıcıdan alan adınızı açın. WordPress wp-config.php bulunmadığını görüp size veritabanı bilgilerini soracaktır. Dört alanı doldurun, ardından site başlığı ve yönetici hesabını girin. Sunucu yazma izni verirse config dosyası otomatik oluşur; vermezse ekranda gösterilen içeriği kopyalayıp wp-config.php adıyla kök dizine kaydedin.
wp-config.php Dosyasında Yapılması Gereken Ayarlar#
Kurulum bittikten sonra bu dosyaya birkaç satır eklemek, sitenizin güvenliğini ve kararlılığını gözle görülür biçimde artırır. Dosyanın /* That’s all, stop editing! */ satırının üstüne ekleyin:
// Dosya düzenleyiciyi kapat: panel ele geçirilse bile tema/eklenti kodu değiştirilemez
define( 'DISALLOW_FILE_EDIT', true );
// Panelden eklenti/tema yüklemeyi ve güncellemeyi kapatmak isterseniz (isteğe bağlı, katı mod)
// define( 'DISALLOW_FILE_MODS', true );
// Otomatik küçük sürüm güncellemeleri açık kalsın
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
// Revizyon sayısını sınırla: veritabanı şişmesin
define( 'WP_POST_REVISIONS', 5 );
// Çöp kutusu 7 günde bir boşalsın
define( 'EMPTY_TRASH_DAYS', 7 );
// Bellek limiti
define( 'WP_MEMORY_LIMIT', '512M' );
// Hata ayıklama: canlı sitede ekrana ASLA basma, dosyaya yaz
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
// Site adreslerini sabitle (hack sonrası yönlendirme saldırılarını engeller)
define( 'WP_HOME', 'https://ornekalanadi.com' );
define( 'WP_SITEURL', 'https://ornekalanadi.com' );
Dosyanın en kritik kısmı güvenlik anahtarlarıdır (AUTH_KEY, SECURE_AUTH_KEY vb.). Manuel kurulumda bunlar boş kalırsa oturum çerezleri tahmin edilebilir hale gelir. Anahtarları WordPress’in resmî üreticisinden alıp mevcut satırların yerine yapıştırın; değiştirdiğinizde tüm oturumlar kapanır ve yeniden giriş yapmanız gerekir.
wp-config.php dosyasının izinlerini 640 yapın (chmod 640 wp-config.php). Bu dosya veritabanı parolanızı düz metin tutar; 644 veya 664 izinle sunucudaki başka hesaplar okuyabilir.Dosya İzinleri ve Sahiplik#
Yanlış izinler WordPress’in en sık göz ardı edilen güvenlik açığıdır. Doğru şema şudur:
| Hedef | İzin | Açıklama |
|---|---|---|
| Klasörler | 755 | Sahibi yazabilir, diğerleri yalnızca okuyup girebilir |
| Dosyalar | 644 | Sahibi yazabilir, diğerleri okur |
wp-config.php | 640 | Yalnızca sahibi ve web sunucusu grubu okur |
.htaccess | 644 | WordPress kalıcı bağlantı için yazar |
wp-content/uploads | 755 | Medya yüklemesi için yazılabilir olmalı |
| Hiçbir şey | 777 | Asla kullanmayın; sunucudaki herkes yazabilir demektir |
Tüm ağacı tek seferde düzeltmek için:
cd /var/www/site.com
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 640 wp-config.php
sudo chown -R www-data:www-data .
SSL Etkinleştirme ve HTTPS Yönlendirmesi#
Kurulumu http:// ile yaptıysanız siteyi HTTPS’e taşımanız gerekir. Sıra şudur: önce sertifika, sonra adresler, en son yönlendirme.
Panelde AutoSSL veya Let’s Encrypt bölümünden sertifikayı kurun. Ardından Ayarlar > Genel ekranındaki “WordPress Adresi” ve “Site Adresi” alanlarını https:// ile güncelleyin. Son olarak .htaccess dosyasının en üstüne şu kuralı ekleyin:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Adres çubuğunda kilit yerine uyarı görüyorsanız sorun büyük ihtimalle karma içeriktir: sayfa HTTPS ama içindeki bir görsel veya betik hâlâ http:// ile çağrılıyordur. Veritabanındaki eski adresleri toplu değiştirmek ve diğer SSL sorunlarını çözmek için SSL sertifikası kurulumu sayfasındaki bölüme bakın.
Kurulum Sonrası İlk 10 Ayar#
Panelde ilk oturumda yapılacaklar listesi:
- Kalıcı bağlantılar: Ayarlar > Kalıcı Bağlantılar > “Yazı adı”. Varsayılan
?p=123yapısı SEO için kötüdür. - Site dili ve saat dilimi: Ayarlar > Genel > Türkçe ve
İstanbul. Saat dilimi yanlışsa zamanlanmış yazılar yanlış saatte çıkar. - Örnek içerikleri silin: “Merhaba Dünya!” yazısı, örnek sayfa ve örnek yorum.
- Arama motoru görünürlüğü: Ayarlar > Okuma altındaki “Arama motorlarını engelle” kutusunun işaretsiz olduğunu doğrulayın. Bu kutu unutulduğunda site aylarca dizine girmez.
- Kullanılmayan tema ve eklentileri silin.
- Yönetici görünen adını değiştirin: Kullanıcılar > Profil > “Herkese açık görünen ad” kullanıcı adınızdan farklı olsun.
- Yorum ayarları: Ayarlar > Tartışma > yorumlar önce onaydan geçsin.
- Gerçek e-posta adresi tanımlayın: Site bildirimleri
wordpress@site.comyerine kendi kurumsal adresinizden gitsin. Kurulumu kurumsal e-posta oluşturma sayfasında anlattık. - Önbellek eklentisi kurun ve sunucu tarafı önbelleği açın.
- Otomatik yedek kurun — ayrıntısı aşağıda.
Güvenlik Sıkılaştırma#
WordPress’in kendisi güvenlidir; saldırıya uğrayan sitelerin neredeyse tamamı güncellenmemiş eklenti, zayıf parola veya yanlış izin yüzünden düşer.
xmlrpc.php ve giriş sayfası koruması#
xmlrpc.php dosyası, tek istekte yüzlerce parola denemesine izin verdiği için kaba kuvvet saldırılarının favorisidir. Jetpack veya WordPress mobil uygulaması kullanmıyorsanız kapatın:
<Files xmlrpc.php>
Require all denied
</Files>
<Files wp-config.php>
Require all denied
</Files>
# PHP dosyalarının uploads klasöründen çalıştırılmasını engelle
<Directory /var/www/site.com/wp-content/uploads>
<FilesMatch "\.php$">
Require all denied
</FilesMatch>
</Directory>
Son kural özellikle önemlidir: saldırganların en sevdiği yöntem, medya yükleme açığından uploads klasörüne bir PHP kabuğu bırakmaktır. Bu klasörde PHP çalıştırmayı kapatırsanız yükleme başarılı olsa bile kod çalışmaz.
Güncelleme disiplini#
Küçük çekirdek güncellemelerini otomatik bırakın, büyük sürümleri ve eklentileri elle yapın. Elle yapmadan önce yedek alın. Üç aydır güncellenmemiş bir eklentiyi terk edilmiş sayın ve alternatifini arayın.
Yedekleme ve Site Taşıma#
Bir WordPress sitesi iki parçadan oluşur: dosyalar (wp-content klasörü kritik) ve veritabanı. İkisini birlikte almadığınız bir yedek işe yaramaz.
# Veritabanı yedeği
mysqldump -u wp_user -p --single-transaction wp_site > /yedek/wp_site_$(date +%F).sql
# Dosya yedeği
tar -czf /yedek/site_$(date +%F).tar.gz -C /var/www/site.com .
# 14 günden eski yedekleri sil
find /yedek -name "*.tar.gz" -mtime +14 -delete
Bu üç satırı bir kabuk betiğine koyup crontab ile geceleri çalıştırabilirsiniz. Yedeği yalnızca sunucuda tutmak yeterli değildir; sunucu tamamen kaybolursa yedek de gider. Kopyaların nereye dağıtılacağını 3-2-1 yedekleme kuralı sayfasında anlattık.
Sık Karşılaşılan Kurulum Hataları#
| Belirti | Sebep | Çözüm |
|---|---|---|
| Error establishing a database connection | Yanlış DB adı/kullanıcı/parola veya kullanıcı yetkisiz | wp-config.php bilgilerini panelle karşılaştırın, kullanıcıya ALL PRIVILEGES verin |
| Beyaz ekran (WSOD) | PHP ölümcül hatası, çoğunlukla eklenti uyumsuzluğu | WP_DEBUG_LOG açıp wp-content/debug.log dosyasını okuyun; eklenti klasörünü FTP’den yeniden adlandırın |
| Ana sayfa açılıyor, alt sayfalar 404 | Kalıcı bağlantı kuralları yazılmamış | Ayarlar > Kalıcı Bağlantılar’ı kaydedin; .htaccess yazılabilir olsun |
| Sonsuz yönlendirme döngüsü | WP_HOME/WP_SITEURL ile .htaccess kuralı çakışıyor | İki adresi de aynı şemayla (https, www var/yok) yazın |
| “Bağlantı bilgilerinizi girin” FTP sorusu | Dosya sahipliği web sunucusu kullanıcısında değil | chown -R www-data:www-data uygulayın |
| Yükleme sırasında “dosya boyutu aşıldı” | upload_max_filesize düşük | Panelden PHP ayarını 64M ve üzerine çıkarın |
| Kurulum sihirbazı hiç açılmıyor | DNS henüz yayılmamış | A kaydını doğrulayın, TTL süresi kadar bekleyin |
WordPress İçin Doğru Barındırma Seçimi#
Tek bir blog veya kurumsal tanıtım sitesi paylaşımlı hostingte gayet rahat çalışır. Ne zaman yukarı çıkmanız gerektiğinin işaretleri şunlardır:
- Panelde “kaynak limiti aşıldı” uyarıları görmeye başladıysanız,
- WooCommerce sepet ve ödeme sayfaları önbelleklenemediği için sunucuyu yoruyorsa,
- Redis veya Elasticsearch gibi ek bir servis kurmanız gerekiyorsa,
- Aynı hesapta birden fazla ciddi site barındırıyorsanız,
- Kendi PHP ayarlarınızı ve cron zamanlamanızı kontrol etmek istiyorsanız.
Bu noktada garantili çekirdek ve NVMe disk sunan bir VDS paketine geçmek mantıklıdır; yüksek saat hızı isteyen kurulumlar için yüksek frekanslı Ryzen VDS tarafına bakabilirsiniz. Hosting türleri arasındaki farkları web hosting nedir sayfasında karşılaştırdık. Sunucuya geçtiğinizde performansı gözlemlemek için sunucu izleme araçlarını kurmayı ihmal etmeyin.
Özetle#
WordPress kurulumu, veritabanı oluşturmak ve dosyaları doğru dizine koymaktan ibaret. Otomatik kurucu kullanacaksanız Softaculous’ta yalnızca üç şeye dikkat edin: admin kullanıcı adını kullanmayın, tablo ön ekini değiştirin, alt klasöre kurmayın. Manuel kuracaksanız utf8mb4 karakter setini, --strip-components=1 parametresini ve wp-config.php izinlerini atlamayın.
Kurulumdan sonraki ilk yarım saat işin geri kalanından daha önemli: HTTPS zorlaması, güvenlik anahtarları, doğru dosya izinleri, kalıcı bağlantı yapısı ve otomatik yedek. Bunları bir kez doğru kurarsanız site yıllarca sorunsuz çalışır. Hız tarafını da tamamlamak isterseniz Core Web Vitals optimizasyonu sayfasıyla devam edin.