19/5/2009

WordPress blogs installeren met gedeelde users

Filed under: — pinguim @ 3:15 pm

Doel
par_blogsmaster
Wordpress gebruiken binnen een organisatie kan soms leiden tot de conclusie dat je een aantal WordPressen naast elkaar wil gebruiken, maar liefst wel op dezelfde server, met gebruikers die wel op alle blogs kunnen werken en die je maar 1 keer moet ingeven. Meestal is er een reden om nog een extra niveau te maken omdat je de categorie ook al nodig hebt. Je maakt een hoofdblog, bv

  • naam van een graad van de school. De aparte blogs kunnen dan de namen van de vakken krijgen. Users kunnen bloggen op vakken.
  • naam van een project. Gebruikernamen zijn bv klasnamen. Klassen kunnen aan verschillende projecten werken, en moeten dus op ieder project kunnen bloggen.
  • Of de hoofdsite is de naam van de club, de sub-sites zijn verschillende competities waarin de club deelneemt. Gebruikers of ploegen kunnen bloggen in verschillende competities.
  • Hoofdsite is een bedrijf, subsites zijn afdelingen, enz

WordPress blogs installeren op dezelfde server
par_blogs
Installatie in een structuur op de webserver: /var/www/html/wordpress/
pas aan aan je eigen distributie

Via de webserver is die als site zichtbaar op je domeinnaam/wordpress

Vervang wordpress (verder de hoofddirectory genaamd) door de naam van je project. Vanzelfsprekend kan je ook rechtstreeks in de document root als hoofddirectory werken, en daar de onderverdeling maken.

Bereid eventueel de mysql-database toegang voor: zorg voor een mysql database, username, wachtwoord.

Haal WordPress af en pak uit. (zie elders; WordPress zelf heeft goede documentatie). De uitgepakte versie heet bv wordpress_orig; die ga je kopieren en installeren per WP-blog.

Bedenk duidelijke namen per blog, liefst beetje gestructureerd voor de herkenbaarheid in de db en config files.

WordPress master
par_blogsmasterdirs
Maak eerst een “master WordPress”. Die zou in de hoofddirectory kunnen staan, maar de hierarchie van je site hoeft niet overeen te komen met de hierarchie van de mappen. We gebruiken een gewone map in de hoofddirectory; die moet dan wel herkenbaar zijn door zijn naam; bv “master”.

Kopieer een eerste keer de uitgepakte wordpress_orig in de hoofddirectory met de mapnaam: master.

Installeer verder waarbij je zeker noteert (kopie en plak in een teksblok als Kate) volgende gegevens tijdens de installatie:
admin naam (admin)
admin wachtwoord (wordt gegeven als combinatie van letters, cijfers en tekens; knip en plak dus)

Maak een database aan en gebruik de gegevens tijdens de installatie:
databasenaam (wordpressdb)
databaseuser (wordpressblog)
Vul de juiste servernaam in voor de database (localhost of servernaam.domein.tld)
Gebruik de standaard prefix “wp_” (of maak er master_ van en doet dat ook in de verwijzingen hieronder)
Installeer verder, log in na installatie en voeg een gebruiker toe met je naam en admin rechten (naast de automatisch gemaakte admin user).

De master installatie is klaar.

WordPress slave

Nu de sub-sites of “slaves”.

Maak een kopie van de uitgepakte wordpress_orig in de hoofddirectory met de mapnaam: slave1.

Maak de directory schrijfbaar. Start de installatie en vul de naam in (Slave1), plus de andere gegevens die gevraagd worden als database naam, gebruiker, wachtwoord (zelfde als master). Let op de “prefix” die gevraagd wordt! (bv slave1_ in plaats van wp_)

Pas de wp-config.php aan:

  1. Zoek volgende define lijnen en kopier die uit de master:
    define('AUTH_KEY', 'Q$*s5G-Cx!t|....');
    define('SECURE_AUTH_KEY', '=sa/Xok^PO[*~G9lo!5H!SH...');
    define('LOGGED_IN_KEY', 'ivUmuJesLQ< ?...'); define('NONCE_KEY', 'Yl3SPVKX[Q....');
  2. Voeg na de “that’s all.. lijn” volgende lijnen toe met verwijzing naar de master:
    /* This is a slave install; link to the master user tables: */
    define ('CUSTOM_MASTER_PREFIX', 'wp_');
    define ('CUSTOM_USER_TABLE', CUSTOM_MASTER_PREFIX . 'users');
    define ('CUSTOM_USER_META_TABLE', CUSTOM_MASTER_PREFIX . 'usermeta');
  3. Pas volgend bestand aan: wp-includes/capabilities.php en zoek de lijn met de // voor.
    Vervang ze door een met verwijzing naar de master prefix:
    // $this->cap_key = $wpdb->prefix . 'capabilities';
    // use instead Master user table capabilities
    $this->cap_key = CUSTOM_MASTER_PREFIX . 'capabilities';


Hoewel elders op fora nog gesproken wordt over “cookies” en “salt” en “hash”, was dat in deze installatie van 2.7 blijkbaar niet nodig voor wat ik tot nu toe ervaren heb. Anders volgt een aanvulling.

Enkele links:
Hier op de Liglog :

Op de WordPress codex:

Reacties zijn gesloten.

Powered by WordPress