Outils pour utilisateurs

Outils du site


www_dotclear

Ceci est une ancienne révision du document !


DotClear WordPress or DokuWiki ?

DokuWiki

Blogger avec DokuWiki est peut être la bonne solution.

Liens:

A voir… Parce que ni DotClear, ni WordPress ne font ce que je veux!

Un exemple à suivre ? : http://www.alternativeoutput.it/wiki/

Le template de complément: http://www.dokuwiki.org/template:mnml-blog

Wordpress

Un peu surpris par la misére de l'editeur “wiki” de dotclear (inadapté pour bloguer du “code” comme avec dokuwiki), je m'essaye a WordPress.

Liens:

Installation

/var/www

$ su
# cd /var/www
# wget http://fr.wordpress.org/wordpress-3.3.1-fr_FR.tar.gz
# tar xvzf wordpress-3.3.1-fr_FR.tar.gz
# chown -R www-data: wordpress
# cd wordpress

Si on a configuré apache (qu'on verra plus loin), on a droit a ce message:

Votre installation PHP ne dispose pas de MySQL. Extension requise pour WordPress.

MySQL

# aptitude install mysql-server php5-mysql
# mysql -u root -p

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"localhost" IDENTIFIED BY "<MOT_DE_PASSE>";
Query OK, 0 rows affected (0.00 sec)

flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit

On aura générer le “<MOT_DE_PASSE>” avec pwgen par exemple…

Apache2

php5-cgi

Lien: http://blog.tmartin.fr/post/2009/10/21/Utilisation-de-PHP5-en-mode-CGI

# aptitude install apache2-mpm-worker
# aptitude install php5-cgi

Activer “php5-cgi” en lieu et place de son equivalent en module (voir section suivante).

virtualhost

Pour mémoire:

<VirtualHost *:80>
      ServerAdmin webmaster@MONBLOG-PERSO.FR
      ServerName wordpress.MONBLOG-PERSO.FR

      DocumentRoot /var/www/wordpress

      <Directory />
              Options FollowSymLinks
              AllowOverride None
              Order deny,allow
              deny from all
      </Directory>

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
              AllowOverride None
              Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
              Order allow,deny
              Allow from all
      </Directory>

      <Directory /var/www/wordpress/>
              DirectoryIndex index.php
              Options +FollowSymLinks -Indexes
              AllowOverride FileInfo
              #AllowOverride None

              #Order allow,deny
              #allow from all
              Order deny,allow
              Allow From <MY_IP>
              Deny From All

              AddHandler cgi-php5 .php
              Action cgi-php5 /cgi-bin/php5
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

wp-config.php

# cd /var/www/wordpress
# cp -p wp-config-sample.php wp-config.php

Adapter wp-config.php selon son MySQL. Par exemple (extrait):

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', '<MOT_DE_PASSE>');

Et en passant par là: https://api.wordpress.org/secret-key/1.1/salt/
… on peut aussi générer d'autres clés pour les cookies:

define('AUTH_KEY',         '2gG-TXma&Y85GR#/puUXB?{2<!d]]0C;)S6M+)J(0$ki0cCYt~|VTt,++|BA)}&I');
...
etc...

configuration

Maintenant, on devrait pouvoir atteindre la page d'installation: http://wordpress.eez.fr/wp-admin/install.php

Bugs

Liens:

suhosin[9817]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'x.x.x.x', file '/var/www/wordpress/wp-admin/admin.php', line 109)

Dans /etc/php5/conf.d/suhosin.ini faire en sorte d'avoir:

extension=suhosin.so
[suhosin]
suhosin.memory_limit = 256M

Tips

Permalien

(Permalink)

Lien: http://codex.wordpress.org/Using_Permalinks

# a2enmod rewrite

Et ajouter dans le “virtual Host”:

AllowOverride FileInfo

DokuWiki

Lien: http://wordpress.org/extend/plugins/wp-dokuwiki/

# cd /var/www/wordpress/wp-content/plugins
# wget http://downloads.wordpress.org/plugin/wp-dokuwiki.zip
# unzip wp-dokuwiki.zip
# chown -R www-data: wp-dokuwiki

Activer le plugin dans le panneau de controle.

Ensuite, le tab “html”, faire:

