Compiler redmine 1.9.3 puis installer redmine sur apache le tout sur une debian squeeze…

évidemment ruby 1.9.3 n’est pas encore disponible en paquet debian squeeze donc on compile, on installe et hop…

Comme d’habitude vérifier la présence de:

  • g++
  • libc
  • libtool
  • autoconf
  • openssl dev
  • fcgi dev
telecharger les sources de ruby
lancer autoconf
.configure 
make
(regarder les messages d'erreur sur la creation des config) openssl doit passer si vous voulez l'utiliser (si il ne passe pas c'est qu'il manque la lib. Retournez dans aptitude)
make install

Installer les paquets connexe via gem

gem install rails
gem install fcgi
gem install rack

Descendre les sources redmine suivre la doc redmine

Ajouter la dependance sur fcgi dans Gemfile supprimer le fichier Gemfile.lock relancer le bundle install:

bundle install --without development test postgresql sqlite rmagick

Installer passenger via gem:

gem install passenger

Compiler passenger pour apache:

passenger-install-apache2-module

Ajouter dans le module passenger dans /etc/site-available (copier/coller les lignes fournit en fin de compilation du passenger)

Ensuite creer le virtual host en pointant sur l’appli ruby.

<VirtualHost *:443>
 ServerName www.domain.com
 DocumentRoot /opt/redmine/current/public
 <Directory /opt/redmine/current/public>
       AllowOverride all
       Options -MultiViews
       </Directory>
       ErrorLog /var/log/apache2/redmine_error.log
       LogLevel error
       CustomLog /var/log/apache2/redmine_cust.log combined
       SSLEngine on
       SSLCertificateFile    /etc/ssl/certs/openways.com.crt
       SSLCertificateKeyFile /etc/ssl/private/openways.com.key
       SSLCertificateChainFile /etc/ssl/certs/gd_bundle.crt
</VirtualHost>

lancement d’apache sans prompt avec une clé privé avec passphrase

Apache embarque une directive qui permet de lancer une commande. Voici la’ doc avec exemple simpliste:
[utilisation de sslpassphrasedialog|http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog|en]

Attention la’ directive doit se trouver dans le root context (hors du virtual host) donc pour gérer du multi host il faut faire un script qui parse les args reçus.

Créer un keystore BKS pour Android et inclure un CA proprietaire

creer le keystore BKS
keytool -genkeypair -v -alias app_zzz -keyalg RSA -keysize 1024 -dname "CN=zzz, OU=zzz, O=zzz, L=zzz,S=00, C=FR" -validity 3600 -keypass zzz -keystore zzz.bks -storepass zzz -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath C:\Users\zzz\BouncyCastle\bcprov-jdk16-146.jar
importer le CA
keytool -importcert -trustcacerts -alias CA_zzz -file CA_zzz.crt -keypass zzz -keystore zzz.bks -storepass zzzz -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath C:\Users\zzz\BouncyCastle\bcprov-jdk16-146.jar
verifier le keystore
keytool -list -keypass zzz -keystore zzz.bks -storepass zzz -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath C:\Users\zzz\BouncyCastle\bcprov-jdk16-146.jar

ps : Cet exemple se base sur le keytool de la jdk 1.6 (les options sont un peu différentes sur la jdk 1.5)

Compilation de PHP 5.3 sur debian lenny

Les paquets utiles:

  • g++
  • libstdc++
  • apache2
  • apache2-mpm-prefork
  • apache2-mpm-prefork-dev
  • automake
  • mcrypt
  • libmcrypt-dev
  • libpng
  • libpng-dev
Le configure

Methode oldfashion du tout ce qui est non standard dans /opt donc :

./configure --prefix=/opt/php --exec-prefix=/opt/php --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php/ --disable-ipv6 --with-curl --enable-ftp --with-gd --enable-intl --enable-mbstring --with-mcrypt --with-mhash --with-mysql=/opt/mysql --with-mysqli=/opt/mysql/bin/mysql_config --with-pdo-mysql=/opt/mysql --enable-soap --with-pear --with-xsl --with-zlib --with-openssl
Build
make
make test
Installation

Installation un peu forcée car l’installeur plante sur une modification de la conf apache (il faudra la faire manuellement).

make install --ignore-errors

memo du configure pour mysql

shell> groupadd mysql
shell> useradd -g' mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION

avec aptitude' recuperer:
libtool
g++
libstd

Lancer le script suivant:

#!/bin/sh
CFLAGS=-O3''
CXX=gcc
CXXFLAGS=''-O3 -felide-constructors' -fno-exceptions -fno-rtti''
./configure --prefix=/opt/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-collation=utf8_general_ci' --with-charset=utf8 --with-plugins=max

shell> make
shell> make install
shell> cd /opt/mysql
shell> chown -R mysql:mysql .
shell> mkdir ata'/'iblogs
shell> chown -R mysql data
shell> chown -R mysql /var/run/mysqld

Verifier la config my.cnf (valoriser les repertoires data pour' innodb)

installer la base
shell> bin/mysql_install_db --user=mysql

demarrer en mode safe:
shell> mysqld_safe

changer le password' root
update mysql.user set Password=PASSWORD('...') where user='root';

Créer le user debian:
mysql> create user 'debian-sys-maint'@'localhost' identified' by '...';
mysql> grant shutdown'

Bug dans l’installation de GForge sur une debian lenny fr_FR

Un workaround pour ceux qui rencontrent des problèmes d’installation de Gforge sur une debian lenny.

Si votre GForge plante à  l’installation sur une debian lenny avec l’erreur :

 Cannot create PostgreSQL database...  This shouldn't have happened.
 Maybe a problem in your PostgreSQL configuration?
 Please report a bug to the Debian bug tracking system
 Please include the following output:
 CREATE DATABASE's STDOUT:
 SET
 CREATE DATABASE's STDERR:
 ERROR:  encoding UTF8 does not match server's locale fr_FR
 DETAIL:  The server's LC_CTYPE setting requires encoding LATIN1.
 dpkg : erreur de traitement de gforge-db-postgresql (--configure) :
  le sous-processus post-installation script a retourné une erreur de sortie d'état 1

c’est que Gforge est paramètré pour insérer en base en UTF8, malheureusement l’installation du Postresql a vu la locale fr_FR et s’est donc auto-installé en LATIN1.

Pour remedier à  la chose (attention cela supprime tout le cluster donc faites une sauvegarde):

 pg_dropcluster --stop <version> <nom-cluster>

par exemple :

 pg_dropcluster --stop 8.3 main

puis

 pg_createcluster --locale fr_FR.UTF-8 --start <version> <nom-cluster>

par exemple :

 pg_createcluster --locale fr_FR.UTF-8 --start 8.3 main

Vous pouvez maintenant relancez l’installation de Gforge via apt ou aptitude.

MBR et windows 7

un mémo sur la récupération du MBR et de la partition active sous windows 7

Booter sur un disque de rescue windows 7

Redéclarer la partition active

Au cas où la partition système windows 7 ne sera plus celle active.

Accéder à  la console (même si l’interface ne voit pas votre os existant…) – lancer diskpart (le lien suivant indique toute les commandes dispo : http://technet.microsoft.com/fr-fr/library/cc770877(WS.10).aspx – choisir le disque ou il y a normalement le partition system de windows.

select disk 0

– afficher les partitions (le type de partition et le nom devrait aider à  identifier la partition système).

list

– sélectionner la partition

select part x

– activer la partition

active
Refaire la MBR.
cd /boot
bootsect /nt60 SYS /mbr

Attention j’ai trouvé sur le web des « bootsect … ALL /force … » c’est à  vos risques et périls car vous allez placer une mbr sur toutes les partitions et donc écraser potentiellement des données non MBR. Pour info ça remonte même sur les disques amovibles !

x509 avec openssl

! Créer un ca de test

$ openssl req -x509 -newkey rsa:2048 -keyout’ ca.key -out ca.crt

! Créer la clé privé du serveur (ici RSA)

$ openssl genrsa -out client.key 2048

! Créer la csr du serveur
$ openssl req’ -new -key client.key -out client.csr

! Signer la csr :

$ openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out’ client.crt

Le fichier client.crt est signé par le ca, that’s it !

cf le man openssl pour plus d’info