Instalace a konfigurace Wordpress
Jedna známá potřebovala vyrobit web a požádala mě o jeho realizaci. Pro její potřeby se skvěle hodí blogovací systém. Zvolil jsem Wordpress, protože už s ním mám nějaké zkušenosti. Myslím, že to je pěkně udělaný software a jeho výhoda je, že je open source. Rozhodl jsem se sepsat podrobný návod/tutoriál, jak rychle nainstalovat a bezpečně nastavit blogovací systém Wordpress. Postup instalace píšu hlavně pro vlastní potřeby - určitě se ještě bude v budoucnu hodit.
Instalace krok za krokem
- Stáhneme nejnovější originální verzi Wordpress (bez překladů).
- Zkopírujeme všechny soubory na server.
- Vytvoříme novou databázi v phpMyAdmin. Zvolíme porovnání utf8_general_ci.
- Spustíme instalaci v prohlížeči na adrese /wp-admin/setup-config.php.
- Vyplníme přístupy k databázi a nastavíme prefix v názvu databázových tabulek. Prefix by neměl být z bezpečnostních důvodů "wp_".
- Pokud nejde konfigurační soubor wp-config.php vytvořit automaticky, zkopírujeme konfiguraci do souboru wp-config.php manuálně a nahrajeme na server. Instalátor nastaví konfiguraci databáze, prefix a bezpečnostní klíče.
- Pokračujeme v instalaci na adrese /wp-admin/install.php.
- Vyplníme základní údaje a vytvoříme administrátorský účet. Uživatelské jméno administrátora by nemělo být z bezpečnostních důvodů "admin". Spustíme instalaci.
- Nyní nastavíme další parametry v konfiguračním souboru wp-config.php:
- Ujistíme se, že máme vyplněny bezpečnostní klíče. Pokud ne, můžeme je vygenerovat.
- Nastavíme jazyk (instalaci jazyka provedeme později).
- Vypneme vytváření revizí.
- Pokud jsme v minulosti vytvořili nějaké revize, můžeme je smazat z databáze pomocí SQL příkazu (zdroj).
- Vypneme automatické ukládání.
- Smažeme z adresáře /wp-content/plugins nepotřebné pluginy. Např. Hello Dolly.
- Smažeme z adresáře /wp-content/themes nepotřebné šablony.
- Stáhneme češtinu pro Wordpress:
- Stáhneme češtinu pro samotný Wordpress a příslušné soubory zkopírujeme do adresáře /wp-content/languages.
- Stáhneme češtinu pro vybranou šablonu a příslušné soubory zkopírujeme do adresáře languages v adresáři se šablonou.
- Aktuální verzi češtiny lze také stáhnout z GlotPress. Název hlavního souboru s češtinou by měl být "cs_CZ", administrace "admin-cs_CZ", města "continents-cities-cs_CZ". Nahrát bychom měli soubory ve formátu ".po" a ".mo".
- Přihlásíme se v administraci /wp-admin a nastavíme:
- Vzhled - vybereme šablonu a nastavíme její parametry. Pokud nechceme použít některou z oficiálních šablon, můžeme stáhnout z internetu jinou.
- Uživatelé - vytvoříme uživatele (redaktory).
- Nastavení - obecné nastavení blogu.
- V Nastavení - trvalé odkazy - nakonfigurujeme .htaccess soubor. Vygenerovaný kód zkopírujeme na server do souboru /.htaccess.
- Volitelně můžeme použít .htaccess a .htpasswd v adresáři wp-admin pro zvýšení bezpečnosti. Přístup do administrace potom bude 2x zaheslován. Soubor .htpasswd lze vygenerovat zde. Více na websitedefender.com.
- Nainstalujeme, aktivujeme a nastavíme pluginy:
- Vytvoříme účet na Google Analytics a nastavíme v pluginu UA kód.
- Vytvoříme na serveru adresář /wp-content/uploads.
- Nastavíme práva souborů a složek webu na serveru pomocí příkazů chmod, chown, chgrp. Pro hromadné nastavení lze použít skript.
- V případě potřeby ručně upravíme šablony/pluginy a uložíme si provedené změny pro případ aktualizace na novější verze dané šablony/pluginu.
- V případě vydání aktualizace Wordpressu postupujeme podle instrukcí.
- Vytvoříme základní strukturu webu: kategorie, stránky, homepage, články.
Konfigurační soubor wp-config.php
define('WPLANG', 'cs_CZ'); // language
define('WP_POST_REVISIONS', 0); // disable revisions
define('AUTOSAVE_INTERVAL', 86400 ); // disable autosave by long interval (in seconds)
Odstranění revizí z databáze
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
Soubor .htaccess
Options -Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Soubor .htaccess pro adresář admin
Soubor .htaccess:
AuthUserFile /home/www/com_example/www/wp-admin/.htpasswd
AuthType Basic
AuthName "Access to Wordpress admin"
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
Soubor .htpasswd, obsahující login "test", heslo "test":
test:$apr1$YGH0twy8$JeDHWGMP41wXRaxTFgqtr1
Manuální úpravy Wordpressu
Úprava souboru functions.php v šabloně twentyeleven, která odstraní z hlavního menu v administraci některé položky pro redaktory (pro admina jsou zachovány):
// remove unnecessary menus
// http://wordpress.stackexchange.com/questions/9505/hide-admin-menus-per-role-in-wordpress#answer-9581
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_level < 10)
{
$restricted = array(
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings'),
);
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}// end while
}// end if
}
add_action('admin_menu', 'remove_menus');
Úprava souboru style.css v šabloně twentyeleven, která zmenší a přeuspořádá hlavičku webu:
#page {
margin: 1em auto;
}
#site-title {
float: left;
padding: 0;
margin: 20px 20px 20px 0;
}
#site-description {
float: left;
clear: none;
font-size: 24px;
font-weight: bold;
line-height: 36px;
padding: 0;
margin: 20px 0 20px 0;
}
#site-title a {
font-size: 24px;
}
#branding #searchform {
top: 22px;
}
#branding img {
clear: both;
}
Úprava souboru comment-reply-notification.php v pluginu Comment Reply Notification, která počeští checkbox ve formuláři:
function addreplyidformfield(){
if($this->options['mail_notify'] === 'parent_check')
echo '<p><input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" style="width: auto;" /><label for="comment_mail_notify">' . __('Upozornit e-mailem, pokud sem někdo přidá nový komentář', 'comment-reply-notification') . '</label></p>';
elseif($this->options['mail_notify'] === 'parent_uncheck')
echo '<p><input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" style="width: auto;" /><label for="comment_mail_notify">' . __('Upozornit e-mailem, pokud sem někdo přidá nový komentář', 'comment-reply-notification') . '</label></p>';
else{}
}
Úprava souboru class.resize.php v pluginu Resize Image After Upload, která změní kompresní poměr obrázků:
function saveImage($numQuality = 75){
...
Úprava souboru sociable.css v pluginu Sociable, která opraví rozhozený layout u Facebook tlačítka:
#Facebook_Counter iframe {
width:128px !important;
}