20/5/2009

Parallelle WordPress blogs

Filed under: — pinguim @ 10:57 am
par_blogs par_blogsmaster par_blogsmodel

Om op je eigen webserver een aantal gelijkaardige WordPress blogs te installaren die enkel een verschillende titel hebben, maar wel dezelfde vormgeving kan je best 1 WordPress blog innvullen met de gemeenschappelijke elementen, en die dan kopiëren.

  1. Download en uitpakken WordPress: geeft een mapje “wordpress” dat gekopieerd kan worden.
  2. Kopie op webserver en mapje hernoemen naar “test”. Deze versie ga je installeren, en er allerlei instellingen en wijzigingen op uitproberen.
  3. Kopie op webserver en mapje hernoemen naar “model”. Deze moet de standaardinstallatie worden die je kopieert naar je andere mappen voor de andere blogs. Alle wijzigingen van “test” die je wil toepassen in je “model” neem je over naar hier.
  4. kopieer het model daarna telkens naar een mapje dat je de naam van je blog geeft. Je moet nu enkel nog de naam van de blog wijzigen.

Helaas zijn niet alle wijzigingen in de .php bestanden te vatten; een aantal instellingen worden in de databank opgeslagen. Daarvoor kan je wel SQL statements maken die je toepast op elke installatie – bv via phpMyAdmin.

Als de gebruikers gemeenschappelijk moeten zijn, hoef je ze maar 1 keer aan te maken in een “master”, en zet je de verwijzing naar die master mee in de aangepaste standaard (zie deze post).

par_blogsadjust

Enkele mogelijke aanpassingen aan de “model”:

  • wp-config-sample: reeds invullen database naam, -gebruiker, -wachtwoord
  • Bij gemeenschappelijke gebruikers:
    1. wp-config-sample: definieer AUTH_KEY’, ‘SECURE_AUTH_KEY’, ‘LOGGED_IN_KEY’, ‘NONCE_KEY’
    2. wp-config-sample: definieer ‘CUSTOM_MASTER_PREFIX’, ‘CUSTOM_USER_TABLE’, ‘CUSTOM_USER_META_TABLE’
    3. wp-includes/capabilities.php: $this->cap_key = CUSTOM_MASTER_PREFIX . ‘capabilities’;
  • wp-content/themes/: kopieer hierin de (aangepaste) theme map.

Bij een aantal themes werkt de “edit” van het theme vanuit WordPress niet meer (bv carringtontheme) omdat de bestanden niet meer los in de theme directory staan, maar mooi in een eigen mapje staan. Je moet dus via een andere weg die bestanden wijzigen en uploaden of ter plaatse wijzigen.

De “blogroll” of links kan je gebruiken om naar elkaar te linken. Als die links overal het zelfde zijn kan je ook een vast stukje html maken met de onderlinge links en dat opnemen in de “widgets”.

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:

6/5/2009

Foto’s kopieren naar andere computer

Filed under: — pinguim @ 1:23 pm

Bestanden overzetten van een Acer Aspire One zonder harde schijf naar een andere Linux computer met meer opslagruimte:
– op de AA1 is ssh geïnstalleerd
– andere pc of server heeft ssh geïnstalleerd, ik ken zijn naam (dns naam server.myhouse.loc), of ip adres kan ook ipv naam: 192.168.1.250. Ik heb er een gebruikers account: pinguim.
Server kan ook een Linux pc zijn, maar moet ssh deamon draaien.

scp *.JPG pinguim@server.myhouse.loc
gaf eerst een foutmelding:

ssh: connect to host server.myhouse.loc port 22: Connection refused
lost connection

De ssh server draait op een andere poort dan de standaard poort 22. Dus moeten er wat meer parameters meegegeven worden. Welke zijn beschikbaar:

[user@localhost Photos]$ scp --help

usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 … [[user@]host2:]file2

Het aangepaste commando (met een eerste foute wachtwoordspelling)

[user@localhost Photos]$ scp -P 9022 ./*.JPG pinguim@server.myhouse.loc:/home/pinguim

The authenticity of host ‘[server.myhouse.loc]:9022 ([192.168.1.250]:9022)’ can’t be established.
RSA key fingerprint is a2:30:94:1f:41:66:88:cc:8c:3f:2e:ab:d3:b2:95:da.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[server.myhouse.loc]:9022,[192.168.1.250]:9022′ (RSA) to the list of known hosts.
pinguim@server.myhouse.loc’s password:
Permission denied, please try again.
pinguim@server.myhouse.loc’s password:
CIMG1796.JPG 100% 2112KB 2.1MB/s 00:00
CIMG1797.JPG 100% 2180KB 2.1MB/s 00:00
CIMG1798.JPG 100% 2118KB 2.1MB/s 00:01
CIMG1799.JPG 100% 2099KB 2.1MB/s 00:00
CIMG1800.JPG 100% 2089KB 2.0MB/s 00:00
CIMG1801.JPG 100% 2148KB 2.1MB/s 00:00
CIMG1802.JPG 100% 2184KB 2.1MB/s 00:00
CIMG1803.JPG 100% 2097KB 2.1MB/s 00:01
CIMG1804.JPG 100% 2094KB 2.0MB/s 00:00
CIMG1805.JPG 100% 2101KB 2.1MB/s 00:00
CIMG1806.JPG 100% 2287KB 2.2MB/s 00:00
CIMG1807.JPG 100% 2292KB 2.2MB/s 00:00
CIMG1808.JPG 100% 2135KB 2.1MB/s 00:01
CIMG1809.JPG 100% 2148KB 2.1MB/s 00:00
CIMG1810.JPG 100% 2180KB 2.1MB/s 00:00
[user@localhost Photos]$

In de standaard bestandsbeheerder van Linpus, Thunar, vond ik niet onmiddellijk een manier om bv een ftp of smb verbinding te leggen naar een server. Ssh is heel universeel, licht te installeren, werkt snel en kan gescript worden.

Powered by WordPress