Datoteka, wp-config.php, je ključna za funkcionisanje kompletnog WordPress sajta. Bitna stvar kod nje je što sadrži informacije o bazi podataka, korisniku baze, lozinke i postavke hostinga. Koristi se za upravljanje sigurnošću i performansama sajta.
Gde se nalazi wp-config.php?
Ako ste kod vaše prve instalacije WordPressa radili to ručnim putem, ovo je pitanje koje ste verovatno postavili (sebi, Google-u, kolegi ili koleginici…). Podrazumevano, ova datoteka ne nalazi se pod ovim imenom u instalacijskom paketu. Kada se raspakuje paket namenjen za instalaciju WordPressa u njemu se može pronaći samo wp-config-sample.php i to je buduća wp-config.php datoteka.
Izmenama u wp-config.sample.php nastaje wp-config.php (preimenovanje je neophodno). Na naznačenim mestima treba uneti ime baze podataka, ime korisnika baze i lozinku.
Ovaj postupak obavlja se jedino kod ručne instalacije WordPressa i ako se koristi automatizovana metoda (Adriahost nudi Softaculous aplikaciju u cPanelu) ručno unošenje podataka nije potrebno. Jednom kada je instalacija izvršena na bilo koji od pomenutih načina, može se pristupiti dodatnom postavljanju. U ovom tekstu možete pronaći kako i šta još dodatno može biti omogućeno, ograničeno ili olakšano izmenom wp-config.php datoteke.
1. Uključivanje debagovanja (engl. Debug) u WordPressu
Kada nastupe problemi, WordPress Debuging može pomoći. Debagovanje se uključuje dodavanjem sledećih linija koda u wp-config.php:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', false ); //define( 'WP_DEBUG_DISPLAY', true ); define( 'WP_DEBUG_LOG', true );
Na ovaj način aktivara se zadatak za beleženje i stvaranje Log datoteke koja će biti smeštena u wp-content direktorijumu.
2. Izmena URL-a veb-sajta i WordPressa
URL veb-sajta i WordPressa može biti izmenjen dodavanjem sledećih linija koda u wp-config.php:
define('WP_SITEURL', 'http://www.domen.rs'); define('WP_HOME', 'http://www.domen.rs');
Ovo je korisno kod migracije sajta na novi URL jer se na ovaj način zaobilaze (override) vrednosti definisane u wp-options tabeli.
Drugi način je korišćenje SERVER varijable koja će postaviti ove vrednosti dinamički:
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] ); define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] );
3. Uvećanje (umanjenje) PHP memorije
PHP memorija (njen limit) može biti uvećana ako dodate sledeći kod u wp-config.php:
define( 'WP_MEMORY_LIMIT', '64M' );
Umesto 64 unesite vrednost izraženu u megabajtima koja vam odgovara.
4. Izmena Trash Box tajminga
Podrazumevano, kada korisnik obriše članak, stranicu ili komentar, šalje ih u Trash Box gde ih WordPress briše nakon 30 dana. Za izmenu ovog perioda treba dodati sledeći kod:
define( 'EMPTY_TRASH_DAYS', 15 );
Umesto 15 treba staviti vremenski period. Broj označava dane i u primeru iznad stoji da će Trash Box biti ispražnjen 15 dana nakon brisanja određenih stavki. Ukoliko se na to mesto upiše 0 (nula), Trash Box će biti isključen.
5. Isključivanje automatskog ažuriranja WordPressa
Od verzije 3.7, postoji automatsko ažuriranje za core izdanja i prevode. Ova opcija se može isključiti dodavanjem sledeće linije u wp-config.php:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
6. Revizije u WordPressu – Upravljanje Autosave intervalima
Tokom uređivanja tekstova WordPress automatski čuva revizije (kopije u trenutku pregleda). Podrazumevano, revizija nastupa svakih 60 sekundi, ali to može biti promenjeno na sledeći način dodavanjem:
define( 'AUTOSAVE_INTERVAL', 180 );
180 u primeru iznad je broj sekundi.
Ako dodate sledeći red odredićete maksimalni broj revizija koje će WordPress čuvati:
define('WP_POST_REVISIONS', 7);
Revizije se mogu i isključiti dodavanje sledećeg koda (nije preporučljivo):
define('WP_POST_REVISIONS', false)
7. FTP/SSH akreditivi
Neki hostovi zahtevaju FTP ili SSH akreditive za svako ažuriranje ili instalaciju bilo čega na WordPressu. Akreditive možete uneti kao:
define('FS_METHOD', 'ftpext'); //absolute path to root installation directory define('FTP_BASE', '/path/to/wordpress/'); //absolute path to "wp-content" directory define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); //absolute path to "wp-plugins" directory define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); //absolute path to your SSH public key define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); //absolute path to your SSH private key define('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); //either your FTP or SSH username define('FTP_USER', 'username'); //password for FTP_USER username define('FTP_PASS', 'password'); //hostname:port combo for your SSH/FTP server define('FTP_HOST', 'ftp.example.org:21');
Takođe se može forsirati direktni metod ubacivanjem sledeće linije u wp-config.php:
define('FS_METHOD', 'direct');
8. Automatsko popravljanje baze podataka
Baza podataka u određenim uslovima može postati korumpirana. To može izazvati problem zbog kog nećete moći ni da se prijavite na kontrolnu tablu. Ako se to desi, unesite sledeći kod u wp-config.php:
define('WP_ALLOW_REPAIR', true);
Nakon toga posetite sledeću adresu:
{ADRESA-SAJTA}/wp-admin/maint/repair.php
Kada se popravka izvrši, možete ukloniti prethodno dodati red iz wp-config.php datoteke.
9. Zabrana izmena datoteka iz bekenda
Za zabranu uređivanja datoteka tema i dodataka iz uređivača koda koji se nalazi u WordPressovoj kontrolnoj tabli uneti sledeći red u wp-config.php:
define('DISALLOW_FILE_EDIT', TRUE);
10. Postavljanje podrazumevajuće teme
Ako često koristite jednu osnovnu temu za izradu veb-sajtova (možda ste freelancer ili radite u agenciji za veb-dizajn) svojih klijenata, bilo bi dobro kada ne biste morali kod svaka nove instalacije da menjate “Twenty-Nešto” u temu koju vi koristite. Evo kako možete unapred postaviti podrazumevanu temu po izboru:
define( 'WP_DEFAULT_THEME', 'ime-foldera-podrazumevane-teme' );
Pošto wp-config.php ne postoji pre instalacije WordPressa, kod iznad se postavlja u wp-config-sample.php datoteci.
11. Preskakanje wp-content direktorijuma pri ažuriranju WordPressa
Za ovakvu akciju dovoljno je imati dva razloga – ne koristite podrazumevane teme i imate svoje teme. Takođe, kao treći razlog može doći i to da ne želite novu podrazumevanu temu kod sledećeg bitnog ažuriranja. Pošto je u WordPressu to lako, wp-content direktorijum može biti preskočen prilikom ažuriranja i to dodavanjem sledećeg koda u wp-config.php:
define( 'CORE_UPGRADE_SKIP_NEW_BUNDLED', true );
12. Dozvoljavanje nefiltriranog upload-a za Administratore
WordPress ima ograničenja kada je upload određenih tipova datoteka u pitanju. Podrazumevano, ne može se uploadovati ništa osim dokumenata, slika i video snimaka. To je dobro, ali ako razvijate softver kojeg niko drugi trenutno nema, dobro je imati mogućnosti da ga postavite na svoj sajt. Dodajte sledeći kod:
define( 'ALLOW_UNFILTERED_UPLOADS', true );
Ovaj kod uklanja ograničenja samo za Administratore.
13. Dinamički WPLANG kod višejezičnih sajtova
Ako vodite višejezični sajt i želite mogućnost premene jezika teme i administrativnog panela, možete upotrebiti kod za detektovanje jezika iz posetiočevog pregledača interneta. Na osnovu tog podataka biće definisan i WPLANG.
Najpre napravite wp-lang.php datoteku, ubacite u nju kod koji vidite ispod i sačuvajte je u istom direktorijumu gde se nalazi i wp-config.php:
?php // start the session session_start(); // if there's a "lang" parameter in the URL... if( isset( $_GET[ 'lang' ] ) ) { // ...set a session variable named WPLANG based on the URL parameter... $_SESSION[ 'WPLANG' ] = $_GET[ 'lang' ]; // ...and define the WPLANG constant with the WPLANG session variable define( 'WPLANG', $_SESSION[ 'WPLANG' ] ); // if there isn't a "lang" parameter in the URL... } else { // if the WPLANG session variable is already set... if( isset( $_SESSION[ 'WPLANG' ] ) ) { // ...define the WPLANG constant with the WPLANG session variable define( 'WPLANG', $_SESSION[ 'WPLANG' ] ); // if the WPLANG session variable isn't set... } else { // set the WPLANG constant to your default language code is define( 'WPLANG', 'sr_RS' ); } } ?
Nakon toga otvorite wp-config.php i liniju u kojoj je definisan wplang zamenite sledećim kodom:
require_once( dirname( __FILE__ ) . '/wp-lang.php' );
Posetioci će onda moći da menjaju jezik teme i admin panela bilo da je to urađeno automatski ili klikom na lang=sr_RS
URL parametar.
14. Pomeranje wp-config.php datoteke na drugu lokaciju
WordPress automatski pretražuje jedan nivo iznad od onog na kome je instaliran. Ako je vaš WordPress instaliran u web root-u možete pomeriti wp-config.php jedan nivo na gore (teže pristupnu lokaciju) i nećete morati ništa da menjate.
Međutim, wp-config.php se može postaviti bilo gde. Može se napraviti druga wp-config.php datoteka u root direktorijumu koja pokazuje na “pravu” wp-config.php datoteku:
/** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/');
/** Location of your WordPress configuration. */ require_once(ABSPATH . '../putanja/wp-config.php');
Obavezno promenite putanju iz koda iznad tako da ukazuje na lokaciju sa vašom datotekom.
15. WordPress Multisite mreža – WPMU
U ranijem tekstu pisali smo o postavljanju WPMU sajta. Kompletne postavke i uputstva pogledajte ovde: Kako da instalirate WordPress Multisite na AdriaHost serveru
Kod koji se dodaje u wp-config.php na početku aktivacije izgleda ovako:
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
16. Uključivanje nativnog keširanja u WordPressu
Native Cache može biti uključeno dodavanje sledećeg koda u wp-config.php:
define (‘WP_CACHE’, true);
Obavezno je bekapovanje pre uređivanja
Pre uređivanja i dodavanja bilo kakvih redova koda u wp-config.php datoteku obavezno napraviti njenu kopiju i sačuvati je na sigurnoj lokaciji. Na taj način izbegate mogućnost greške i imate spremno rešenje ukoliko nešto krene po lošem. Ukoliko posedujete demo sajt izvršite testiranje svih kodova koje želite da postavite pre nego što ih upotrebite na javnom sajtu.
Hosting sajt koji objasnjava wp-config trikove, a nigde nema red za DB_HOST liniju 😀
Pozdrav Aleksa, koji trik predlažete za DB_HOST? 🙂
Pa izgleda da nema nijedan trick, ali mislim da bi bilo lepo da se ubaci red koji će reći da je
define( ‘DB_HOST’, ‘localhost’ ); ispravna linija za vaš hosting i da neko ko misli da mu zbog toga ne radi sajt može na ovom postu da pronadje taj deo sa ctrl+f opcijom,
pošto verujem da ljude može zbuniti kako to da je host lokalan ako recimo se prebacuje sajt sa svog računara i localhosta na vaš hosting, logično bi bilo da se i taj deo menja, ali ispade da je ok.
Pozdrav!