Vodič za WordPress wp-config.php

Šta je wp-config.php
Fajl wp-config.php je jedan od najvažnijih fajlova u WordPress instalaciji jer sadrži konfiguraciju koja kontroliše kako WordPress komunicira sa bazom podataka, upravlja bezbednošću, obrađuje greške i alocira sistemske resurse. Ovaj fajl se kreira tokom instalacije WordPress-a i nalazi se u root direktorijumu sajta. Za razliku od podešavanja u admin panelu koja se čuvaju u bazi podataka, wp-config.php podešavanja se primenjuju pre nego što WordPress uopšte uspostavi vezu sa bazom.
Razumevanje wp-config.php je esencijalno za svakog ko ozbiljno upravlja WordPress sajtom. Pravilna konfiguracija ovog fajla može značajno poboljšati performanse, bezbednost i stabilnost sajta. Greške u wp-config.php mogu učiniti sajt potpuno nedostupnim jer se fajl učitava pre svega ostalog. U ovom vodiču prolazimo kroz svako važno podešavanje sa objašnjenjem šta radi, koje vrednosti koristiti i kada ga menjati.
Podešavanja baze podataka
Osnovne konstante
DB_NAME definiše ime baze podataka koju WordPress koristi. Ovo ime se kreira na hosting kontrolnom panelu ili kroz MySQL komandnu liniju pre instalacije WordPress-a. DB_USER je korisničko ime za pristup bazi podataka sa dovoljnim privilegijama za čitanje i pisanje. DB_PASSWORD je lozinka za tog korisnika koja treba da bude jaka i jedinstvena. Nikada ne koristite root korisnika za WordPress jer to predstavlja bezbednosni rizik.
DB_HOST je adresa servera baze podataka koja je obično localhost kada su web server i baza na istom serveru. Na nekim hosting platformama ova vrednost može biti različita poput IP adrese ili socket putanje. DB_CHARSET definiše karakter set baze i treba da bude utf8mb4 koji podržava sve Unicode karaktere uključujući emotikone. DB_COLLATE definiše pravila za sortiranje i poređenje teksta i obično se ostavlja prazan da bi MySQL koristio podrazumevani collation za izabrani charset.
Table prefix
Konstanta table_prefix definiše prefiks za sve WordPress tabele u bazi podataka. Podrazumevana vrednost je wp_ ali se preporučuje promena na nešto jedinstveno poput abc123_ tokom instalacije. Ovo je osnovna bezbednosna mera koja otežava SQL injection napade jer napadač ne može pretpostaviti imena tabela. Promena prefiksa nakon instalacije je moguća ali zahteva pažljivo preimenovanje svih tabela i ažuriranje referenci u opcijama i korisničkim metapodacima.
Bezbednosni ključevi i soli
Šta su bezbednosni ključevi
WordPress koristi osam bezbednosnih konstanti AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY i njihove odgovarajuće SALT varijante. Ovi ključevi se koriste za šifrovanje informacija sačuvanih u kolačićima korisnika. Bez ovih ključeva sesije korisnika bi bile ranjive na presretanje i kradu identiteta. Svaki ključ treba da bude jedinstven, dug i nasumičan sa kombinacijom slova, brojeva i specijalnih karaktera.
WordPress pruža online generator na api.wordpress.org/secret-key koji generiše osam nasumičnih ključeva spremnih za kopiranje u wp-config.php. Preporučuje se periodična promena ključeva posebno nakon bezbednosnog incidenta jer promena invalidira sve postojeće sesije i prisiljava sve korisnike da se ponovo prijave. Ovo je efikasan način da se trenutno odjavite svi korisnici uključujući potencijalnog napadača koji je kompromitovao administratorski nalog.
Pravilna implementacija
Kopirajte generisane ključeve i zamenite placeholder vrednosti u wp-config.php. Svaki ključ mora biti jedinstven i nikada ne koristite iste ključeve na dva različita sajta. Ako migrirate sajt na novi server kopirajte ključeve iz starog wp-config.php da korisnici ne bi morali ponovo da se prijavljuju. Čuvajte bekup ključeva na sigurnom mestu jer njihov gubitak ne pravi trajnu štetu ali zahteva ponovnu prijavu svih korisnika.
Debug mod
WP_DEBUG
Konstanta WP_DEBUG kontroliše da li WordPress prikazuje PHP greške, upozorenja i obaveštenja. Podrazumevana vrednost je false što sakriva sve greške od posetilaca. Postavljanje na true aktivira prikaz grešaka i korisno je tokom razvoja ili dijagnostikovanja problema. Na produkcijskom sajtu WP_DEBUG nikada ne treba da bude true jer prikazivanje grešaka posetiocima otkriva informacije o strukturi sajta koje napadač može iskoristiti.
WP_DEBUG_LOG
Kada je WP_DEBUG_LOG postavljen na true WordPress zapisuje sve greške u fajl wp-content/debug.log umesto da ih prikazuje na ekranu. Ovo je idealno za produkcijske sajtove gde želite da pratite greške bez prikazivanja posetiocima. Možete definisati prilagođenu putanju sa WP_DEBUG_LOG postavljenim na apsolutnu putanju do log fajla. Redovno pregledajte log fajl i obrišite ga kada poštane prevelik jer može zauzeti značajan prostor na disku.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY kontroliše da li se greške prikazuju na HTML stranici. Postavite na false u kombinaciji sa WP_DEBUG true i WP_DEBUG_LOG true da bi se greške beležile u log fajl ali ne prikazivale posetiocima. SCRIPT_DEBUG kada je postavljen na true tera WordPress da koristi nekompresovane verzije CSS i JavaScript fajlova što je korisno za razvoj tema i plugina ali usporava sajt u produkciji.
Memorijski limit
WP_MEMORY_LIMIT
WP_MEMORY_LIMIT definiše maksimalnu količinu PHP memorije koju WordPress može koristiti za obradu zahteva na frontend-u. Podrazumevana vrednost je 40M za standardne instalacije i 64M za Multisite. Za sajtove sa mnogo plugina, velikim medijskim bibliotekama ili WooCommerce-om preporučuje se povećanje na 128M ili 256M. Ova vrednost ne može premašiti PHP memory_limit postavku na serveru jer WordPress ne može zahtevati više memorije nego što PHP dozvoljava.
WP_MAX_MEMORY_LIMIT
WP_MAX_MEMORY_LIMIT definiše memorijski limit za administratorski panel koji obično zahteva više memorije od frontend-a zbog procesiranja slika, ažuriranja i upravljanja sadržajem. Podrazumevana vrednost je 256M. Ako dobijate greške poput Allowed memory size exhausted u admin panelu povećajte ovu vrednost. Obratite pažnju da previsok memorijski limit može maskirati problem sa memorijskim curenjem u pluginu ili temi umesto da ga reši.
Napredne konstante
Autosave i revizije
AUTOSAVE_INTERVAL definiše interval u sekundama između automatskog čuvanja postova u editoru. Podrazumevana vrednost je 60 sekundi. Smanjivanje na 30 sekundi pruža češće bekupe sadržaja tokom pisanja ali povećava broj zahteva ka serveru. WP_POST_REVISIONS kontroliše koliko revizija se čuva za svaki post. Podrazumevano WordPress čuva neograničen broj revizija što može napuniti bazu podataka na sajtovima sa mnogo sadržaja. Postavite na konkretan broj poput 5 ili 10 za razuman kompromis između bezbednosti sadržaja i veličine baze.
Korpa za otpadke
EMPTY_TRASH_DAYS definiše koliko dana se obrisani sadržaj čuva u korpi za otpadke pre trajnog brisanja. Podrazumevana vrednost je 30 dana. Smanjite na 7 dana ako želite da automatski čistite obrisani sadržaj brže. Postavite na 0 da potpuno onemogućite korpu za otpadke što znači da se sadržaj briše trajno odmah. Ovo se ne preporučuje jer ne postoji mogućnost oporavka slučajno obrisanog sadržaja.
Automatska ažuriranja
WP_AUTO_UPDATE_CORE kontroliše automatska ažuriranja WordPress jezgra. Vrednost true omogućava sva ažuriranja uključujući major verzije, minor omogućava samo minor bezbednosna ažuriranja što je podrazumevano, a false potpuno onemogućava automatska ažuriranja. AUTOMATIC_UPDATER_DISABLED postavljeno na true onemogućava sve automatske procese ažuriranja uključujući plugine i teme koji imaju opciju automatskog ažuriranja.
SSL i URL-ovi
FORCE_SSL_ADMIN postavljen na true prisiljava korišćenje HTTPS za prijavljivanje i admin panel. Saznajte više o podešavanju SSL sertifikata. Ovo je obavezno na svakom sajtu koji ima SSL sertifikat jer štiti kredencijale administratora od presretanja. WP_HOME i WP_SITEURL definišu URL sajta i mogu biti korisni pri migraciji sajta na novu adresu. Ove konstante imaju prioritet nad podešavanjima u bazi podataka što znači da ih možete koristiti za brzu promenu URL-a bez pristupa admin panelu.
Cron i zakazani zadaci
WordPress koristi wp-cron sistem za zakazane zadatke poput objavljivanja planiranih postova, provere ažuriranja i slanja email obaveštenja. WP-cron se pokreće pri svakoj poseti sajtu što nije idealno za sajtove sa niskim ili veoma visokim saobraćajem. DISABLE_WP_CRON postavljeno na true onemogućava ovaj sistem i zahteva konfiguraciju system cron-a koji pokreće wp-cron.php u redovnim intervalima obično svakih 5 ili 15 minuta.
ALTERNATE_WP_CRON koristi alternativni metod pokretanja zakazanih zadataka koji je pouzdaniji na nekim hosting okruženjima. WP_CRON_LOCK_TIMEOUT definiše vreme u sekundama koliko se wp-cron zaključava da bi sprečio istovremeno pokretanje više instanci. Na BeoHosting-u naši hosting paketi podržavaju system cron koji je pouzdaniji od WordPress-ovog internog cron sistema i možemo ga konfigurisati za vaš sajt.
Bezbednosne konstante
Zaštita fajl sistema
DISALLOW_FILE_EDIT postavljeno na true onemogućava ugrađeni editor tema i plugina u admin panelu. Ovo je važna bezbednosna mera jer ako napadač kompromituje administratorski nalog ne može koristiti editor za ubacivanje malicioznog koda u fajlove tema ili plugina. DISALLOW_FILE_MODS ide korak dalje i onemogućava instalaciju i ažuriranje tema i plugina kroz admin panel, forsirajući sve promene da se rade kroz FTP ili SSH.
Premestanje wp-config.php jedan direktorijum iznad root-a sajta je moguće jer WordPress automatski traži fajl u parent direktorijumu. Ovo sprečava direktan pristup fajlu kroz web pregledač u slučaju da PHP prestane da radi i server počne da servira PHP fajlove kao tekst. Kombinacija ovih mera sa pravilnim fajl dozvolama 644 za wp-config.php ili čak 440 na serverima gde web server korisnik ima pristup značajno poboljšava bezbednost.
Optimizacija performansi
Keširanje i kompresija
WP_CACHE postavljeno na true aktivira mehanizam za napredne keš plugine poput WP Super Cache ili W3 Total Cache. Ova konstanta omogućava učitavanje advanced-cache.php fajla koji keš plugin kreira za obradu zahteva pre nego što WordPress učita sve plugine i temu. Bez ove konstante keš plugini ne mogu raditi optimalno. Kompresija sadržaja sa define COMPRESS_CSS true i define COMPRESS_SCRIPTS true može smanjiti veličinu CSS i JavaScript fajlova.
Baza podataka
SAVEQUERIES postavljena na true beleži sve upite ka bazi podataka i vreme izvršavanja u globalnu promenljivu wpdb queries. Ovo je korisno za dijagnostikovanje sporog sajta jer možete identifikovati upite koji traju predugo ili se nepotrebno ponavljaju. Nikada ne ostavljajte ovo uključeno na produkciji jer čuvanje svih upita u memoriji povećava potrošnju resursa. Koristite samo privremeno za analizu performansi u kombinaciji sa pluginom poput Query Monitor.
Zaključak
Fajl wp-config.php je kontrolni centar WordPress instalacije koji definiše ponašanje sajta na fundamentalnom nivou. Pravilna konfiguracija bezbednosnih ključeva, debug moda, memorijskih limita i naprednih konstanti može značajno poboljšati bezbednost, performanse i stabilnost sajta. Redovno pregledajte i ažurirajte podešavanja u skladu sa rastom sajta i promenama u infrastrukturi. Na BeoHosting-u naš tim može pomoći sa optimizacijom wp-config.php podešavanja za maksimalne performanse na našoj hosting platformi.
BeoHosting Tim
10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Poslednje ažurirano: