WordPress Configuratie Tricks
Veel WordPress gebruikers kennen het wp-config.php
bestand als de sleutel tot de WordPress database. Hier stel je de databasenaam, gebruikersnaam, wachtwoord en locatie in (naast andere dingen zoals beveiligingssleutels, databaseprefix en gelokaliseerde taal).
Hier is een screenshot van wp-config.php
(aka het WordPress configuratie bestand) voor degenen die er misschien nog niet mee bekend zijn:
Maar wat veel gebruikers niet weten is dat het wp-config.php
bestand kan worden gebruikt om een breed scala aan configuratie-instellingen op te geven, waardoor u de functionaliteit, prestaties en veiligheid van uw WordPress-aangedreven site kunt verbeteren. In dit artikel deel ik zoveel mogelijk van deze configuratietrucs als ik in de loop der jaren heb kunnen verzamelen. Deze gids behandelt alles in de WordPress Codex, maar ook enkele extra trucs die je waarschijnlijk nog niet eerder hebt gezien. Als je nog andere WordPress configuratie trucs kent, deel ze dan in de commentaren en ik zal ze aan de post toevoegen.
Database Credentials *
Deze set van vier configuratie definities zijn nodig voor WordPress om verbinding te maken met de database:
define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');
Database naam, gebruikersnaam, en wachtwoord zouden gemakkelijk beschikbaar moeten zijn voor u tijdens het maken van de database, maar de DB_HOST
waarde kan moeilijker te verkrijgen zijn. Meestal is deze waarde gewoon “localhost
“, maar als dat niet werkt, zijn hier een paar andere waarden om te proberen:
- 1and1 Hosting –
db12345678
- DreamHost –
mysql.example.com
- GoDaddy –
h41mysql52.secureserver.net
- ICDSoft –
localhost:/tmp/mysql5.sock
- MediaTemple (GS) –
internal-db.s44441.gridserver.com
- Pair Networks –
dbnnnx.pair.com
- Yahoo –
mysql
U kunt zelfs een alternatieve poort opgeven voor uw database server. Hier zijn twee voorbeelden:
define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');
Een andere coole truc is om de waarde van de databaseserver automatisch te detecteren:
define('DB_HOST', $_ENV{DATABASE_SERVER});
Als dit allemaal niet lukt, of als u nog steeds problemen ondervindt, neem dan contact op met uw hostingprovider voor hulp.
Tekenset database en sortering *
Vanaf WordPress versie 2.2 kunt u een tekenset opgeven voor uw MySQL-databasetabellen. Over het algemeen is er geen reden om de standaard karakter-set waarde van UTF-8 te wijzigen, die meestal perfect is omdat het alle talen ondersteunt. Hier is de standaard (en aanbevolen) instelling:
define('DB_CHARSET', 'utf8');
WordPress versie 2.2 stelt u ook in staat de collatie op te geven, dat is de sorteervolgorde van uw database-tekenset. Het instellen van de collatie wordt over het algemeen automatisch door MySQL afgehandeld aan de hand van de tekenset, die wordt ingeschakeld door de collatiewaarde leeg te laten zoals in de standaardinstelling voor deze definitie is gedaan. Hier is de standaard (en aanbevolen) instelling:
define('DB_COLLATE', '');
wp-config.php
bestand.Security Keys *
Vanaf WordPress 2.7, zijn er vier security keys beschikbaar die zijn ontworpen om een betere cookie encryptie te verzekeren. Deze sleutels werken geruisloos op de achtergrond en dienen zo willekeurig en gecompliceerd mogelijk te zijn (nee, u zult ze nooit hoeven te onthouden). De gemakkelijkste manier om deze sleutels te genereren is door dit automatisch te doen bij de WordPress.org secret-key service. Ga gewoon naar die link en kopieer/plak de resultaten in uw wp-config.php
bestand. Merk op dat deze sleutels op elk moment kunnen worden gewijzigd, en dat dit alle bestaande cookies van uw gebruikers ongeldig maakt, zodat ze opnieuw moeten inloggen op uw site.
define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YV)p:Qi?jXLq,<h\`39');define('SECURE_AUTH_KEY', '@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\`39m_(');define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al.'/path/to/wordpress');define('WP_SITEURL', 'http://'.$_SERVER.'/path/to/wordpress');
Waarschijnlijk het beste om deze waarden te vermijden als u ze op een openbare site gebruikt.
Template Pad en Stylesheet Pad
Zoals met de voorgedefinieerde constanten voor blog adres en site adres (zie vorige sectie), kunt u ook de prestaties verbeteren door database queries voor het template pad en stylesheet pad voor uw site te elimineren. Dit zijn de standaard waarden voor deze twee definities:
define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());
Zoals het nu is, vragen deze twee definities nog steeds naar de database, maar we kunnen deze extra queries elimineren door de waarden te hardcoderen:
define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');
Cache uitschakelen en Cache Expiratie
Deze twee opties zijn van toepassing op oudere versies van WordPress die nog steeds het standaard object-gebaseerde caching mechanisme gebruiken. Met de eerste definitie kunt u de cache in- of uitschakelen, terwijl u met de tweede definitie de cache-vervaltijd kunt opgeven.
Cache inschakelen
define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds
Cache uitschakelen
define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache
Cookiedomein opgeven
Er zijn verschillende redenen waarom u een cookiedomein voor uw site zou willen opgeven. Een veelvoorkomend voorbeeld is het voorkomen dat cookies worden meegestuurd met aanvragen voor statische inhoud op subdomeinen. In dit geval zou u deze definitie gebruiken om WordPress te vertellen om cookies alleen naar uw niet-statische domein te sturen. Dit kan een aanzienlijke prestatieverbetering zijn. Hier zijn enkele voorbeelden van het instellen van verschillende cookie path en cookie domain informatie:
define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');
Override File Permissions
Als de standaard bestandspermissies van uw web host te beperkend zijn, kan het toevoegen van deze definities aan uw WordPress configuratie bestand helpen het probleem op te lossen. Merk op dat u de aanhalingstekens rond de toestemmingswaarden niet nodig hebt. Bijvoorbeeld:
define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);
Bekijk alle gedefinieerde constanten
Wilt u alle voorgedefinieerde constanten bekijken? Goed nieuws, deze PHP functie geeft een array van alle momenteel gedefinieerde constanten:
print_r(@get_defined_constants());
Aangepaste gebruiker en usermeta tabellen
Wat dacht u van aangepaste gebruiker en usermeta tabellen? Ja, dat kan ook, met de volgende definities:
define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');
FTP/SSH Constants
Deze set van configuratie definities is ontworpen om gebruikers te helpen FTP/SSH verbindingen te lokaliseren en te gebruiken. Hier is een voorbeeld set van voorgedefinieerde constanten voor FTP/SSH updates:
define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server
Verplaats Uw wp-content directory
Vanaf WordPress versie 2.6, kunt u de standaard locatie van de wp-content
directory wijzigen. Er zijn verschillende goede redenen om dit te doen, inclusief het verbeteren van de veiligheid van de site en het vergemakkelijken van FTP updates. Enkele voorbeelden:
// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');
U kunt ook een aangepast pad specificeren voor uw plugins
directory. Dit kan helpen bij compatibiliteitsproblemen met bepaalde plugins:
// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');
Omgaan met post-revisies
Eigentijdse versies van WordPress bieden een post-revisiesysteem waarmee gebruikers verschillende versies van hun blogberichten kunnen opslaan en zelfs kunnen teruggrijpen op eerder opgeslagen versies indien nodig. Ongeacht hoezeer u deze verbazingwekkend geweldige functie verafschuwt of niet, zijn hier een paar configuratie definities die nuttig voor u kunnen blijken 😉
Limiteer het aantal opgeslagen revisies
define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy
Disable the post-revisioning feature
define('WP_POST_REVISIONS', false);
Specify the Autosave Interval
In een soortgelijke ader als de post-revisioning functie is WordPress’s eigenlijk nuttige Autosave functionaliteit. Standaard slaat WordPress uw werk elke 60 seconden op, maar u kunt deze instelling aanpassen aan wat u maar wilt. Maak het echter niet te gek, tenzij u uw server wilt belasten 😉
define('AUTOSAVE_INTERVAL', 160); // in seconds
Debugging WordPress
Sinds WordPress versie 2.3.1, kunnen gebruikers bepaalde fouten en waarschuwingen weergeven om te helpen bij het debuggen van hun site. Vanaf WordPress versie 2.5, verhoogt het inschakelen van foutrapportage het rapportage niveau naar E_ALL
en activeert waarschuwingen voor afgeschreven functies. Standaard (d.w.z. als er geen definitie is gespecificeerd in het wp-config.php
bestand), is foutrapportage uitgeschakeld.
define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)
Foutrapportage Configuratie
Hier is een eenvoudige manier om basis foutrapportage voor uw WordPress-aangedreven site in te schakelen. Maak een bestand aan met de naam “php_error.log
“, maak het server-writable, en plaats het in de directory van uw keuze. Bewerk vervolgens het pad in de derde regel van de volgende code en plaats deze in uw wp-config.php
bestand:
@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');
Verhoog het PHP geheugen
Als u foutmeldingen ontvangt die u vertellen dat uw “Toegestane geheugengrootte van xxx bytes uitgeput” is, kan deze instelling helpen het probleem op te lossen. Vanaf WordPress versie 2.5, stelt de WP_MEMORY_LIMIT
definitie u in staat om de maximale hoeveelheid geheugen op te geven die door PHP mag worden gebruikt. Standaard zal WordPress automatisch proberen om het geheugen van PHP te verhogen tot 32MB, dus deze instelling is alleen nodig voor waarden hoger dan 32MB. Merk op dat sommige webhosts uw mogelijkheid om het geheugen van PHP te verhogen uitschakelen, dus het kan zijn dat u hen moet smeken om het te doen. Hier zijn enkele voorbeelden:
define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');
Database queries opslaan en weergeven voor analyse
Deze techniek is perfect voor het opslaan van database queries en het weergeven van de informatie voor latere analyse. Het proces slaat elke query op, de bijbehorende functie, en de totale uitvoeringstijd. Deze informatie wordt opgeslagen als een matrix en kan worden weergegeven op elke thema sjabloon pagina. Om dit te doen, voegt u eerst de volgende directive toe aan uw wp-config.php
bestand:
define('SAVEQUERIES', true);
Dan, in de footer van uw actieve thema, plaats de volgende code:
// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}
Hier is een eenregelige versie van deze functie:
<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>
Control Proxy Access
Sinds WordPress 2.8, kan het configuratie bestand gebruikt worden om constanten te definiëren die betrokken zijn bij het blokkeren, toestaan en filteren van toegang tot specifieke hosts van achter een proxy server. Als u bijvoorbeeld uw WordPress site op een intranet netwerk host, kunt u de toegang tot alle externe hosts verhinderen en alleen verzoeken van localhost en uw blog toestaan met behulp van de eerste onderstaande definitie. U kunt ook specifieke hosts toegang verlenen met een door komma’s gescheiden lijst van toegestane hostnamen, zoals in de derde definitie hieronder.
define('WP_HTTP_BLOCK_EXTERNAL', true); // block external requestsdefine('WP_HTTP_BLOCK_EXTERNAL', false); // allow external requestsdefine('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // whitelist hosts
api.wordpress.org
toegang moet toestaan om een goede functionaliteit van kernbestanden en plugins te garanderen.Whew! Ik ben uitgeput. Tijd voor een kleine pauze 🙂
Notes
- * Geeft aan dat code is opgenomen in het standaard
wp-config.php
bestand - Braziliaans-Portugese vertaling (door Tárcio Zemel)