Rewrite rule pour un project Symfony2

Bonjour,

Je viens de galérer pour configurer apache2 pour le framework Symfony2 pour générer de belles URL. Par défaut, dans Symfony2, les URL sont de la sorte: http://www.monsite.com/monprojet/web/app.php. Mon client souhaitait que cela soit http://www.monsite.com/monprojet. J’ai pensé naïvement qu’un Alias suffirait!
Alias /monprojet “/var/www/monprojet/web/app.php”

Et bien, non, car pleins d’URL attendent le app.php (http://www.monsite.com/monprojet/web/app.php/blah). Une rewrite rule s’impose donc:

Alias /ClubVBE /var/www/monsite/monprojet/web/
<Directory /var/www/monsite/monprojet/web/>
        RewriteEngine On
        RewriteBase /monprojet
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>

La rewrite condition filtre les requêtes vers des fichiers interdisant l’execution de la règle, car on ne veut pas introduire le app.php si la requête est un fichier. La règle ajoute app.php après la base (/monprojet) et ajoute la chaîne qui correspond à la requête.
Le flag QSA permet d’ajouter les query après les URL et le flag L termine l’exécution des règles (pas très nécessaire ici).

En espérant que cela vous soit utile!

Posted in apache2 | Leave a comment

Un nouveau site pour Altern-IT, pourquoi?

Bonjour,

Altern-IT se dote d’un nouveau site. Pourquoi?
Il était nécessaire de clarifier notre offre, notre site précédent était relativement pauvre sur la description de nos services. Aujourd’hui, nous renforçons notre compétence en infogérence en l’accompagnant de 3 niveaux de services pour l’ensemble de nos offres, et plus particulièrement l’offre hostonomy, que je vous invite à consulter.

Je suis intéressé par avoir votre avis sur ce nouveau site!

Posted in Uncategorized | Leave a comment

Deux tips rsync pour la route!

Si vous ne connaissez pas rsync, je vous conseille le man et les différents tutoriels existant sur le sujet. Ici, je vais faire deux petites utilisations de rsync vous permettant d’aller un peu plus loin (sans aller au bout du monde).

1) Vous avez besoin de synchroniser un répertoire source en reproduisant l’arborescence source ou une partie de cette arborescence, alors l’option -R est faite pour vous. Exemple:
Vous souhaitez backuper /home/anchorage mais pas l’ensemble de /home/ sur /nas/backup en gardant l’arborescence source /home/anchorage…:

rsync -aR /./home/anchorage/ /nas/backup

Vous obtiendrez une sauvegarde /nas/backup/home/anchorage
Utilisation du -R (relative path) avec le “.” pour définir la racine à partir d’où on garde le chemin. Très utile et devenue pour moi indispensable!

2) L’option -b (backup) est aussi une petite merveille. Elle vous permet de backuper sur la destination les fichiers qui sont modifiés avant de les synchroniser et par conséquent de garder plusieurs versions antérieures. Reprenons l’exemple ci-dessus. Nous voulons maintenant garder l’historique de nos modifications

rsync -aRb --backup-dir=/nas/backup/inc/`date +%y-%m-%d` /./home/anchorage /nas/backup/main/

Traduction?
Nous sauvegardons maintenant /home/anchorage dans /nas/backup/main/home/anchorage et à chaque modification d’un fichier dans /nas/backup/main/home/anchorage, nous créons un répertoire /nas/backup/inc/2012-08-29/ avec les fichiers qui vont être modifiés dans le répertoire de sauvegarde principal. Il suffit alors de mettre en cron cette commande et nous gardons l’historique quotidien de tous les fichiers.
Attention, cette option ne fonctionne qu’en local!

En espérant que cela puisse vous être utile.

Posted in admin, shell | Leave a comment

Accélerer wordpress n’est pas du luxe!

