Blog / Articles

Juste mes pensées et mes retours d'expérience un peu en vrac mais toujours utiles !

Installer pear et phpDocumentor2 sur Mac OS X

phpDocumentor2 est un magnifique outil vous permettant de générer une documentation complète de votre projet. Pour le faire fonctionner, vous devrez l’installer via pear. Ce dernier n’étant pas présent sur OS X par défaut, procédons à son installation :

cd /tmp/
curl http://pear.php.net/go-pear.phar > go-pear.phar
php go-pear.phar

NB : Pour ceux qui utilisent Zend Server, je vous conseille d’ajouter /usr/local/zend/bin/ à votre PATH afin d’utiliser les binaires de la dernière version de PHP du ZS.

Lors de l’installation de pear, l’installeur vous demande le chemin d’installation. Je préconise, plutôt que de déposer les fichiers dans votre dossier personnel, d’utiliser le $prefix /usr/local/pear/

Une fois pear installé, modifiez votre profil de terminal (.bashrc, .zshrc, etc.) pour ajouter /usr/local/pear/bin/ à votre path.

vim ~/.zshrc
source !$

Il ne nous reste plus qu’à installer phpDoc :

pear channel-discover pear.phpdoc.org
pear install phpdoc/phpDocumentor-alpha

Pour l’utiliser :

cd /votre/projet/
phpdoc -d . -t docs
phpdoc project:transform -s docs/structure.xml -t docs/

NB : Afin d’éviter tout problème de taille de mémoire, je vous conseille de modifier les paramètres de votre php.ini comme suit :

date.timezone = Europe/Paris
max_execution_time = 3000
memory_limit=2048M
Ajouter un commentaire

Debian Squeeze : Remplacer MySQL par Percona Server

Nous utilisons tous (à quelques exceptions près) MySQL sur nos serveurs web LAMP. Et si aujourd’hui on vous proposait un fork plus performant du serveur de base MySQL ? C’est ce que Percona Server vous propose. Un fork complètement transparent qui intègre scalabilité, clustering et optimisation automatique de votre service MySQL. En dehors de ces optimisations, l’utilisation de Percona vous permettra d’utiliser les versions les plus récentes de MySQL sur vos Squeeze stables (MySQL 5.5 au lieu de 5.1).

Je vous propose ici un exemple basé pour une Debian Squeeze. A vous d’adapter l’installation en fonction de votre distribution (les repos APT et YUM étant disponibles. Le cas échéant il faut passer par la source.)

Imaginons que vous ayez installé mysql via la commande suivante :

apt-get install mysql-server phpmyadmin

Votre version de MySQL est la 5.1.61 des dépôts Squeeze stable :

root@debian:~# mysql -v -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.1.61-0+squeeze1 (Debian)

Modifions notre fichier sources.list pour intégrer les repos Percona :

root@debian:~# vim /etc/apt/sources.list
deb http://repo.percona.com/apt squeeze main
deb-src http://repo.percona.com/apt squeeze main

Ajoutons maintenant la clé de ces nouveaux dépôts :

root@debian:~# gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
root@debian:~# gpg -a --export CD2EFD2A | apt-key add -

Lancez un update des sources :

root@debian:~# apt-get update

Il ne reste plus qu’a installer le paquet server. APT vous abreuvera de lignes concernant les paquets à supprimer. N’ayez pas peur, ils seront remplacés par la version Percona correspondante (pour les utilisateurs de zend-server-ce, une résolution manuelle des dépendances via aptitude sera nécessaire) :

root@debian:~# apt-get install percona-server-server-5.5

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libhtml-template-perl
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libaio1 libmysqlclient16 libmysqlclient18 percona-server-client-5.5
percona-server-common-5.5
Suggested packages:
tinyca
The following packages will be REMOVED:
mysql-client mysql-client-5.1 mysql-common mysql-server mysql-server-5.1
mysql-server-core-5.1
The following NEW packages will be installed:
libaio1 libmysqlclient18 percona-server-client-5.5 percona-server-common-5.5
percona-server-server-5.5
The following packages will be upgraded:
libmysqlclient16
1 upgraded, 5 newly installed, 6 to remove and 0 not upgraded.
Need to get 66.8 MB of archives.
After this operation, 150 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Le process d’installation vous demandera le nouveau mot de passe root du serveur MySQL. Vous pouvez garder le même :

Une fois le remplacement effectué par la machine, votre MySQL sera désormais un Percona Server en version 5.5.21-55 :