<wiki>
**Hello World**
</wiki>

Mais en fait, il subsite au moins 1 bug énervant: Impossible d'avoir une ligne vide dans du code :-|

syntaxhighlighter

DotClear2

DotClear2 - Methode A

Plus mieux ?

L'idée:

  • nginx est installé en frontal
  • on va utilisé “php5-cgi” (au lieu de “libapache2-mod-php5” )

Ce qui aura l'avantage de :

  • utiliser apache2-mpm-worker ?
  • nginx ?
  • … ? je sais pas

Dépendances

# aptitude install apache2-mpm-worker
# aptitude install php5-cgi php5-cli php5-gd
# aptitude install php5-sqlite

rpaf

Comme on a un frontal nginx, les IP vu sont celle de nginx en local.

Donc:

# aptitude install libapache2-mod-rpaf

Dans /etc/apache2/mods-enabled/rpaf.conf , adapter la ligne pour donner l'IP de nginx:

RPAFproxy_ips <IP_LOCAL_DE_NGINX>
# apache2ctl graceful

Voila.

php5-cgi

Lien:

Activer “php5-cgi” en lieu et place de son equivalent en module:

# TJ ---------------------
<Location /dotclear/>
              AddHandler cgi-php5 .php
              Action cgi-php5 /cgi-bin/php5

              #Order allow,deny
              #Allow from all
              Order deny,allow
              Allow From <MON_IP_PENDANT_L_INSTALLATION>
              Deny from all
</Location>
# -------------------------

dotclear2-loader.php

# cd /var/www
# mkdir dotclear
# cd dotclear

Télécharger dotclear2-loader.php

# wget <...>dotclear2-loader.php

Permettre l'ecriture…

# chown www-data: .
http://<mon_web>/dotclear/dotclear2-loader.php

J'installe dans le repertoire courant (et non pas dans “…/dotclear/dotclear”)

:!: Mais comme dit plus loin, pour SQLite, il faut faire ça à la main, un peu.

Préparer le répertoire ou stocker la base:

# mkdir -p /var/lib/db/dotclear
# chown www-data: /var/lib/db/dotclear/.

Générer un truc aléatoire:

# dd if=/dev/urandom bs=36 count=1 | openssl base64  
OUUu2S225BZCjOiMDCZBxk82cY1X8yyTfH0uxmfeDbZUyFp+

Dans …/dotclear/inc/ :

# cp -p config.php.in config.php

Modifier config.php pour avoir (par exemple):

define('DC_DBDRIVER','sqlite');
define('DC_DBNAME','/var/lib/db/dotclear/blog.sqlite');
define('DC_MASTER_KEY','<LE_TRUC_ALEATOIRE_PLUS_HAUT>');

Et reprendre en retournant par là:

http://<mon_web>/dotclear/admin/install/  

DotClear2 - methode B

pré-requis

# aptitude install libapache2-mod-php5
# aptitude install php5-mysql
ou
# aptitude install php5-sqlite

Facultatif:

# aptitude install php5-gd

installation

Suivre les instructions ici http://fr.dotclear.org/documentation/2.0/admin/install

Au plus simple, avec dotclear2-loader.php et avec sqlite :

# cd /var/www
# mkdir dotclear
# cd dotclear
# wget http://download.dotclear.net/loader/dotclear2-loader.php
# chown www-data: .

Et puis avec son navigateur:

http://<HOST>/dotclear/dotclear2-loader.php

Suivre la procédure…

Jusqu'à la configuration de la base de données ! et là, pour sqlite, il faut editer à la main le fichier de config…

# cd inc
# cp config.php.in config.php
# vi config.php

et faire en sorte d'avoir:

define('DC_DBDRIVER','sqlite');
define('DC_DBHOST','');
define('DC_DBUSER','');
define('DC_DBPASSWORD','');
define('DC_DBNAME','<CHEMIN_VERS_UNE_BASE_SQLITE.db>');
define('DC_DBPREFIX','dc_');
define('DC_DBPERSIST',false);
define('DC_MASTER_KEY','<CLE_A_CREER_PAR_EXEMPLE: LS -lR /| MD5SUM>');
define('DC_ADMIN_URL','http://<HOST>/dotclear/admin/');
define('DC_SESSION_NAME','dcxd');
define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins');
define('DC_TPL_CACHE',dirname(__FILE__).'/../cache');

