Kurulum rehberleri

VDS sunucuya sıfırdan WordPress kurulumu

Panel kullanmadan, boş bir sunucuya WordPress kurmanın tüm adımları: LEMP yığını, veritabanı, izinler, SSL ve kurulum sonrası sertleştirme.

10 dakika okuma
Sunucuya yerleştirilen WordPress simgesi ve web sayfası

Panelsiz kurulum, sunucuda ne olup bittiğini net görmenizi sağlar ve panel için harcanacak kaynağı uygulamaya bırakır. Tek bir site çalıştıracaksanız bu yol hem daha hafif hem daha öğreticidir.

Birden fazla site barındıracak ya da müşterilerinize hesap açacaksanız panelli kurulum daha mantıklıdır; Plesk kurulum rehberimize bakabilirsiniz.

Ön hazırlık

Boş bir Ubuntu 24.04 sunucusu varsayıyoruz. Başlamadan önce sistemi güncelleyin ve alan adının sunucunuza baktığını doğrulayın:

bashapt update && apt upgrade -y
dig +short alanadiniz.com

İkinci komut sunucunuzun IP adresini döndürmeli.

1. Nginx, MariaDB ve PHP

bashapt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-imagick

Veritabanı sunucusunu güvenli hâle getirin:

bashmysql_secure_installation

Betik sırayla root parolası, anonim kullanıcıların kaldırılması ve test veritabanının silinmesini sorar. Hepsine olumlu yanıt verin.

2. Veritabanı ve kullanıcı oluşturun

bashmysql -u root -p
textCREATE DATABASE wp_veritabani DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_kullanici'@'localhost' IDENTIFIED BY 'guclu-bir-parola';
GRANT ALL PRIVILEGES ON wp_veritabani.* TO 'wp_kullanici'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Root kullanıcısını WordPress için kullanmayın. Uygulamaya yalnızca kendi veritabanına erişebilen ayrı bir kullanıcı verin; bir açık durumunda hasar o veritabanıyla sınırlı kalır.

Karakter kümesinin utf8mb4 olması önemlidir: Türkçe karakterler ve emoji ancak bununla sorunsuz saklanır.

3. WordPress dosyalarını indirin

bashcd /tmp
curl -O https://tr.wordpress.org/latest-tr_TR.tar.gz
tar xzf latest-tr_TR.tar.gz
mkdir -p /var/www/alanadiniz.com
cp -r wordpress/* /var/www/alanadiniz.com/

4. Dosya izinleri

Bu adım, güvenlikle kullanılabilirlik arasındaki dengenin kurulduğu yerdir:

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

Dizinlere 755, dosyalara 644. 777 kullanmayın — internette sık rastlanan bu tavsiye, sunucudaki herhangi bir sürecin dosyalarınızı değiştirebilmesi demektir.

5. Nginx sunucu bloğu

/etc/nginx/sites-available/alanadiniz.com dosyasını oluşturun:

textserver {
    listen 80;
    server_name alanadiniz.com www.alanadiniz.com;
    root /var/www/alanadiniz.com;
    index index.php;

    client_max_body_size 64M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }
}

Son blok önemlidir: yükleme klasörüne sızan bir PHP dosyasının çalıştırılmasını engeller. WordPress kurulumlarının ele geçirilme yollarından biri tam olarak budur.

client_max_body_size ayarı, WordPress'in medya yükleme sınırını belirler; varsayılan 1 MB çoğu site için yetersizdir.

Etkinleştirin ve sınayın:

bashln -s /etc/nginx/sites-available/alanadiniz.com /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx

6. Kurulumu tamamlayın

Tarayıcıda alan adınızı açın. WordPress sizi kurulum sihirbazına yönlendirir; 2. adımda oluşturduğunuz veritabanı bilgilerini girin.

Yönetici kullanıcı adı olarak `admin` kullanmayın. Otomatik saldırıların ilk denediği kullanıcı adı budur.

7. SSL

bashapt install -y certbot python3-certbot-nginx
certbot --nginx -d alanadiniz.com -d www.alanadiniz.com

Sertifika kurulduktan sonra WordPress ayarlarındaki site adresini de https:// ile güncelleyin, aksi hâlde karışık içerik uyarısı alırsınız.

Kurulum sonrası

  • Otomatik yedekleme kurun ve hedefi sunucu dışında tutun
  • XML-RPC'yi kullanmıyorsanız kapatın; brute-force saldırılarının yaygın hedefidir
  • Dosya düzenleyiciyi kapatın: wp-config.php içine define('DISALLOW_FILE_EDIT', true); ekleyin
  • Sunucu tarafı sertleştirme için sunucu güvenliği rehberimize bakın
  • Hız için WordPress hızlandırma rehberimizi okuyun

Kurulumu sizin yerinize yapmamızı isterseniz kurulum ve taşıma süreçlerini uzaktan yürütüyoruz; bize yazın.