Nous savons que wordpress est devenu l’outil ultime pour créer un site web visuellement simple sans trop de fonctionnalités, car il permet d’aller vite et de monter le site sans grande compétence en développement. Formidable! Par contre, nous savons tous aussi qu’il est lent et qu’il est nécessaire en pratique d’accélérer wordpress, parfois affreusement lent pour des sites un peu chargés. Moteur de blog à l’origine, CMS de plus en plus complet aujourd’hui, c’est un outil de gestion dynamique (contenu stocké en base servi par des scripts php) qui finalement sert beaucoup à faire des sites vitrines relativement statiques d’un point de vue contenu.

Accélérer wordpress en faisant du cache

Ce mécanisme de stockage de contenu en base ralentit considérablement l’accès aux données par le serveur web, qui ouvrent les scripts, les exécutent, fait les requêtes en bases pour générer le contenu html pour finalement l’envoyer à l’explorateur de l’internaute. L’ouverture des scripts, leur exécution et les requêtes en bases redonnent quasiment systématiquement le même résultat! Pourquoi ne pas pré-générer le contenu pour le servir plus rapidement? Cela s’appelle faire du cache!

Allons-y! Nous avons deux méthodes relativement simples pour accélérer wordpress, mais qui nécessitent d’avoir la main sur le serveur, que sont php-apc (Alternative PHP Cache), un outil de mise en cache fait pour php et memcached, un logiciel serveur de cache.

Un plugin pour accélérer wordpress

Comment les utiliser sur un wordpress? Avec wordpress et grâce à la communauté, la réponse est toujours la même, il y a un plugin: “W3 total Cache”.
Ce plugin vous permet de cacher les pages, de réduire le nombre de css en ne gardant que les css utiles pour la page, à réduire les accès en base et pour chacun des ces éléments vous pouvez choisir le type de cache. Vous disposez d’un large choix, en fonction de ce qui est disponible sur votre serveur.
On peut faire du cache sur le disque, si on ne dispose ni de php-apc et memcached. Il faudrait bencher et la performance du cache sur disque doit dépendre des cas, car des accès disques sont toujours plus lent que des accès en mémoire.

Pour utiliser php-apc, il suffit d’installer le module php-apc et de redémarrer apache. Dans la configuration de W3 Total Cache, apparaîtra automatiquement php-apc pour les différents éléments que vous voulez cacher.

Pour utiliser memcached, il faut installer memcached, le serveur de cache en lui-même et php5-memcache, le module php pour y accéder. La configuration par défaut (sur debian) permet de faire tourner memcached en daemon en écoutant sur la seule interface 127.0.0.1. Dans le cas d’un serveur dédié pour le wordpress, c’est suffisant.
Memcached a cet intérêt de pouvoir être utilisé sur un autre serveur, ce qui permet aussi d’être utilisé pour stocker des sessions à utiliser sur plusieurs serveurs apache2 loadbalancé.

Les effets sur la rapidité de wordpress sont évidents et sur un site à fort traffic, ceux sur la consommation système le sont tout autant!

Sur nos machines Hostonomy, php-apc et memcached sont installés par défaut. A vous de choisir.

Posted in apache2, hostonomy | Leave a comment

Une loi contre internet (+1)

Nous est proposée depuis hier une nouvelle loi pour nous protéger du méchant internet, qui, nous le savons tous, a inventé en moins de 20 ans, le terrorisme, le banditisme, la piraterie et la pédophilie.

Cette loi semble vouloir condamner pénalement tous les internautes visitant régulièrement des sites extrémistes. Bien, bien, bien! Dans l’émotion des évènements, ce genre d’annonce a tendance à attirer la sympathie de l’électeur, mais la ficelle est cette fois encore plus énorme que d’habitude.

Pourquoi? Pour deux raisons, au moins…

Parce que pour savoir qu’un internaute visite régulièrement des sites extrémistes, il faut décider de surveiller tout le trafic de l’internaute en question. Et par voie de conséquence, il faut surveiller le trafic de tous les internautes. C’est un cas évident du syndrôme de “tentation du Big Brother”.