Et puis:

http://<HOST>/dotclear/admin/install

Et voila.

Dotclear

Installer

Télécharger la dernière version a partir d'ici: http://www.dotclear.net/
Par exemple:

$ cd ~/tmp
$ wget http://download.dotclear.net/latest-1.2.tar.gz

Decompresser:

$ tar xvzf latest-1.2.tar.gz

Et on récupère: dotclear-1.2.5.tar.gz, qu'on decompresse:

$ tar xvzf dotclear-1.2.5.tar.gz

Renommer en ''monblog''

Qu'on fout a partir de la racine:

$ mv dotclear ~/www/.

Et que je renomme autrement:

$ cd ~/www
$ mv dotclear monblog

Répertoires en ecriture

Il faut autoriser en écriture les répertoires suivant:

  • monblog/conf
  • monblog/images
  • monblog/themes

Et donc pour chacun de ces répertoires:

$ cd ~/www/monblog
$ chown :www-data conf
$ chmod g+w conf
etc...

MySQL

Se connecter a MySQL:

$ mysql -u root -p

Creer une database:

mysql> create database dotclear;

Creer un user associé:

mysql> GRANT ALL ON dotclear.* TO dotclear@localhost;

(Pas besoin de mot de passe ?)

install

Effectuer l'install a partir de PHP:

http://tjaouen.fr/monblog/install

Et le plus dur est fait ;-)

admin

Là, c'est pas evident puisqu'il faut faire:

http://tjaouen.fr/monblog/ecrire

Plugins

Antispam

Installer

Installer le plugin 'captcha accessible', qui fonctionne avec Dotclear 2 (celui que j'utilise).
Lien: http://www.atelierphp5.com/un-captcha-accessible.html

Pour installer:

DotClear-Administration > Outils > Gestionnaire des plugins

(Faire en sorte que le répertoire “monblog/ecrire/tools” soit autorisé en écriture à “www-data”.)

Copier/Coller le lien vers le plugin:

[[http://www.atelierphp5.com/pub/dotclear/plugin-captcha-1.1.pkg.gz]]

Puis cliquer sur “[Installer]”…
Le plugin “Anti-Spam pour les commentaires” apparait, mais il n'est pas activé, donc faire: Selectionner puis “Action sur les plugins sélectionnés : basculer etat”.
Voila le plugin activé.

Configurer

Suivre les instructions affiché dans la section “plugins > Captcha”…

Table SQL

A creer selon modèle…

Code HTML

A injecter dans “form.php” (exemple):
(Si vous utilisez le theme par defaut, sinon, adapter)

$ vi monblog/themes/default/form.php
<fieldset>	
<p class="field">
<table border="1" bgcolor="lightgray" ><tr><td>
  <label for="dc_captcha"><?php dcCaptcha::question(); ?></label>
  <?php dcCaptcha::field(); ?>
</td></tr></table>
</p>

<p><input type="checkbox" id="c_remember" name="c_remember" />
<label for="c_remember">Se souvenir de mes informations</label>
</p>
<p><input type="submit" class="preview" name="preview" value="pr&eacute;visualiser" />
<input type="submit" class="submit" value="envoyer" />
<input type="hidden" name="redir" value="<?php dcCommentFormRedir(); ?>" /></p>
</fieldset>

L'ajout d'une “table” est de mon fait.

Modifier les fichiers de configuration

Allez dans “monblog/ecrire/tools/captcha” :

 $ cd monblog/ecrire/tools/captcha

UTF8

Modifier les fichiers php en UTF-8… (parce que j'avais des problèmes avec les accents…):

$ recode latin1..utf8 *php

(Si nécessaire, installer d'abord le pakage recode)

Personnaliser

Editer les paramètres en éditant le fichier “config.php” (Exemple) :

$ vi config.php
...
	$GLOBALS['captcha_level'] = 1;
...
$GLOBALS['captcha_logs'] = '<quelque_part_ou_www_a_les_droits>/spam.txt';

Et voila

www_dotclear.1330101298.txt.gz · Dernière modification: 2012/02/24 17:34 par thierry