Ajaaksesi WordPressiä VPS-palvelimella asenna web-palvelin (tässä Caddy), PHP-FPM WordPressin tarvitsemine laajennuksineen ja MariaDB; luo tietokanta ja käyttäjä; lataa WordPress WP-CLI:llä; ja osoita verkkotunnus palvelimeen, jotta Caddy voi ottaa HTTPS:n käyttöön. Ubuntu 24.04:ssä koko asennus vie noin 20 minuuttia.
Jos haluat ohittaa käsityön, Wolkran WordPress-sovellus yhdellä klikkauksella asentaa saman kokonaisuuden automaattisesti. Tämä opas näyttää, mitä pinnan alla tapahtuu, jotta voit ylläpitää ja korjata sitä itse.
Ennen kuin aloitat
- Palvelin, jossa on Ubuntu 24.04 (Debian 12 toimii samoilla vaiheilla), suositeltu muisti 2 GB.
- Ensimmäiset askeleet tehtynä: päivitykset, sudo-käyttäjä, SSH-avaimet.
- Verkkotunnus, jonka A-tietue (ja AAAA, jos käytät IPv6:ta) osoittaa palvelimeen. Tässä oppaassa:
blog.example.com. - Portit 80 ja 443 avattuina UFW:ssä ja mahdollisessa pilvipalomuurissa.
sudo ufw allow 80,443/tcp
1. Asenna PHP ja MariaDB
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 asentaa PHP 8.3:n; Debian 12 asentaa PHP 8.2:n. Tarkista, kumpi sinulla on:
php -v
ls /run/php/
Pane merkille socketin nimi, kuten php8.3-fpm.sock. Tarvitset sitä vaiheessa 5.
2. Suojaa MariaDB ja luo tietokanta
sudo mariadb-secure-installation
Hyväksy oletukset: säilytä rootin unix socket -tunnistautuminen, poista anonyymit käyttäjät ja testitietokanta.
Luo WordPressille tietokanta ja käyttäjä:
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
Tallenna salasana; WP-CLI tarvitsee sitä pian.
3. Asenna Caddy
Caddy ylläpitää virallista Debian/Ubuntu-pakettivarastoa:
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. Asenna WP-CLI ja lataa WordPress
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
Luo sivuston hakemisto ja anna PHP-käyttäjän omistaa se:
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="<sähköpostiosoitteesi>" \
--prompt=admin_password
Vaikeasti arvattava ylläpitäjän käyttäjänimi vaikeuttaa arvaushyökkäyksiä. --prompt kysyy salasanaa sen sijaan, että se jäisi komentohistoriaasi.
5. Määritä Caddy
Korvaa /etc/caddy/Caddyfile seuraavalla:
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"
}
}
Käytä omaa PHP-socketisi nimeä. Sen jälkeen:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Caddy pyytää varmenteen ensimmäisen pyynnön yhteydessä. Avaa https://blog.example.com/wp-admin/ ja kirjaudu sisään. Lisää vaihtoehtoja on Caddy-käänteisvälityspalvelimen oppaassa.
6. Säädä PHP:tä
Oletusarvot ovat pieniä medialatauksille. Luo tiedosto /etc/php/8.3/fpm/conf.d/99-wordpress.ini (säädä versio):
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 pitää käännetyn PHP:n muistissa ja on suurin ilmainen nopeusetu.
7. Lisää välimuisti
Useimmille blogeille sivuvälimuistilisäosa riittää. Vilkkaammille sivustoille lisää Redis objektivälimuistiksi:
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 kuuntelee oletuksena vain localhostia. Pidä se niin.
8. Aja WordPressin cron järjestelmästä
WordPress käynnistää ajastetut tehtävät sivunkatselujen yhteydessä, mikä on epäluotettavaa hiljaisilla sivustoilla ja tuhlailevaa vilkkailla. Käytä sen sijaan oikeaa cron-tehtävää:
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. Pidä se ajan tasalla
Useimmat WordPress-murrot tapahtuvat vanhentuneiden lisäosien kautta. Päivitä viikoittain tai automatisoi:
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
Poista lisäosat ja teemat, joita et käytä. Jokainen niistä on koodia, jossa voi olla aukko.
10. Varmuuskopioi
Tarvitset kaksi asiaa: tietokannan ja wp-content-kansion.
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
Ajasta tämä joka yö ja kopioi tulos muualle. Wolkrassa voit lisätä automaattiset päivittäiset palvelinvarmuuskopiot (20 % palvelimen hinnasta, 7 palautuspistettä) ja ottaa tilannevedoksen ennen suuria päivityksiä. Katso varmuuskopiointistrategian opas.
11. Kovenna perusasiat
- Pidä SSH pelkästään avainten varassa ja käyttöjärjestelmä päivitettynä (Ubuntu-palvelimen suojaaminen).
- Ota WordPressin ylläpitäjille käyttöön kaksivaiheinen kirjautuminen lisäosalla.
- Poista tiedostojen muokkaus käytöstä hallintapaneelissa:
sudo -u www-data wp config set DISALLOW_FILE_EDIT true --raw
- Rajoita kirjautumisyrityksiä lisäosalla tai Fail2banilla.
12. Lähetä sähköpostit luotettavasti
WordPress lähettää salasanan palautukset, kommentti-ilmoitukset ja tilausviestit oletuksena PHP:n mail()-funktiolla, jolloin ne päätyvät usein roskapostiin. Käytä SMTP-lisäosaa ja kunnollista sähköpostipalvelua ja lisää verkkotunnuksellesi SPF- ja DKIM-tietueet palveluntarjoajan ohjeiden mukaan. Jos palvelin lähettää postia itse, aseta konsolissa sen IP-osoitteen käänteiseksi DNS:ksi palvelimen isäntänimi; katso IP-osoitteet.
13. Tarkista, että kaikki toimii
Nopea terveystarkistus asennuksen jälkeen:
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 vertaa ydintiedostoja viralliseen julkaisuun ja on myös nopea tapa havaita myöhemmin tiedostoihin tehdyt luvattomat muutokset.
Mitoitus ja kasvu
Seuraa muistia ja suoritinta konsolin kaavioista muutaman viikon ajan. Jos PHP-workerit loppuvat kesken, kasvata pm.max_children-arvoa tiedostossa /etc/php/8.3/fpm/pool.d/www.conf tai vaihda palvelin isompaan pakettiin. Liikenne on mittaamatonta kaikissa Wolkran paketeissa, joten vilkas kuukausi ei nosta laskua. Lisää tällaisesta sivustojen ylläpidosta kerrotaan sivulla WordPress-hosting.
Usein kysytyt kysymykset
Onko VPS parempi kuin jaettu webhotelli WordPressille?
VPS antaa sinulle omat resurssit, täyden hallinnan PHP:hen ja välimuistiin eikä samalla tilillä ole meluisia naapureita. Toisaalta vastaat itse päivityksistä ja tietoturvasta, jotka jaettu webhotelli hoitaa puolestasi.
Kuinka paljon muistia WordPress tarvitsee VPS-palvelimella?
Yksi sivusto tietokantoineen toimii huolellisesti 1 GB:llä. 2 GB on mukavampi, ja vilkkaat WooCommerce-kaupat tarvitsevat usein 4 GB.
Miksi käyttää Caddyä Nginxin tai Apachen sijaan?
Caddy hankkii ja uusii HTTPS-varmenteet itse ja tarvitsee vain muutaman rivin asetuksia. Nginx ja Apache toimivat yhtä hyvin, mutta vaativat enemmän määrittelyä.
Saanko WordPressin valmiiksi asennettuna?
Kyllä. Wolkran WordPress-sovellus yhdellä klikkauksella asentaa puolestasi Caddyn, PHP:n, MariaDB:n ja WP-CLI:n, ja se on valmis muutama minuutti palvelimen käynnistymisen jälkeen.
Miten varmuuskopioin WordPressin?
Varmuuskopioi sekä tietokanta että wp-content-kansio. Öinen tietokantavienti WP-CLI:llä ja tiedostokopio palvelimen ulkopuolelle tallennettuna riittävät.