Parce que ou le site est illégal et il doit être fermé, ou alors il ne l’est pas et en quoi serait-il possible de condamner pénalement des internautes consultant un site légal. C’est du déli d’opinion, non?

Ce genre de mesure n’a pas vraiment de chance d’aboutir et il s’agit là d’une proposition électoraliste pensée sur un coin de table probablement par un quelconque conseiller omnipotent. Mais il s’agit tout de même d’un coup de boutoir pour faire accepter au citoyen la surveillance généralisée du net.

Ne baissons pas la garde et battons nous pour un internet libre!

Site d’information reflets.info
La quadrature du net

Posted in politique, presse, Uncategorized | Leave a comment

Création d’un café citoyen sur Cachan

Jeudi 15 mars à 20h30 sera la première réunion du café citoyen de Cachan au café Lorada! L’objectif de cette première sera de faire un point sur les libertés sur Internet, les projets tels qu’ACTA et les groupes en lutte comme les Anonymous, telecomix, la quadrature du net, reflets.info…

Site du café citoyen de Cachan

Posted in Uncategorized | Leave a comment

Vtiger / Asterisk

Comment configurer Asterisk pour pouvoir utiliser le module Asterisk de vtiger, le CRM open-source?

Tout d’abord, il faut savoir que vtiger dans sa version 5.1 actuellement stable, utilise les contextes asterisk de façon statique! Par conséquent, il faut soit modifier les sources de vtiger, soit utiliser les mêmes contextes que vtiger. Cette dernière solution est plus simple.

Dans asterisk, ajouter un utilisateur pour vtiger:

[monuser]
secret=lemotdepassedemonuser
deny=0.0.0.0/0.0.0.0
permit=IPDEVTIGER/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,originate

Attention, la doc de vtiger ne donne pas le même champs read et cela n’est pas fonctionnel avec Asterisk 1.6.

Cet utilisateur, l’adresse et le port du serveur Asterisk doivent être aussi configurés, dans vtiger dans le gestionnaire de modules. Par ailleurs, pour chaque utilisateur vtiger, il faut configurer l’extension asterisk utilisé pour cet utilisateur. Ainsi, quand il clickera sur un numéro dans vtiger, un appel sera lancé entre son poste et celui de son client. Très pratique!

Dans votre dialplan asterisk (décrit dans extensions.conf), il faut utiliser le contexte “from-internal” pour passer les appels en click2call.

En tant que directeur technique de la société Altern-IT, vous pouvez me contacter pour avoir plus d’informations.

Posted in asterisk, open-source | 1 Comment

Replication facile de base mysql master/slave

Comment effectuer simplement une replication mysql master slave? Quelques règles vont vous permettre d’atteindre l’objectif visé.

Dans la configuration des deux serveurs, tout d’abord, il faut avoir les mêmes fichiers de configuration my.cnf, à une différence près: dans la section mysqld, il faut un champs server_id, qui soit un entier, différents sur le master et le slave. Si vous avez plusieurs slave, ce champs doit aussi être différent d’un slave à l’autre.
Il faut aussi avoir activer les logs binaires afin de rejouer les opérations faites sur le master sur le slave
Par exemple, sur le master:

[mysqld]
log-bin=mysql-bin
server_id=1

Et sur le slave:

[mysqld]
log-bin=mysql-bin
server_id=2

Attention, il faut bien entendu que les process mysql écoutent sur le réseau ce qui n’est pas le cas par défaut…

On démarre les deux process mysql. Sur debian, par exemple:

/etc/init.d/mysql start

Si ce sont de nouvelles machines, avec une ancienne base, on importe le dump de la base. Attention, il faut avoir fait le dump de la base uniquement à répliquer, pas le dump de toutes les bases, car sinon au moment de l’import, vous allez écraser votre base mysql, ce qui pourrait être fâcheux.

La commande est la suivante, à passer sur le master et le slave.

mysql -uadmin -p < dump.sql

