Kako instalirati WordPress na Ubuntu uz Nginx
U ovom vodiču proći ćemo kroz cijeli proces — od potpuno svježeg Ubuntu poslužitelja do funkcionalne WordPress stranice. Korak po korak ćemo instalirati i konfigurirati Nginx kao web poslužitelj, PHP 8.3-FPM za obradu zahtjeva, MySQL za bazu podataka, te na kraju dodati besplatni Let’s Encrypt SSL certifikat.
📋 Sadržaj
Prije nego počnete
Provjerite imate li sve potrebno prije nego krenete s instalacijom:
| Preduvjet | Detalji |
|---|---|
| Ubuntu poslužitelj | 22.04 LTS ili 24.04 LTS (preporučuje se svježa instalacija) |
| Root / Sudo pristup | Korisnik koji nije root, ali ima sudo privilegije |
| Domena | Usmjerena na IP adresu vašeg poslužitelja (A zapis) |
| RAM memorija | Minimalno 1 GB (preporučuje se 2 GB+ za produkciju) |
Sve naredbe treba pokretati kao sudo korisnik, ne kao root. Koristite prefiks sudo gdje je naznačeno.
Ažuriranje Ubuntua i paketa
Uvijek počnite s potpuno ažuriranim sustavom. Time osiguravate najnovije sigurnosne zakrpe i verzije paketa prije instalacije bilo čega novog.
# Osvježavanje popisa paketa sudo apt update # Nadogradnja svih instaliranih paketa sudo apt upgrade -y # Instalacija korisnih alata sudo apt install -y curl wget unzip git
Ako je primijenjena nadogradnja kernela, restart poslužitelja je preporučen:
sudo reboot
Nakon ponovnog pokretanja, spojite se ponovo putem SSH-a i nastavite s idućim korakom.
Instalacija i konfiguracija Nginxa
Nginx je visokoučinkovit web poslužitelj koji efikasno poslužuje statičke datoteke i prosljeđuje PHP zahtjeve prema PHP-FPM procesu.
# Instalacija Nginxa sudo apt install -y nginx # Pokretanje Nginxa i aktivacija pri pokretanju sustava sudo systemctl start nginx sudo systemctl enable nginx # Provjera statusa sudo systemctl status nginx
Otvaranje porta u vatrozidu
# Dopuštanje HTTP i HTTPS prometa sudo ufw allow 'Nginx Full' # Aktivacija UFW vatrozida ako još nije aktivan sudo ufw enable sudo ufw status
Posjetite IP adresu vašeg poslužitelja u pregledniku — trebali biste vidjeti zadanu Nginx dobrodošlicu stranicu.
Instalacija PHP-FPM i ekstenzija
WordPress je napisan u PHP-u, pa nam je potreban PHP-FPM (FastCGI Process Manager) zajedno s ekstenzijama koje WordPress zahtijeva.
# Dodavanje PHP PPA repozitorija za najnoviju verziju PHP-a sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/php -y sudo apt update # Instalacija PHP 8.3 i svih potrebnih WordPress ekstenzija sudo apt install -y php8.3-fpm php8.3-mysql php8.3-xml \ php8.3-mbstring php8.3-curl php8.3-zip php8.3-gd \ php8.3-intl php8.3-bcmath php8.3-imagick # Provjera instalacije php -v
Podešavanje PHP-FPM postavki
Otvorite PHP konfiguracijsku datoteku kako biste povećali limite za prijenos i memoriju:
sudo nano /etc/php/8.3/fpm/php.ini
Pronađite i ažurirajte ove vrijednosti:
upload_max_filesize = 64M post_max_size = 64M memory_limit = 256M max_execution_time = 300 max_input_time = 300
# Restart PHP-FPM za primjenu promjena
sudo systemctl restart php8.3-fpm
sudo systemctl enable php8.3-fpm
Instalacija MySQL poslužitelja
WordPress pohranjuje sav sadržaj — objave, stranice, korisnike i postavke — u MySQL bazu podataka.
# Instalacija MySQL poslužitelja sudo apt install -y mysql-server # Pokretanje i aktivacija MySQLa pri pokretanju sustava sudo systemctl start mysql sudo systemctl enable mysql # Pokretanje sigurnosne skripte sudo mysql_secure_installation
Skripta mysql_secure_installation postavit će vam nekoliko pitanja. Odgovorite Da na sva: postavite jaku root lozinku, uklonite anonimne korisnike, onemogućite udaljenu root prijavu i uklonite testnu bazu podataka.
Kreiranje WordPress baze podataka i korisnika
Prijavite se u MySQL i kreirajte namjensku bazu podataka i korisnika za WordPress. Nikada ne koristite root račun za vašu WordPress stranicu.
sudo mysql -u root -p
Unutar MySQL sučelja pokrenite ove SQL naredbe:
-- Kreiranje baze podataka CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- Kreiranje namjenskog korisnika (koristite jaku lozinku!) CREATE USER 'wp_korisnik'@'localhost' IDENTIFIED BY 'VasaJakaLozinka123!'; -- Dodjela svih privilegija na WordPress bazi GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_korisnik'@'localhost'; -- Primjena promjena i izlaz FLUSH PRIVILEGES; EXIT;
Zapišite naziv baze (wordpress_db), korisničko ime (wp_korisnik) i lozinku — trebat će vam u idućim koracima.
Preuzimanje i raspakivanje WordPressa
Preuzmite najnoviji WordPress paket izravno s službene stranice i premjestite ga u direktorij web poslužitelja.
# Prebacivanje u privremeni direktorij i preuzimanje WordPressa cd /tmp wget https://wordpress.org/latest.tar.gz # Raspakivanje arhive tar -xzf latest.tar.gz # Premještanje u web root (zamijenite vasadomena.hr) sudo mv wordpress /var/www/vasadomena.hr # Kreiranje direktorija za prijenos datoteka sudo mkdir -p /var/www/vasadomena.hr/wp-content/uploads
Konfiguracija wp-config.php datoteke
Kreirajte wp-config.php iz primjerne datoteke i unesite podatke o bazi podataka.
# Kopiranje primjerne konfiguracije sudo cp /var/www/vasadomena.hr/wp-config-sample.php \ /var/www/vasadomena.hr/wp-config.php # Otvaranje za uređivanje sudo nano /var/www/vasadomena.hr/wp-config.php
Ažurirajte ove redove s podacima vaše baze podataka:
define( 'DB_NAME', 'wordpress_db' ); define( 'DB_USER', 'wp_korisnik' ); define( 'DB_PASSWORD', 'VasaJakaLozinka123!' ); define( 'DB_HOST', 'localhost' ); define( 'DB_CHARSET', 'utf8mb4' );
Generiranje tajnih ključeva
Zamijenite privremene tajne ključeve svježim s WordPress.org API-ja:
# Dohvaćanje novih tajnih ključeva
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Kopirajte izlaz i zamijenite odgovarajuće retke u wp-config.php. Spremite i zatvorite datoteku.
Kreiranje Nginx server bloka
Kreirajte namjensku Nginx konfiguracijsku datoteku koja govori poslužitelju kako obrađivati zahtjeve za vašu domenu.
sudo nano /etc/nginx/sites-available/vasadomena.hr
Zalijepite ovaj kompletan server blok:
server {
listen 80;
listen [::]:80;
server_name vasadomena.hr www.vasadomena.hr;
root /var/www/vasadomena.hr;
index index.php index.html index.htm;
# WordPress lijepi permalinkovi
location / {
try_files $uri $uri/ /index.php?$args;
}
# Prosljeđivanje PHP zahtjeva prema PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Blokiranje pristupa skrivenim datotekama
location ~ /\. {
deny all;
}
# Predmemoriranje statičnih resursa
location ~* \.(jpg|jpeg|gif|png|svg|ico|css|js|woff2?)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
client_max_body_size 64M;
}
# Aktivacija stranice kreiranjem simboličke veze sudo ln -s /etc/nginx/sites-available/vasadomena.hr \ /etc/nginx/sites-enabled/ # Provjera sintakse konfiguracije sudo nginx -t # Ponovno učitavanje Nginxa sudo systemctl reload nginx
Postavljanje ispravnih dozvola datoteka
WordPress treba ispravno vlasništvo i dozvole kako bi mogao pisati u direktorije poput wp-content/uploads.
# Dodjela vlasništva Nginx korisniku sudo chown -R www-data:www-data /var/www/vasadomena.hr # Direktoriji: 755 sudo find /var/www/vasadomena.hr -type d -exec chmod 755 {} \; # Datoteke: 644 sudo find /var/www/vasadomena.hr -type f -exec chmod 644 {} \; # Zaštita wp-config.php datoteke sudo chmod 600 /var/www/vasadomena.hr/wp-config.php
Nikada ne postavljajte dozvole na 777 na produkcijskom poslužitelju — to je ozbiljan sigurnosni rizik koji daje pristup pisanju svim korisnicima.
Aktivacija SSL-a s Let’s Encrypt (Certbot)
Svaka stranica trebala bi koristiti HTTPS. Let’s Encrypt pruža besplatne certifikate, a Certbot automatizira cijeli proces instalacije i obnavljanja.
# Instalacija Certbota i Nginx dodatka sudo apt install -y certbot python3-certbot-nginx # Dohvaćanje i instalacija certifikata (zamijenite s vašom domenom) sudo certbot --nginx -d vasadomena.hr -d www.vasadomena.hr # Testiranje automatskog obnavljanja sudo certbot renew --dry-run
Certbot automatski ažurira vašu Nginx konfiguraciju za preusmjeravanje HTTP → HTTPS. Vaša stranica bit će dostupna na https://vasadomena.hr.
Certbot instalira sistemski timer koji automatski obnavlja certifikat prije isteka. Nakon početne postavke nije potrebna nikakva ručna akcija.
Dovršetak WordPress čarobnjaka za postavljanje
Teški dio je gotov! Otvorite preglednik i idite na:
https://vasadomena.hr/wp-admin/install.php
Čarobnjak za postavljanje provest će vas kroz završne korake:
- Odaberite jezik (Hrvatski je dostupan)
- Unesite naziv stranice i admin e-mail adresu
- Kreirajte sigurno admin korisničko ime i lozinku
- Kliknite “Instaliraj WordPress”
Nakon toga prijavite se u upravljačku ploču na https://vasadomena.hr/wp-admin. Vaša WordPress stranica je živa! 🎉
Preporučeni koraci nakon instalacije
- Instalirajte dodatak za predmemoriranje (npr. W3 Total Cache ili LiteSpeed Cache)
- Omogućite automatska ažuriranja za WordPress i dodatke
- Postavite automatske dnevne sigurnosne kopije baze podataka
- Instalirajte sigurnosni dodatak poput Wordfence
- Idite na Postavke → Permalinkovi i odaberite čistu URL strukturu
- Promijenite zadani URL za prijavu kako biste smanjili napade grubom silom
Ako vidite grešku 502 Bad Gateway, provjerite odgovara li putanja PHP-FPM socketa u Nginx konfiguraciji instaliranoj verziji. Pokrenite ls /run/php/ kako biste potvrdili ispravno ime socketa.