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-imagickVeritabanı sunucusunu güvenli hâle getirin:
bashmysql_secure_installationBetik 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 -ptextCREATE 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 nginx6. 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.comSertifika 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.phpiçinedefine('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.