root@debian:~# mysql -v -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 61
Server version: 5.5.21-55 Percona Server (GPL), Release 25.1

Ajouter un commentaire

Migration d’une repo GIT vers une nouvelle remote/origin.

Vous souhaitez transférer l’intégralité d’une repo depuis une remote vers une nouvelle ?

1. Ajouter la nouvelle remote :

git remote add nom_nouvelle_repo url_nouvelle_repo

2. Pushons maintenant le contenu de notre repo actuel vers la nouvelle remote :

git push --all nom_nouvelle_repo

ou si vous ne souhaitez poussez qu’une branche :

git push nom_nouvelle_repo master

3. On supprime la remote origin :

git remote rm origin

4. Et on finit par renommer la nouvelle remote :

git remote rename nom_nouvelle_repo origin

Vous pourrez désormais pousser vers la nouvelle repo comme à l’habitude via un

git push origin master

NB : Dans le cas où vous auriez un accès au filesystem, préférez un rsync entre les deux serveurs.

Ajouter un commentaire

Vends iMac 27″ Quad Core i5 2,8GHz / 12 Go de RAM

Pour changement vers un MacBook Pro, je vends un iMac Quad Core i5

Caractéristiques techniques :

  • Quad Core i5 2,8GHz
  • 12 Go de Ram
  • Ecran 27″ (2560 x 1440 pixels LED)
  • ATI Radion HD5750 1Go
  • 1To de disque dur
  • Clavier wireless et Magic Mouse jamais utilisés !

L’iMac est une série de Mi-2010 acheté le 25/01/2011 à l’Apple Store d’Opéra (Paris).
Cote Mac2Sell : 1600 € (lien vers la cote)

Parfait Etat.

Contactez moi par email : guillaume@moigneu.net ou par téléphone au 06 82 76 82 04

Prix : 1500 €

Pas d’envoi. Remise en main propre et paiement en liquide.
Emplacement : La Varenne Saint Hilaire (94210). Disponible pour essai.

 

Photos :

Screenshots :

Ajouter un commentaire

Pérégrinations #1 – Git et intégration front-end

Ajouter un commentaire

Boostez votre terminal (OS X & Linux)

Nous sommes de plus en plus nombreux à utiliser le Terminal pour certaines de nos tâches quotidiennes. Que l’on soit utilisateur simple, développeur web/mobile ou fan de la compil’ à la main, l’usage du Terminal nous facilite grandement la vie.

Vous trouverez dans cet article mes fichiers de configuration bash afin de personnaliser votre terminal et améliorer votre productivité.

Voir l’article entier

Ajouter un commentaire

Pourquoi WordPress est il si vulnérable aux attaques ?

Il est commun d’entendre au détour des blogs d’info sur les technologies web que WordPress est désormais la cible de telle ou telle attaque et que la solution est vulnérable et la cible de nombreux pirates.

Que faut-il réellement en penser ?

Comme toute solution web (et informatique en général), oui, WordPress a des failles de sécurité. Tout comme Magento, Windows, OSX et j’en passe. Tout système exposé sur le web devient vulnérable avec le temps. Et ce délai n’est que plus réduit lorsque la popularité de cet outil grandit.

Cependant l’équipe de développement WordPress met tout en oeuvre pour corriger ces failles au plus vite et il n’est pas rare de voir des mises à jour de sécurité arriver 24 ou 48h après la découverte de l’exploit. La version actuelle de WordPress, la 3.3.1, ne contient pas de faille connue et est pour l’instant sécurisée.

Pourquoi alors il y a t’il tellement de sites WordPress hackés ?

La réponse à cette question n’est pas forcément si évidente. La faute est largement partagée entre les différents acteurs.

Un pirate a en effet des dizaines de manière de pénétrer et modifier votre site. Et lorsque l’on étudie ces possibilités, on s’aperçoit rapidement que leur source provient généralement de l’utilisateur final et non pas de la solution installée.

Voici une liste non-exhaustive des causes liées à l’utilisateur final qui représentent la majorité des attaques actuelles :

  • Mauvaise politique de sécurité des mots de passe (FTP, SSH, WP, etc.)
  • Mises à jour de la solution non-effectuées
  • Infection de logiciels tierces (FileZilla)
  • Failles et backdoors présentes dans les plugins et thèmes ajoutés par l’utilisateur

