VPS-də WordPress işlətmək üçün veb server (burada Caddy), WordPress-in tələb etdiyi genişlənmələrlə PHP-FPM və MariaDB quraşdırın; verilənlər bazası və istifadəçi yaradın; WordPress-i WP-CLI ilə yükləyin; və Caddy-nin HTTPS-i aktiv edə bilməsi üçün domeni serverə yönəldin. Ubuntu 24.04-də bütün quraşdırma təxminən 20 dəqiqə çəkir.
Əl ilə işdən qaçmaq istəyirsinizsə, Wolkra-dakı WordPress bir kliklə tətbiqi eyni stack-i avtomatik quraşdırır. Bu bələdçi altında nə baş verdiyini göstərir ki, onu özünüz işlədə və düzəldə biləsiniz.
Başlamazdan əvvəl
- Ubuntu 24.04 olan server (Debian 12 eyni addımlarla işləyir), tövsiyə olunan yaddaş 2 GB.
- İlk addımlar yerinə yetirilib: yeniləmələr, sudo istifadəçisi, SSH açarları.
- Serverə yönələn A qeydi (IPv6 istifadə edirsinizsə, AAAA da) olan domen. Bu bələdçidə:
blog.example.com. - UFW-də və istənilən bulud firewall-unda 80 və 443 portları açıqdır.
sudo ufw allow 80,443/tcp
1. PHP və MariaDB quraşdırın
sudo apt update
sudo apt install -y mariadb-server \
php-fpm php-mysql php-curl php-gd php-intl php-mbstring \
php-xml php-zip php-imagick php-bcmath unzip
Ubuntu 24.04 PHP 8.3, Debian 12 isə PHP 8.2 quraşdırır. Hansının sizdə olduğunu yoxlayın:
php -v
ls /run/php/
php8.3-fpm.sock kimi socket adını qeyd edin. O, 5-ci addımda lazım olacaq.
2. MariaDB-ni qoruyun və verilənlər bazasını yaradın
sudo mariadb-secure-installation
Defolt dəyərləri qəbul edin: root üçün unix socket autentifikasiyasını saxlayın, anonim istifadəçiləri və test verilənlər bazasını silin.
WordPress üçün verilənlər bazası və istifadəçi yaradın:
DBPASS=$(openssl rand -hex 20)
echo "Database password: $DBPASS"
sudo mariadb <<SQL
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp'@'localhost' IDENTIFIED BY '$DBPASS';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp'@'localhost';
FLUSH PRIVILEGES;
SQL
Parolu saxlayın; WP-CLI-a tezliklə lazım olacaq.
3. Caddy quraşdırın
Caddy rəsmi Debian/Ubuntu repozitoriyası təqdim edir:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | \
sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \
sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
4. WP-CLI quraşdırın və WordPress-i yükləyin
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Sayt qovluğunu yaradın və onun sahibi PHP istifadəçisi olsun:
sudo mkdir -p /var/www/blog
sudo chown www-data:www-data /var/www/blog
cd /var/www/blog
sudo -u www-data wp core download
sudo -u www-data wp config create \
--dbname=wordpress --dbuser=wp --dbpass="$DBPASS" --dbhost=localhost
sudo -u www-data wp core install \
--url=https://blog.example.com \
--title="My Blog" \
--admin_user=admin_$(openssl rand -hex 3) \
--admin_email=YOUR_EMAIL \
--prompt=admin_password
YOUR_EMAIL yerinə öz e-poçt ünvanınızı yazın. Asanlıqla təxmin edilməyən admin istifadəçi adı təxmin hücumlarını çətinləşdirir. --prompt parolu shell tarixçənizdə qoymaq əvəzinə onu soruşur.
5. Caddy-ni konfiqurasiya edin
/etc/caddy/Caddyfile faylını bununla əvəz edin:
blog.example.com {
root * /var/www/blog
encode zstd gzip
php_fastcgi unix//run/php/php8.3-fpm.sock
file_server
@blocked path /xmlrpc.php /wp-config.php /.git/* /.env
respond @blocked 404
header {
Strict-Transport-Security "max-age=31536000"
X-Content-Type-Options "nosniff"
Referrer-Policy "strict-origin-when-cross-origin"
}
}
Öz PHP socket adınızı istifadə edin. Sonra:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Caddy sertifikatı ilk sorğuda alır. https://blog.example.com/wp-admin/ ünvanını açın və daxil olun. Daha çox seçim Caddy reverse proxy bələdçisindədir.
6. PHP-ni tənzimləyin
Defolt dəyərlər media yükləmələri üçün kiçikdir. /etc/php/8.3/fpm/conf.d/99-wordpress.ini faylını yaradın (versiyanı uyğunlaşdırın):
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
opcache.enable = 1
opcache.memory_consumption = 128
sudo systemctl restart php8.3-fpm
OPcache kompilyasiya olunmuş PHP-ni yaddaşda saxlayır və pulsuz əldə edilən ən böyük sürət artımıdır.
7. Keşləmə əlavə edin
Əksər bloqlar üçün səhifə keşi plagini kifayətdir. Daha işlək saytlar üçün obyekt keşi kimi Redis əlavə edin:
sudo apt install -y redis-server php-redis
sudo systemctl restart php8.3-fpm
cd /var/www/blog
sudo -u www-data wp plugin install redis-cache --activate
sudo -u www-data wp redis enable
Redis defolt olaraq yalnız localhost-u dinləyir. Belə də saxlayın.
8. WordPress cron-u sistemdən işlədin
WordPress planlaşdırılmış tapşırıqları səhifə baxışlarında işə salır: bu, sakit saytlarda etibarsız, işlək saytlarda isə israfçıdır. Əvəzinə əsl cron tapşırığından istifadə edin:
sudo -u www-data wp config set DISABLE_WP_CRON true --raw
echo '*/5 * * * * www-data cd /var/www/blog && /usr/local/bin/wp cron event run --due-now --quiet' | \
sudo tee /etc/cron.d/wordpress
9. Yenilənmiş saxlayın
WordPress sındırılmalarının çoxu köhnəlmiş plaginlər vasitəsilə baş verir. Həftədə bir yeniləyin və ya avtomatlaşdırın:
cd /var/www/blog
sudo -u www-data wp core update
sudo -u www-data wp plugin update --all
sudo -u www-data wp theme update --all
İstifadə etmədiyiniz plaginləri və mövzuları silin. Hər biri boşluğu ola biləcək koddur.
10. Ehtiyat nüsxə çıxarın
Sizə iki şey lazımdır: verilənlər bazası və wp-content.
sudo mkdir -p /var/backups/blog
cd /var/www/blog
sudo -u www-data wp db export - | gzip | sudo tee /var/backups/blog/db-$(date +%F).sql.gz >/dev/null
sudo tar czf /var/backups/blog/files-$(date +%F).tar.gz -C /var/www/blog wp-content
Bunu hər gecə işləyəcək şəkildə planlaşdırın və başqa yerə köçürün. Wolkra-da avtomatik gündəlik server ehtiyat nüsxələri (server qiymətinin 20%-i, 7 bərpa nöqtəsi) əlavə edin və böyük yeniləmələrdən əvvəl snapshot götürün. Bax: ehtiyat nüsxə strategiyası bələdçisi.
11. Əsas təhlükəsizliyi gücləndirin
- SSH-ı yalnız açarlarla saxlayın və ƏS-i yenilənmiş saxlayın (Ubuntu serverini qorumaq).
- Plagin vasitəsilə WordPress administratorları üçün iki faktorlu girişi aktiv edin.
- Paneldə fayl redaktəsini söndürün:
sudo -u www-data wp config set DISALLOW_FILE_EDIT true --raw
- Plagin və ya Fail2ban ilə giriş cəhdlərini məhdudlaşdırın.
12. E-poçtu etibarlı göndərin
WordPress parol bərpası, şərh bildirişləri və sifariş məktublarını defolt olaraq PHP-nin mail() funksiyası ilə göndərir və onlar çox vaxt spam-a düşür. SMTP plagini və düzgün poçt provayderindən istifadə edin, provayderin təsvir etdiyi kimi domeniniz üçün SPF və DKIM qeydləri əlavə edin. Server poçtu özü göndərirsə, konsolda onun IP-si üçün reverse DNS-i serverin hostname-inə təyin edin; bax: IP ünvanları.
13. Hər şeyin işlədiyini yoxlayın
Quraşdırmadan sonra qısa yoxlama:
curl -I https://blog.example.com
sudo -u www-data wp --path=/var/www/blog core verify-checksums
sudo -u www-data wp --path=/var/www/blog cron event list
systemctl status caddy php8.3-fpm mariadb --no-pager
verify-checksums əsas faylları rəsmi buraxılışla müqayisə edir və sonradan dəyişiklikləri aşkarlamağın da sürətli yoludur.
Ölçü və böyümə
Bir neçə həftə konsol qrafiklərində yaddaşı və CPU-nu izləyin. PHP worker-ləri çatışmırsa, /etc/php/8.3/fpm/pool.d/www.conf faylında pm.max_children dəyərini artırın və ya serveri daha böyük plana keçirin. Bütün Wolkra planlarında trafik ölçülmür, ona görə işlək ay hesabı artırmır. Saytları bu yolla işlətmək haqqında ətraflı: WordPress hostinqi.
Tez-tez verilən suallar
WordPress üçün VPS paylaşılan hostinqdən yaxşıdırmı?
VPS sizə öz resurslarınızı, PHP və keşləmə üzərində tam nəzarəti verir, eyni hesabda səs-küylü qonşular olmur. Bununla yanaşı, paylaşılan hostinqin sizin üçün gördüyü yeniləmələr və təhlükəsizlik də sizin üzərinizə düşür.
VPS-də WordPress-ə nə qədər yaddaş lazımdır?
Verilənlər bazası olan tək sayt diqqətlə qurulsa 1 GB-da işləyir. 2 GB daha rahatdır, WooCommerce ilə işlək mağazalar isə çox vaxt 4 GB tələb edir.
Niyə Nginx və ya Apache əvəzinə Caddy?
Caddy HTTPS sertifikatlarını özü alır və yeniləyir, cəmi bir neçə sətir konfiqurasiya tələb edir. Nginx və Apache də eyni dərəcədə yaxşı işləyir, lakin daha çox quraşdırma tələb edir.
WordPress-i əvvəlcədən quraşdırılmış ala bilərəmmi?
Bəli. Wolkra-nın WordPress bir kliklə tətbiqi Caddy, PHP, MariaDB və WP-CLI-ı sizin üçün qurur və server açıldıqdan bir neçə dəqiqə sonra hazır olur.
WordPress-in ehtiyat nüsxəsini necə çıxarmalı?
Həm verilənlər bazasının, həm də wp-content qovluğunun ehtiyat nüsxəsini çıxarın. Hər gecə WP-CLI ilə verilənlər bazasının ixracı və faylların nüsxəsi, serverdən kənarda saxlanılmaqla, kifayətdir.