WordPress’i VPS üzerinde çalıştırmak işletim sistemi, PHP, web sunucusu ve veritabanı üzerinde kontrol sağlar. Bu esneklik bakım sorumluluğunu da beraberinde getirir: güncellemeler, yedekler, eklenti güvenliği ve e-posta teslimi kendiliğinden çözülmez.
Bu rehber yeni bir Ubuntu Server 24.04 LTS sunucusunda Nginx, PHP-FPM ve MariaDB kullanır. WordPress’in güncel önerisi PHP 8.3 veya üzeri, MariaDB 10.11 veya MySQL 8.0 veya üzeri ve HTTPS’tir. Ubuntu 24.04’ün PHP 8.3 ve MariaDB 10.11 paketleri bu başlangıç için uygundur.
Bu rehberle neler yapabilirsiniz?
- WordPress bileşenlerini ve ayrı veritabanı hesabını hazırlamak
- Nginx üzerinden PHP-FPM ve HTTPS yayını planlamak
- Dosya izinleri, güncellemeler ve yedek sorumluluğunu doğru kurmak
Tek WordPress sitesi olan yeni VPS. Örnek example.com alan adını ve SQL parola yer tutucusunu kendi değerlerinizle değiştirin.
Başlamadan önce- Yeni Ubuntu Server 24.04 LTS ve sudo yetkili operator hesabı
- Size ait alan adı ve DNS yönetimi
- Açık HTTP/HTTPS portları ve çalışan SSH erişimi
- Siteyi yönetmek ve güncellemek için bakım planı
1. Web sunucusu, PHP ve veritabanını kurun
- 01Ziyaretçi / HTTPS
- 02Nginx
- 03PHP-FPM / WordPress
- 04MariaDB + medya
Statik dosyalar Nginx’ten, dinamik sayfalar PHP ve gerektiğinde veritabanından gelir.
sudo apt update
sudo apt install nginx mariadb-server php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl curl openssl
php -v
mariadb --version
sudo systemctl status nginx php8.3-fpm mariadb --no-pagerÜç servisin de durumunu kontrol edin. Bir port çakışması veya başarısız PHP servisi varsa alan adını bağlamadan önce çözün. Farklı Ubuntu sürümünde PHP paket adı ve socket yolu değişebilir. Gerekli PHP eklentileri kullandığınız temaya, görsel işlemeye ve eklentilere göre genişleyebilir; yalnızca ihtiyaç duyduklarınızı ekleyin.
MariaDB’yi genel internete açmanız gerekmez. Tek sunucuda WordPress localhost üzerinden bağlanır. 3306 portunun genel ağa açık olmadığını ss -lntup ve firewall politikanızla kontrol edin. Sunucuya başka siteler ekleyecekseniz kullanıcı, PHP havuzu ve dosya erişimi ayrımını ayrıca tasarlayın.
2. Uygulamaya özel veritabanı oluşturun
WordPress’e MariaDB root hesabını vermeyin. Ayrı bir veritabanı ve yalnızca o veritabanına yetkili kullanıcı oluşturun. Aşağıdaki SQL’de REPLACE_WITH_LONG_UNIQUE_PASSWORD metni çalıştırılacak gerçek parola değildir; parola yöneticisinden ürettiğiniz güçlü bir değerle değiştirin. Parolayı sitenin wp-config.php dosyasında kullanacaksınız.
sudo mariadbCREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress_app'@'localhost' IDENTIFIED BY 'REPLACE_WITH_LONG_UNIQUE_PASSWORD';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_app'@'localhost';
EXIT;Bu yetki WordPress’in tablo oluşturma ve güncelleme ihtiyaçları için yalnızca wordpress veritabanına verilir. Aynı sunucuda başka uygulama varsa her birine ayrı hesap tanımlayın. Root hesabının mevcut kimlik doğrulama düzenini anlamadan değiştirmeyin.
3. WordPress dosyalarını ve yapılandırmayı hazırlayın
WordPress arşivini resmî adresten indirin. latest.tar.gz güncel sürümü izler; indirdiğiniz sürümü ve kurulum tarihini daha sonra yönetim panelindeki sürüm bilgisinden kaydedin. Çalışan bir sitenin dosyalarının üzerine bu komutları uygulamayın.
curl --fail --location https://wordpress.org/latest.tar.gz --output /tmp/wordpress.tar.gz
tar -tzf /tmp/wordpress.tar.gz | head
sudo tar -xzf /tmp/wordpress.tar.gz -C /var/www
sudo chown -R operator:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} +
sudo find /var/www/wordpress -type f -exec chmod 644 {} +
cd /var/www/wordpress
cp wp-config-sample.php wp-config.php
sudo chgrp www-data wp-config.php
chmod 640 wp-config.php
nano wp-config.phpwp-config.php içindeki DB_NAME, DB_USER, DB_PASSWORD ve DB_HOST alanlarını sırasıyla wordpress, wordpress_app, kendi parolanız ve localhost olarak düzenleyin. WordPress’in resmî salt üreticisinden yeni anahtarlar alın ve örnek kimlik doğrulama sabitlerini değiştirin. Var olan bir sitede bu anahtarların değişmesi açık oturumları kapatabilir.
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress_app' );
define( 'DB_PASSWORD', 'REPLACE_WITH_LONG_UNIQUE_PASSWORD' );
define( 'DB_HOST', 'localhost' );
define( 'DISALLOW_FILE_EDIT', true );Mevcut DB_* satırlarını düzenleyin; aynı sabitleri ikinci kez eklemeyin. DISALLOW_FILE_EDIT satırını “stop editing” yorumundan önce ekleyin. Ardından medya yükleme klasörüne PHP kullanıcısının yazma izni verin.
mkdir -p /var/www/wordpress/wp-content/uploads
sudo chgrp www-data /var/www/wordpress/wp-content/uploads
chmod 775 /var/www/wordpress/wp-content/uploads4. Nginx sanal sunucusunu tanımlayın
Alan adınızın A kaydını VPS IPv4 adresine yönlendirin. AAAA kullanıyorsanız IPv6 adresinin aynı sunucuya ulaştığını doğrulayın. Aşağıdaki dosyayı /etc/nginx/sites-available/wordpress olarak kaydedin; example.com değerini kendinize ait alan adıyla değiştirin.
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/wordpress;
index index.php;
client_max_body_size 32m;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* /wp-content/uploads/.*\.php$ {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\. {
deny all;
}
location = /wp-config.php {
deny all;
}
}sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
sudo nginx -t && sudo systemctl reload nginxBağlantı zaten varsa yeniden oluşturmaya çalışmayın. nginx -t hata verirse çıktıda gösterilen satırı düzeltin. Yükleme sınırı için Nginx client_max_body_size yanında PHP upload_max_filesize ve post_max_size değerlerinin de uyumlu olması gerekir. Büyük yüklemeler sunucu diskini ve PHP worker sürelerini etkiler.
5. HTTPS üzerinden ilk kurulumu tamamlayın
Yönetici parolasını oluşturmadan önce Nginx ve HTTPS rehberini izleyerek alan adı için sertifika kurun. DNS doğru sunucuya ulaşmalı, 80 ve 443 portları erişilebilir olmalıdır. Sertifika yenilemesini certbot renew --dry-run ile doğrulayın. Kurulum ekranını herkese açık biçimde uzun süre bırakmayın; dosyaları yayımladıktan sonra kurulumu tamamlayın.
Tarayıcıdan https://example.com adresine kendi alan adınızla girin. Benzersiz yönetici adı ve parola belirleyin, erişebildiğiniz bir yönetici e-posta adresi kullanın. WordPress Adresi ve Site Adresi HTTPS olmalıdır. Kalıcı bağlantıları kaydedin; bir yazı, medya yüklemesi ve giriş/çıkış işlemi deneyin.
| Kontrol | Beklenen sonuç |
|---|---|
| HTTPS ve yenileme | Alan adı doğru, tarayıcı güven uyarısı yok, yenileme testi başarılı. |
| Medya ve bağlantılar | Görsel yüklenebiliyor; yazı bağlantıları 404 vermiyor. |
| E-posta | Parola sıfırlama gerçekten teslim oluyor; gerekirse SMTP servisi yapılandırılmış. |
| Yedek | Veritabanı + wp-content + wp-config.php ayrı kopyada; geri yükleme denenmiş. |
6. Güncelleme, önbellek ve geri dönüşü yönetin
Sayfa önbelleği anonim ziyaretçilerin maliyetini azaltabilir; giriş yapan kullanıcılar, sepet ve ödeme sayfaları aynı şekilde önbelleklenmemelidir. Eklenti sayısını değil, sorgu ve işlem yükünü ölçün. Yavaş bir veritabanı sorgusu veya dış API çağrısı daha büyük paketle tamamen çözülmeyebilir.
- Tema ve eklenti güncellemesini ayrı deneme ortamında kontrol edin.
- Çekirdek ve eklenti sürümlerini kaydedin; kullanılmayan eklentileri kaldırın.
- PHP-FPM ve Nginx hata günlükleriyle yavaş veya başarısız isteği ilişkilendirin.
- Güncellemeden önce dosya ve veritabanını birlikte yedekleyin.
- Geri dönüşte eski dosyaların yanında uyumlu veritabanı kopyasını kullanın.
Bu yapılandırma temel tek site modelidir. Ödeme alan, üyelikli veya yüksek eş zamanlı WordPress için uygulama güvenliği, önbellek istisnaları, e-posta ve kapasite ölçümü ayrı ele alınmalıdır. VPS satın almak WordPress’in yönetiminin hizmete dahil olduğu anlamına gelmez.
İnceleme kapsamı
Nginx örneği izole yapılandırmada nginx -t kontrolünden geçti; wp-config dosyasının PHP kullanıcısınca okunabildiği geçici dosyalarla doğrulandı. WordPress ve veritabanı bu kapsamda kurulup çalıştırılmadı. Resmî dokümanlar ve örnek yapılandırmalar 30 Eylül 2026 tarihinde incelendi. Bu rehberdeki tam kurulum boş bir VPS üzerinde uçtan uca çalıştırılmadı. Mevcut sunucunuzu değiştirmeden önce ayrı bir deneme ortamında, kendi sürüm ve erişim koşullarınızla doğrulayın.
Resmî kaynaklar
Sürüm ve yapılandırma ayrıntılarını ilgili projenin güncel belgelerinden takip edin.