Ceci est une ancienne révision du document !
Table des matières
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!
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é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';