Une deuxième source de failles provient de l’hébergement du site. La multiplication des offres d’hébergement low-cost ne va pas dans le sens de la sécurité sur Internet. Voici quelques exemples de problèmes rencontrés chez de nombreux hébergeurs :

  • Serveurs non mis à jour sur d’anciens systèmes et logiciels
  • Mauvaise gestion des droits permettant les attaques de types Cross-Site Scripting (infection d’un site par le biais d’un autre hébergé sur la même plate-forme) et l’upload de fichiers frauduleux
  • Mauvaise politique de sécurité des mots de passe, etc.

Ces hébergements mutualisés sont une plaie pour les utilisateurs car même si vous avez sécurisé votre propre installation, votre site n’est pas à l’abri d’un pirate utilisant le site de votre voisin pour altérer vos fichiers.

Ne parlons même pas des hébergements dédiés que de nombreux utilisateurs mettent en place sans avoir la moindre notion d’administration système. Ces systèmes se transforment vite en nids à spams et malwares en tout genre.

Que faire pour éviter ces piratages ?

Même si il est illusoire de penser que votre site pourra être un jour 100% sécurisé, certaines modifications simples et rapides peuvent vous éviter de nombreux désagréments :

  1. Effectuez des mises à jour régulières de la solution WordPress et abonnez-vous au flux RSS de ces dernières
  2. Elaborez vos mots de passe aléatoirement et ne réutilisez pas un mot de passe
  3. Sélectionnez un hébergeur digne de ce nom quitte à payer une somme annuelle un peu plus importante
  4. Etudiez et vérifiez tout contenu externe que vous intégrez comme les plugins et les thèmes
  5. Faites des sauvegardes régulières de votre site et de votre base SQL.

Ces règles semblent très basiques et pourtant peu de webmasters prennent la peine de les mettre en place.

N’hésitez pas à proposer d’autres mesures de sécurité qui vous semblent impératives ! Nous détaillerons les solutions techniques dans de prochains articles.

Tags: Ajouter un commentaire

Rechercher et remplacer du texte/string sous Linux

Petit truc et astuce à destination des développeurs et administrateurs système. Qui n’a jamais eu à remplacer des dizaines de fois un même string éparpillé dans le code d’une application ?

Linux propose ses outils de base pour vous faciliter la vie mais je vous recommanderai également une très bonne alternative.

1. La solution de base sed

sed est une commande riche et complexe qui permet, via des regex, d’intervenir sur le contenu des fichiers sélectionnés.

Dans le cas où vous souhaiteriez remplacer une chaîne de caractère (string) dans un fichier, voici la commande à exécuter :

sed -i 's/ancien_string/nouveau_string/g' fichier.txt

Imaginons maintenant que vous souhaitiez le faire de manière récursive sur tous les fichiers d’un dossier. Rien de plus simple, il suffit de coupler sed à find :

find ./ -type f -exec sed -i 's/ancien_string/nouveau_string/g' {} \;

Vous pouvez également limiter l’exécution aux fichiers de type PHP par exemple :

find ./ -type f -name '*.php' -exec sed -i 's/ancien_string/nouveau_string/g' {} \;

Vos fichiers seront ainsi tous traités directement. Le seul problème est que vous n’avez pas de retour clair sur les chaines remplacés. Pour plus d’informations sur sed, n’hésitez pas à consulter sa MAN page.

2. L’alternative rpl

L’utilitaire rpl est disponible en paquet sur les plus grandes distributions :

aptitude install rpl

rpl à l’avantage de rendre l’exécution du remplacement plus interactif en vous demandant si vous souhaitez enregistrer chaque fichier modifié. Pour faire le même remplacement que dans notre cas numéro 1, il vous suffit d’éxécuter la commande suivante :

rpl -x'.php' -pR "ancien_string" "nouveau_string" *

A vos terminaux !

 

Ajouter un commentaire

Remove JavaScript malicious code from your site/server

malicious

It seems many sites (especially WordPress ones) have been hacked recently.

Some script kiddies (for example the owner of the 91.196.216.64 server) scan your website to inject a malicious javascript line in your .js files. Voir l’article entier

Ajouter un commentaire

Using OpenERP 6.0 Client on Mac OS X

Here at TACTfactory (our mobile agency) my mates are really fond of OpenERP to manage our business. Unfortunately, the desktop client is only available as linux packages or source but needs python and gtk to be installed in order to run properly.
Voir l’article entier

2 commentaires