Dans le master, au moins, il faut créer un utilisateur qui va avoir le droit de se connecter, avec les droits de réplication, et les droits de réplication uniquement:

mysql> CREATE USER 'repluser'@'slave.example.com' IDENTIFIED BY 'replpassword';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'slave.example.com';

où slave.example.com est le hostname (fqdn) du slave.
Je conseille de faire l'opération symétrique dans le slave afin de pouvoir inverser les rôles plus aisément.

Afin de synchroniser les opérations en master et slave, il faut interrompre les opérations d'écriture quelques instants sur le master, afin de connaître la position du master dans les logs binaires:

mysql> FLUSH TABLES WITH READ LOCK;

Puis on passe la commande qui indique cette position:

mysql> SHOW MASTER STATUS;

Cette commande donne un fichier de log en cours et une position. Noter ce résultat à garder précieusement. Attention à ne pas sortir de la session mysql, pour ne pas lever le lock tant que la réplication n'est pas en service côté slave

Démarrons la réplication sur le slave...
Il faut d'abord s'assurer qu'elle n'est pas déjà en cours:

mysql> STOP SLAVE;

Et configurons la replication avec les informations serveurs (user défini plus haut, fichiers de log en cours, et position) et la commande "CHANGE MASTER":

mysql> CHANGE MASTER TO MASTER_HOST='master.example.com', MASTER_USER='repluser', MASTER_PASSWORD='replpassword', MASTER_PORT=3306, MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=106;
mysql> START SLAVE;

où master_log_file et master_log_pos sont les résultats de la commande show master status.

La réplication est maintenant en oeuvre.
Sur le master, vous pouvez sortir de votre session mysql, ou passer la commande:

mysql> unlock tables;

N'oubliez pas de faire des tests d'insertion et de suppresion de donnée pour vérifier que cela fonctionne.

Posted in mysql, open-source | 2 Comments

Mettre à jour ses machines debian

Hello,

Je ne connaissais pas mais un moyen simple de mettre à jour l’ensemble un parc de debian est d’utiliser apt-dater! C’est très simple, il suffit d’installer apt-dater, sur la machine depuis laquelle vous souhaitez faire une mise à jour de votre parc et apt-dater-host, sur chacune des machines du parc.

Les pré-requis:
-Sur votre machine de contrôle , avoir un utilisateur (non root) qui a un accès ssh par clé sans passphrase sur chacune des machines.
-Sur vos machines à updater, avoir un utilisateur (non root) qui soit sudoer, sans passowrd au moins sur aptitude ou apt-get

Comment cela fonctionne-t-il?
Il n’y a pas de configuration à faire sur les machines à mettre à jour. Sur la machine de contrôle, il faut aller dans le fichier $HOME/.config/apt-dater/hosts.conf pour ajouter l’ensemble des machines que vous souhaitez mettre à jour (user@hostname).

Ensuite, la commande apt-dater sur la machine de contrôle et hop, c’est parti!

Merci à Korben pour l’info

Posted in admin, open-source | Leave a comment

Héberger un wordpress sur hostonomy!

Bonjour,

WordPress, moteur de blog à ses débuts, est devenu le CMS des CMS, avec une part de marché particulièrement importante. Avec quelques inconvénients toutefois! Notamment son faible niveau de performance. Comment héberger un bon wordpress? Il faut cumuler, selon moi, l’utilisation du plugin w3 Total Cache avec le module php-apc, ce qui n’est pas le cas partout, et la maîtrise de ce paramètre n’est pas évidente chez tous les hébergeurs.

Sur hostonomy, php-apc est présent par défaut. Il suffit alors d’installer sur le tableau de bord de votre worpdress le plugin “W3 Total Cache”, d’activer dans ses options, le cache sur les pages et la database, avec l’option php-apc.

Simple et efficace!

Posted in apache2, hostonomy | Leave a comment

Swedish Greys - a WordPress theme from Nordic Themepark.