Toute l'actualité francophone sur PHP en un seul flux

1er juillet – PHP Index: Symfony 1.1

Après plusieurs mois de développement, la version 1.1 du framework PHP Symfony est désormais officiellement disponible.

Parmi les nouveautés et évolutions nous trouvons entre autres :

  • Une nouvelle architecture de Symfony plus configurable et découplée pour utiliser ou remplacer des parties du framework plus facilement.
  • Un nouveau framework de formulaire orienté-object facilitant leur création.
  • Un nouveau système de tâches pour les scripts batch et les utilitaires en ligne de commande.
  • Un nouveau parser YAML avec un reporting des erreurs plus détaillé.
  • Un nouveau gestionnaire de plugins compatible avec l'API standard de PEAR et qui gère désormais les dépendances.
  • L'ORM Propel 1.2 est désormais intégré en temps que plugin pour faciliter le passage à un autre ORM (comme Doctrine ou Propel 1.3).
  • Un plugin sfCompat10Plugin facilite le passage d'un projet basé sur la branche 1.0 de Symfony vers la branche 1.1.
  • Une mise en cache du système de routing pour augmenter les performances.

A noter également des améliorations de l'internalisation, des outils de test et une refonte totale de l'utilitaire en ligne de commande.

Pour en savoir plus :
The wait is over: symfony 1.1 released
Documentation d'installation

1er juillet – tigrou/pwet.fr: La recherche universelle de Google même dans le code

Petite découverte aujourd'hui en cherchant un peu par hasard mysql_num_rows dans Google , puisqu'on peut y voir un petit extrait de code PHP d'une application nommée eNdonesia (d'ailleurs le fait d'avoir des mysql_query() et mysql_num_rows() perdus au milieu de HTML ne donne pas très envie mais c'est une autre histoire...).

Je savais que la recherche universelle était en place depuis un moment, mais c'est la première fois que je vois des morceaux de Google Code Search au milieu des résultats et pourtant des recherches portant sur du code j'en fais régulièrement. En regardant les autres moteurs sur la même recherche, il est amusant de constater que Yahoo! remonte en dixième place une page avec le célèbre warning "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result" qui est certes répèter un bon nombre de fois. Les résultats sur Live sont encore plus surprenants, puisque ce dernier sort une page du même genre en neuvième position mais chose étonnante, il faut aller en troisième page pour trouver une page de PHP.net et encore ce n'est pas la bonne ! Google a semble t il encore un bonne longueur d'avance !

1er juillet – Nexen.net: PHP sécurité de PHP freaks

Image pour le titre du contenu
Daniel Egeberg publie un dossier plutôt complet sur la sécurité PHP, sous forme d'un PDF de 20 pages. La sécurité PHP passe par le masquage d'erreur, les injections SQL et HTML, les téléchargements de fichiers, et la protection des sessions.
Ce document est à utiliser comme une référence, et si tous les points affichés sont pris en comptes, il sera difficile de trouver une faille dans vos applications. Il manque peut être une section sur les directives de sécurité PHP plus détaillées.

1er juillet – Nexen.net: Uploaders d'Images avec Adobe AIR et JavaScript

Image pour le titre du contenu
"Dans cet article, je vais vous montrer comment construire un uploader d'images avec Adobe AIR, Javascript et HTML. Mon premier exemple sera le chargement d'un fichier. Puis, en se basant sur cet exemple, nous allons voir comment télécharger un groupe de fichiers. Et je finirais en affichant la liste des fichiers actuellement disponibles sur le serveur, après leur téléchargement."
Jack Herrington s'attaque au problème classique des téléchargements d'images, si populaires auprès des utilisateurs, mais tellement inefficaces en HTML.

1er juillet – Nexen.net: Symfony 1.1 publiée

Image pour le titre du contenu
Symfony 1.1 est publié en version stable et finale. La liste des évolutions du populaire framework de développement est très intéressantes.
Les classes de formulaires, qui permettent de produire des Formulaires HTML, et de les valider, ont été réécrites et sont documentées (en français). Le système de gestion des tâches a aussi revu en profondeur, l'analyseur YAML réécrit.
Le projet est livré avec un plug-in de compatibilité avec la version 1.0 (sfCompat10), ainsi que 8500 tests unitaires de regression.
Bravo à toute l'équipe pour le travail, et bonne chance à cette version.

1er juillet – Nexen.net: Les utilisateurs de FireFox sont les plus sécuritaires

Image pour le titre du contenu
Selon une étude indépendante menée par Google Switzerland, IBM Internet Security Systems et CSG ETH Zurich, les utilisateurs de FireFox sont les plus prudents, car ils utilisent la toute dernière version du système (à l'exception de 16% d'entre eux). En fait, les chiffres sont beaucoup plus bas pour Safari, Opera et Internet Explorer. Ces derniers sont 1 sur 2 à ne pas utiliser la dernière mouture du navigateur.
Alors que tout ces navigateurs utilisent un système de surveillance automatique de la dernière version, il y a encore tant d'utilisateurs qui ignorent ces mises à jour. Pourtant, il n'y a qu'un seul clic, sauf si on ne dispose pas des droits pour cela sur la machine.
Les auteurs de l'étude propose au final de mettre une date de péremption sur les navigateurs : meilleur si utilisé avant... Cela rappelle les licences temporaires, mais maintenant, avec une argumentation sécuritaire.

1er juillet – Nexen.net: Revue de MONyog, moniteur pour MySQL

Image pour le titre du contenu
Sheeri Kabral passe en revue MONyog, un moniteur MySQL dédié. Il s'installe en quelques minutes, surveille les requêtes SQL (tentatives de piratage, qualité des requêtes SQL), et produit des graphiques de performances. MONYog se distingue des autres outils de surveillance, comme MySQL entreprise, par l'absence d'agent local : pas besoin d'installation particulière sur le serveur de destination pour le suivre.
MONyog coûte 129 $ US, avec 1 an de support.

2 juillet – PHP Index: Symfony 1.2 planifié pour octobre 2008

Après la sortie récente de Symfony 1.1, Fabien Potencier décrit la feuille de route pour Symfony 1.2, dont la sortie est prévue en octobre 2008.

Les nouvelles fonctionnalités prévues sont les suivantes :

  • Réécriture complète de l'admin generator, afin de profiter des nouvelles fonctionnalités pour les formulaires et en vue de la rendre plus souple et personnalisable.
  • Plugins Propel et Doctrine.
  • Filtrage natif des données.
  • Intégration de la librairie Swift (solution d'envoi d'email).
  • Création d'un plugin pour les éléments javascript, en vue de laisser le choix à l'utilisateur pour l'éventuel framework javascript à employer.
  • Discussion ouverte sur les fonctionnalités nécessaires pour un "deployement task" adéquat.

Il annonce un nouveau management des sorties de Symfony dont la date de sortie sera désormais fixée à l'avance. Notamment celle de la version 1.2 est d'ores et déjà prévue pour octobre 2008, quatre mois selon après la version 1.1. Pour permettre ce type de management, le développement de chaque nouvel élément sera rendu indépendant des autres et attribué à un membre spécifique de l'équipe.

Il est à noter que seul l'ajout du point sur l'admin generator est considéré comme "must-have" pour la version 1.2, les autres seront ajoutés s'ils sont prêts à la date échue.

Pour en savoir plus :

2 juillet – Nexen.net: Statistiques PHP de juin 2008

Image pour le titre du contenu
Les statistiques de diffusion PHP dans le monde pour juin 2008 sont arrivées.

  • PHP 5.2.6 progresse vivement et rattrappe PHP 5.2.5

  • PHP 5 atteint 38,93% de part de marché

  • Le sondage a passé en revue plus de 30 millions de domaines ce mois-ci

2 juillet – Nexen.net: PHP 5.3 reçoit l'aide de Lukas Smith

Image pour le titre du contenu
Lukas Smith est maintenant co-RM (Release Manager), avec Johannes Schlüter, pour faire avancer PHP 5.3. C'est une bonne chose, et PHP 5.3 en a bien besoin. De nombreuses fonctionnalités de PHP 6.0 ont finalement été ramenée en 5.3, et il semble que le code actuel ne soit pas encore bien stable : mon dernier make test sur OSX affichait 13% d'erreurs dans les 6000 tests unitaires (YEAH), et le CLI était inutilisable.
Bonne chance à Lukas, et Johannes. Pour les aider, pas de secret : téléchargez PHP sur la version snaps, et testez leur sur vos applications. Plus on en sait maintenant, moins il y a urat de bugs plus tard.

2 juillet – Nexen.net: Lire des RSS en PHP

Image pour le titre du contenu
'Récemment, je cherchais un agrégateur RSS. J'ai été surpris de réaliser la difficulté que j'avais à trouver celui qui me convenait parfaitement. Et, manquant de patience, je me suis penché sur l'idée d'écrire le mien. Dans cet article, je vais vous montrer comment créer votre propre lecteur RSS!
Par Ian Gilfillan

2 juillet – Nexen.net: MySQL proxy tests de performances

Image pour le titre du contenu
Alex Tomic a testé le proxy MySQL en charge sur EC2 : un proxy et 4 serveurs MySQL. Les requêtes sont réparties sur 4 serveurs MySQL, et distribuées (entrée et sortie) via le proxy. Les résultats montrent que le point critique est entre 4 et 8 threads concurrents : en dessous de ce niveau d'activité, le surcoût de MySQL proxy rend l'architecture plus lente. Une fois ce cap passé, le gain devient plus intéressant, et l'archi proxy est capable de monter en puissance jusqu'à 4 fois la charge nominale de chaque serveur.

2 juillet – Arnaud Limbourg: Lightroom - photos supprimées du catalogue mais pas du disque

Lors du traitement de photos avec Lightroom l'une des étapes essentielles est de supprimer des photos du catalogue lors du tri. Il arrive que la photo soit retirée du catalogue mais se trouve toujours sur le disque. La place disque ainsi perdue devient non-négligeable.

N'ayant pas trouvé de solution sur la toile j'ai écrit un script [PHP][php] qui parcourt récursivement un répertoire et regarde si les fichiers photos existe dans le catalogue de lightroom.

[php]: http://www.php.net Attention : je ne prends aucune responsabilité quand à l'utilisation que vous pourrez en faire, une mauvaise utilisation peut détruire votre catalogue, faites une sauvegarde au préalable.

Limitations : ce script n'interagi qu'avec un catalogue à la fois, si vous avez plusieurs catalogues référençant les mêmes photos sur le disque ce script ne vous sera pas d'une grande aide

Lightroom utilise une base de données SQLite il est donc possible de faire des requêtes sur cette base. Le schéma n'est pas publié par Adobe, si votre catalogue est corrompu ne venez pas vous plaindre :-)

Le script est non destructif, il affiche les informations sur les fichiers et les commandes que vous pouvez executer pour les supprimer.

Exemple d'utilisation (sur OS X):

php find_deleted_photos_lr.php ~/Pictures ~/Pictures/Lightroom/Lightroom\ Catalog.lrcat

Le script : http://www.limbourg.com/arnaud/code/find_deleted_photos_lr.php.txt

Les extensions considérées comme des photos se trouvent en début de script, modifiez les à votre guise.

ps: le script n'est pas spécialement beau. Denombreux bouts de code des examples de SPL (la librairie standard PHP) sont utilisés

3 juillet – PHP Index: Test des performances de CMS : Typo3, Joomla!, and Drupal

Sur son blog, Alex Shapovalov propose deux séries de tests comparatifs des CMS Typo3, Joomla!, and Drupal.

En mai 2008, une première série de tests lui avait permis de conclure que Drupal était notablement plus rapide que les autres CMS testés.
De nombreuses personnes lui avaient alors reproché de ne pas avoir fait le nécessaire pour optimiser le résultat de chacun des CMS testé (cache, environnement, ...). Aujourd'hui il propose les résultats d'une nouvelle série de tests en ayant fait les optimisations demandées. Il en conclut que Drupal tire encore une fois son épingle du jeu.

Affaire à suivre. Il ne serait guère étonnant que d'autres séries de tests voient le jour dans les prochains mois.

Pour en savoir plus :

3 juillet – Nexen.net: Vidéo PHP et MySQL, édition 51

Image pour le titre du contenu
Voici les 5 dernières vidéos PHP et MySQL.


Ces vidéos sont publiés sur les sites de partagent de vidéo. Ce sont des tutoriels enregistrés, des sessions de conférences, des screencast ou encore des slides de conférences.



N'hésitez pas à nous contacter pour signaler tout media qui mérite d'être ajouté à cette liste.

3 juillet – Nexen.net: Calculer les centiles MySQL

Image pour le titre du contenu
Les centiles sont une des 99 valeurs qui divise les données triées en 100 parts égales. Le premier centile (abusivement appelé percentile, de la version anglaise), identifie les valeurs le plus basses du groupe. On connaît souvent la médiane, qui découpe le groupe en 2 part de même taille : le concept est similaire.
Roland Bouman publie un article où il arrive à calculer les percentiles sans jointures, sous-requêtes ni variables utilisateurs : il se base sur GROUP_CONCAT, et SUBSTRING pour ordonner le groupe, et en extraire des portions intéressantes. Le tout se fait en une seule passe, et quelques manipulations de chaînes.
C'est un bon truc, mais je crois que je préfèrerai les variables utilisateurs, pour éviter de concaténer des chaînes trop grosses dans group_concat.

3 juillet – Nexen.net: Actualité de développement PECL, edition 206

6 paquets ont été mis à jour cette semaine :

  • en xdiff (0 visite) : extrait les différences et les patches entre fichiers

  • en lzf (0 visite) : compression LZF

  • en xattr (0 visite) : attributs étendus

  • en svn (0 visite) : Interface avec le client Subversion

  • en intl (0 visite) : extension d'internationalisation

  • en tcpwrap (0 visite) : interfarce TCP wrapper


PECL est la bibliothèque d'extensions C de PHP.

 



 

3 juillet – Nexen.net: Rdv Technique : Yahoo lance "SearchMonkey"

Image pour le titre du contenu
Via l'AFUP :
"Yahoo ! a quelque chose à fêter avec vous ! Dans le style "SearchMonkey" !
Vous êtes développeur ? Venez célébrer avec nous le lancement de SearchMonkey. Au programme de la soirée : des démos en live, des goodies, et bien sûr, nourriture et boisson à lavenant !
Lieu : La Cantine - Coworking Paris 151 rue de Montmartre Paris, Île-de-France 75002
Avec SearchMonkey, les développeurs et les webmasters peuvent utiliser les standards du Web sémantique et les données structurées pour améliorer et enrichir les résultats de Yahoo ! Search afin de les rendre plus utiles, plus pertinents et plus attrayants. Venez donc rencontrer léquipe qui a créé le service : vous aurez toute liberté pour leur poser les questions qui vous tiennent à coeur.
Nous espérons vous voir le 10 juillet !"

3 juillet – Nexen.net: Introduction aux hashages

Image pour le titre du contenu
"Une tâche classique pour tout système d'identification est de stocker et relire des mots de passe. La sécurisation de ces données est critique pour la mise en place d'un système stable et sécuritaire, car s'il y a une vulnérabilité, il faudra que les données se défendent seul contre les pirates qui auraient accès en lecture. Les mots de passe ne doivent jamais (ou très exceptionnellement) être sauvé en clair : il faut toujours compter sur la signature, un chiffrement uni-directionnel, pour protéger ces informations critiques, et au moins gagner du temps."
Par Sean Coates.

4 juillet – Nexen.net: Le meilleur du mois de Juin 2008

Image pour le titre du contenu
Des interfaces PHP plus conviviales Des interfaces PHP plus conviviales
(1914 hits)
30 Classes et Composants PHP utiles 30 Classes et Composants PHP utiles
(1659 hits)
Plus de 1000 scripts PHP Plus de 1000 scripts PHP
(1499 hits)
introduction au PHP/Java Bridge introduction au PHP/Java Bridge
(1222 hits)
  Outils pour le suivi des performances MySQL
(1198 hits)
addslashes : toujours la protection numéro 1? addslashes : toujours la protection numéro 1?
(1110 hits)
PHruts : Portage de Struts en PHP5 en version bêta PHruts : Portage de Struts en PHP5 en version bêta
(1097 hits)

Retrouvez les dépêches les plus populaires mois par mois, dans la rubrique 'Le meilleur du mois'.
Vous pouvez aussi découvrir l'actualité PHP et MySQL uniquement à travers les liens publiés sur nexen.net, dans le link blogue : tous les liens y sont recensés, mais pas le billet d'actualité.
Enfin, nous avons un porte-feuille de liens intéressants, dans la boîte à liens. Vous y trouverez beaucoup de PHP et MySQL, mais aussi d'autres petites perles intéressantes.
Bonne lecture!

5 juillet – Nexen.net: Actualité de développement PEAR, edition 209

Image pour le titre du contenu
3 paquets ont été mis à jour cette semaine :

PEAR est la bibliothèque de composants PHP.

 



 

5 juillet – Nexen.net: Alertes sécurité des applications PHP et MySQL, édition 209

Image pour le titre du contenu


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.



3 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Joomla et phpMyAdmin



6 juillet – Hello Design: VIP 2008 : Conference PHP

 Après quelques années d'absence, la 5ème édition de la VIP aura lieu du 11 au 13 juillet 2008 aux alentours de Lyon.

Cette rencontre sera le lieu de prédilection de la création numérique. La demoparty  ou aussi appelé coding party comporte différents concours informatiques dans lesquels les créateurs peuvent s'affronter, s'évaluer, en laissant une grande part de liberté dans la création et l'imagination.

Les principaux sponsors de ce rendez-vous sont :

 Cette année verra apparaitre une série de conférences accessible pour les visiteurs et les participants, dont une des conférences sera sous le thème de "Qu'est ce PHP ?" le Samedi 12 juillet a 14h00, présente par moi même (christophe Villeneuve)

 

Pour plus d'informations sur la VIP : cliquez ici


 

 

6 juillet – Apprendre-PHP.com: Générer une liste déroulante HTML de nombres

Cette petite fonction permet de générer une liste déroulante de nombres en une seule ligne de code. Il suffit de lui fournir quelques paramètres obligatoires tels que son nom, la valeur de départ, la valeur d'arrivée, la valeur par défaut et quelques autres données facultatives pour obtenir une belle liste déroulante sexy.

6 juillet – Nexen.net: FirePHP - Nouvelle version

Image pour le titre du contenu
Pour rappel, FirePHP est une extension de Firebug permettant d'aider l'utilisation du PHP en un simple appel.
FirePHP nécessite obligatoirement PHP 5 et se trouve maintenant 100 % compatible avec Firefox 2 et la nouvelle version de Firefox 3 qui vient de sortir.
En plus, Un Wiki et de nouveaux exemples ont été réalisés pour faciliter vos développements.

6 juillet – Apprendre-PHP.com: Introduction aux Cross Site Request Forgeries ou Sea Surf

Vous connaissez peut-être les attaques XSS qui consistent à injecter du code malveillant, et où l'utilisateur est directement victime de l'action du code (boîtes de dialogue, redirections, vols de cookies, etc.) ? Eh bien, ce tutoriel va vous apprendre un autre type de faille radicalement opposé à celui-ci. Il s'agit bien entendu des attaques CSRF.

6 juillet – Nexen.net: mysqlslap et supersmack, deux outils de benchmark pour MySQL

Image pour le titre du contenu
"comment sassurer que son serveur MySQL tiendra la charge ? 1000 requêtes /s en insertion sont prévues le jour de la sortie de votre prochain service internet : votre serveur sera t-il capable dy faire face ?
Les deux outils présentés aujourdhui permettent de simuler la charge reçue par le serveur MySQL en fonction de différentes paramètres dont le nombre de connexions simultanées et le nombre de requêtes par utilisateurs. Avec de tels outils, vous pouvez par exemple tester mysqlslap sur une de vos requêtes clé, visualiser comment celle-ci réagit sous différentes configurations, et visualiser un score à base de temps dexécution. Une fois ce score récupéré, comparez-le avec celui que vous obtiendriez avec la même requête modifiée par vos soins, avez-vous progressé ?"

6 juillet – Nexen.net: Abus de LEFT JOIN

Image pour le titre du contenu
Arjen Lentz propose une solution pour éviter les abus de LEFT JOIN :
"Si vous n'avez aucune raison pour utiliser un LEFT JOIN, n'en utilisez pas".
Trop souvent, LEFT JOIN est la jointure par défaut dans les applications, alors qu'un JOIN classique, avec condition de jointure, serait correct et suffisant. Réfléchissez-y, cela fait souvent plus de sens, et moins de travail pour le serveur MySQL.

6 juillet – Nexen.net: log_error pour MySQL

Image pour le titre du contenu
Log_error() pour MySQL est une fonction utilisateur qui enregistre un message dans le log d'erreur de MySQL. Pour pouvoir l'extraire plus rapidement ultérieurement, un indicateur est ajout à la fin du message.
Pourquoi écrire dans le log d'erreur? Pour le débogage, ou pour simplement enregistrer quelque chose d'important pour votre application.

7 juillet – Nexen.net: PHP sur GlassFish

Image pour le titre du contenu
GlassFish est un serveur d'application, édité par Sun. Il est écrit entièrement en Java, ce qui semble en condamner l'accès à PHP. Pourtant, ce n'est pas le cas. Il existe plusieurs implémentations de PHP en Java, et notamment Quercus. Cette dernière s'intègre dans GlassFish pour faire tourner les scripts, et le résultat semble suffisamment bon pour faire tourner Wordpress directement.

7 juillet – Nexen.net: Sauvegarde MySQL 6.0 : beaucoup plus rapide

Image pour le titre du contenu
L'une des fonctionnalités phare de MySQL 6 sera la sauvegarde : au lieu de passer simplement par mysqldump, pour exporter les données, puis par mysql (le client en ligne de commande), pour tout réimporter, des commandes SQL seront dédiées à la sauvegarde et la restauration des données :
 
 
backup database employees to 'emp2.bkp';
 
restore from 'emp2.bkp';
 

Les premiers tests de Guiseppe Maxia affichent des gains de vitesse de 6 fois. La sauvegarde peut même être encore plus rapide si on ignore les index (mais la restauration sera alors beaucoup plus lente).
Jetez un oeil sur la documentation en ligne et les exemples de Guiseppe. Pendant que vous regarderez la doc MySQL, jetez un oeil sur le "MySQL Load Balancer", qui est indisponible maintenant, mais semble programmé pour la version beta.
Pour faire un test rapide de MySQL 6, utilisez donc la mysql sandbox.

7 juillet – Nexen.net: Injection de dépendances en PHP avec Crafty

Image pour le titre du contenu
"Mes récentes, brèves mais fructueuses, incursions dans l'archipel de Java m'ont permis de pratiquer les patrons de conceptions inversion de contrôle (IoC) et injection de dépendances. Je viens de tomber sur une bibliothèque PHP, Crafty, permettant de faire de l'injection de dépendances en PHP. L'occasion d'en dire 2 mots..."
Par clochix.

7 juillet – PHP News: Rsync avec un client Windows en 3 commandes

rsync

Une stratégie de backup complète d’un site web est efficace tant que la taille de ce site web reste raisonnable. Avec un site de plusieurs dizaines de gigaoctets, il devient en effet plus compliqué de rapatrier chez soi la backup du site.

Je ne parle ici que de backup des fichiers propres au site (images uploadées par exemple), pas de sa base de donnée qui doit faire l’objet d’une stratégie de sauvegarde plus poussée.

Jusqu’à présent, en faisant “avec les moyens du bord”, je procédais de la façon suivante pour posséder une sauvegarde perso d’un site web:

  • Une tâche cron tourne chaque X jours la nuit et met tout le site dans une archive tar.gz
  • Je télécharge cette archive sur mon PC personnel peu après

Mais voilà, maintenant que le site en question pèse dans sa totalité une vingtaine de giga, même avec une connexion symétrique à 100Mb/s, c’est laborieux. Il faut donc trouver un autre moyen. Ici, la solution s’appelle rsync et permet de posséder une copie du site identique à l’instant de la synchronisation.

Maintenant pour posséder une sauvegarde perso d’un site, je n’ai plus qu’à lancer manuellement ma commande rsync sur mon PC quand celui-ci est allumé afin de rapatrier les nouveaux fichiers crées ou supprimés sur le serveur, et sans devoir télécharger tout le reste qui n’a pas changé. Mon PC étant sous Windows, il serait dommage de se priver de rsync.

Voiçi en 3 commandes comment avoir un mirroir de votre site avec une connexion sécurisée et un PC où effectuer la sauvegarde sous Windows

Prérequis :

Sur votre serveur, en root :

1. #useradd -g www -s /bin/bash rsync

2. #passwd rsync

Sous Windows, dans le dossier \bin de cwRsync

3. rsync –verbose –progress –stats –compress –recursive –delete -e “ssh.exe -p 8000″ rsync@monserver.fr:/home/server/htdocs/mondossier “/cygdrive/f/Backup/rsync”

Note : il s’agit de double tiret et non de tiret simple

Explications :

Etape 1 :

On crée un utilisateur sur le serveur possédant un vrai shell (pas de /bin/false car rsync doit pouvoir exécuter des commandes shell). Cet utilisateur doit posséder le droit de lecture sur votre répertoire à backuper (par exemple htdocs/), ainsi que ses sous-répertoires. Ici je le place dans les users de mon groupe www qui possèdent le droit de parcourir mon répertoire htdocs et ses enfants.

Etape 2 :

Un password fort à mettre en place pour l’utilisateur. Cet utilisateur aura le pouvoir de se connecter en SSH sur votre serveur et de parcourir vos fichiers. Ici pas de mis en place d’une authentification par clés SSH, nous utiliserons une connexion manuelle avec un mot de passe à entrer manuellement, car ici c’est à vous de lancer le processus de synchronisation quand vous le souhaitez. Pour un tutorial complet sur comment mettre en place un rsync automatique avec utilisations de clés SSH, rendez-vous sur cet excellent tutotial publié sur Howtoforge

Etape 3 :

cwRsync est une version packagée pour windows de rsync et ssh grâce à cygwin. Il vous fournit une fois installé les binaires rsync.exe et ssh.exe dans son dossier \bin.

Voici les arguments utilisés (rsync –help pour toutes les options) :

–verbose

Détails de l’exécution du programme

–progress

Voir l’avancement du téléchargement pendant les transferts

–stats

Des stats sur les transferts (vitesse de transfert)

–compress

Compression des fichiers transférés

–recursive

Parcourir les sous répertoires du dossier à backuper

–delete

Supprimer aussi les fichiers sauvegardés si ils n’existent plus sur le serveur

-e “ssh.exe -p 8000″ ou -e “ssh -p 8000″ ou -e “ssh”

Commande du shell distant à utiliser (ici ssh.exe dans le même répertoire que rsync.exe), suivi des arguments optionnels à lui passer, ici connexion sur le port distant 8000 et pas le traditionnel 22 (le serveur cible n’acceptant pas les connexions SSH sur le port 22 mais sur le 8000)

rsync@monserver.fr:/home/server/htdocs/mondossier

L’utilisateur ssh est ici rsync, on se connecte au server cible server.fr (ou une IP) et on demande de commencer la sauvegarde en démarrant depuis le dossier /home/server/htdocs/mondossier. Extrait du manpage :

“Le transport par shell distant est utilisé à chaque fois que le chemin source ou destination contient un séparateur «:» après la spécification de l’hôte. Le contact direct avec un démon rsync est utilisé lorsque le chemin source ou destination contient un séparateur «::» après la spécification de l’hôte, OU lorsqu’une URL rsync:// est spécifiée”

“/cygdrive/f/Backup/rsync”

C’est la synthaxe à utiliser pour copier les fichiers sur le disque dur F: et dans le dossier Backup/rsync. On ne peut pas indiquer un chemin windows directement comme ‘F:/Backup …’, il faut passer par l’abstraction des disque cygwin (/cygdrive/LETTRE_LECTEUR/VOTRE/DOSSIER)

Une fois la commande lancée, une connexion SSH va se mettre en place, le mot de passe donnée en #2 vous sera demandé et le processus de synchro sera lancé.

Enjoy ;)

8 juillet – z-f.fr: Roadmap mise à jour

Forum: Brèves
Auteur: philippe
Écrit le: Tue, 08 Jul 2008 13:34:56 +0200
Dernier message: Tue, 08 Jul 2008 23:23:38 +0200

8 juillet – PHP Index: IBM : Intégration de Google Agenda dans une application PHP

Dans un article paru sur le site IBM, Vikram Vaswani propose un tutoriel permettant d'associer l'API Google calendar et l'extension SimpleXML de PHP et/ou la librairie GData de Zend.

Ce tutoriel commence par donner quelques explications sur le format de sortie de l'API Google Calendar et comment récupérer les événements en usant de SimpleXML ou des librairies Zend. Il aborde ensuite les fonctionnalités de gestion et de recherche des événements.

Pour en savoir plus :

8 juillet – PHP Index: Inscriptions ouvertes pour la Zendcon 2008

Zend Technologies a annoncé aujourd'hui l'ouverture des inscriptions pour la quatrième conférence annuelle Zend/PHP.

Celle-ci se tiendra du 15 au 18 septembre, à Santa Clara, en Californie. Cette année sera axée sur les améliorations importantes que PHP peut apporter aux nouvelles applications web, à l'avantage de leurs utilisateurs.

Pour plus d'informations :

8 juillet – Nexen.net: PHPLinq : SQL en tableaux

Image pour le titre du contenu
Linq est une bibliothèque .NET qui permet d'exprimer des traitements d'informations stockées en tableaux comme des requêtes SQL. Par exemple :
 
 
<?php
 
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
 
 
 
$result = from('$number')->in($numbers)
 
            ->where('$number => $number > 5')
 
            ->select('$number');
 
?>
 

L'interface est fluide, et on peut aussi travailler sur des fichiers XML, grâce à SimpleXML.
L'approche est d'autant plus séduisante qu'on peut imaginer une traduction immédiate entre un stockage tableau et un stockage en base (ou en XML, ou en une autre structure). Le langage SQL est alors agnostique, et s'adapte à différentes solutions de stockage, temporaire ou permanant, locale ou distante. Or, c'est souvent le cas : on voit évoluer une variable qui était un scalaire au départ (une seule valeur), puis devient un tableau, puis une table SQL ou un fichier XML, en passant par une inclusion PHP.

8 juillet – Nexen.net: Conception de formulaire Web : résultat de sondage

Image pour le titre du contenu
Smashingmagazine a lancé un sondage sur les points de conceptions des formulaires Web, et ils en ont tiré un dossier très complet, en deux volets. Tous les aspects de la présentation d'un formulaire sont disséqués : positions des étiquettes, couleur, typographie, gestion des champs obligatoires et des erreurs, etc. Vous en apprendrez beaucoup sur la popularité de vos propres choix.
Le plus important est d'avoir une liste assez complète sur les solutions utilisées et leur rendement : les tooltips et leur positionnement, les méthodes d'affichage d'erreur. Il y a des questions qu'on ne se pose pas, mais parfois à tort.
Evidemment, au final, cela fait beaucoup de travail supplémentaire pour chaque page.

8 juillet – Nexen.net: Architecture de Linkedin

Image pour le titre du contenu
Les slides de présentations de l'architecture Linkedin sont maintenant en ligne, et c'est une excellente source d'inspiration. Par exemple, la totalité des relations de Linkedin sont stockées en RAM, dans une machine appelée The Cloud. Rien en base de données SQL. Il faut 8 heures pour recharger les millions de liens à partir de la base.
Linkedin utilise aussi un système de communication interne push : les informations récentes sont mailées (en interne) à une mailbox, où elles sont immédiatement disponibles. Puis, elles sont mises à jour dans le système, de manière asynchrone.

9 juillet – Glagla.org: PHPTeam, une vieille application de retour sous Symfony

Je découvre la nouvelle version de PHPTeam. Pour l’instant, le fork de Symfonians est encore un peu brutal, comme, par exemple, le bloc “a propos” mais il y a déjà quelques articles, un super logo et deux offres d’emploi !

Une bonne initiative si elle est suivie d’inscriptions et de contenus.

Bon courage aux développeurs de ce site.

Article original publié sur Glagla Dot Org. Tous droits réservés.

PHPTeam, une vieille application de retour sous Symfony

9 juillet – PHP Index: Devshed : Envoi d'email MIME avec PHP

Sur le site Developper Shed, Alejandro Gervasio propose aujourd'hui un tutoriel pour réaliser une classe d'envoi de emails MIME avec PHP5.

Ce tutoriel est composé de quatres parties :

9 juillet – Glagla.org: Lier vos médias depuis vos vues Symfony

(encore un post un peu pense bête pour moi)

Les helpers sont pratiques pour afficher des images ou créer des liens htmls. Parfois, on désire lier des documents que l’on a uploadé dans un répertoire spécifique ou autre bizarrerie. La classe sfWebRequest de Symfony fourni une méthode bien pratique pour faire ça. Par exemple pour accéder au fichier raoul.pdf dans le répertoire web/uploads/pdf :

echo '<a href="'.$sf_request->getRelativeUrlRoot().'/'.
  sfConfig::get('sf_upload_dir_name').'/pdf/raoul.pdf'
  .'raoul.pdf</a>';

Cet objet est automatiquement accessible depuis vos vues via la variable $sf_request.

Article original publié sur Glagla Dot Org. Tous droits réservés.

Lier vos médias depuis vos vues Symfony

9 juillet – Nexen.net: Vues matérialisées : flexyview

Image pour le titre du contenu
Justin Swanhart publie Flexviews, des vues matérialisées pour MySQL, basée sur des procédures stockées. Ce sont des vues qui sont réellement enregistrées sur le disque, et non pas générées à chaque sollicitations. L'avantage est de bénéficier des capacités d'indexation des vraies tables, et l'inconvénient est de devoir faire la mise à jour de la table.
C'est là que Flexviews intervient : avec quelques procédures stockées, Justin a mis en place des outils pour mettre à jour la table. Les méthodes de mise à jour sont COMPLETE, qui remplace la table existante par une nouvelle, et INCREMENTAL, qui est capable de faire une petite mise à jour, sans tout recalculer. Les coûts de mises à jour peuvent être assez élevé, mais les gains de performances pour les lectures sont nettement plus importants.

9 juillet – Nexen.net: Migration PHP 4 vers PHP 5

Image pour le titre du contenu
OK, la date du 8 août 2008 approche à grand pas, puisqu'il ne reste plus qu'un mois avant que PHP 4 soit définitivement et totalement abandonné. Il ne vous reste donc plus beaucoup de temps avant que cette migration soit obligatoire.
Plus que la peur de la fin de PHP 4, c'est les avantages que vous gagnerez à passer à PHP 5 qui doivent vous stimuler : POO, SimpleXML, Web 2.0, Json, espaces de noms, performances, sécurité et stabilité sont au rendez-vous. Les missions de migration que je mène pour nexen Services sont souvent initiées par cette peur, mais se transforment généralement en chasse au trésor : "On peut faire ça en une seule fonction maintenant?".
Bref, passez à PHP 5!

10 juillet – Glagla.org: Blogmarks pour le 10/07/2008

Web Form Design Patterns: Sign-Up Forms, Part 2 | How-To | Smashing Magazine

Last week we have presented first findings of our web forms survey. The main objective of the survey was to provide designers and developers with some intuition of how effective web forms are designed; we also presented some guidelines of how an effective and user-friendly web form can be achieved.

(categories: )

ratproxy - Google Code

A semi-automated, largely passive web application security audit tool, optimized for an accurate and sensitive detection, and automatic annotation, of potential problems and security-relevant design patterns based on the observation of existing, user-initiated traffic in complex web 2.0 environments.

(categories: )

Recherchez vos documents Google Documents sur votre Mac avec Spotlight

Vous possédez un Mac et vous utilisez Google Document. Voici une application qui vous permettra de rechercher des documents et signets présents sur votre compte Google en utilisant Spotlight. Cette utilitaire se nomme Precipitate, il a été développé par Stuart Morgan de chez Google.

(categories: )

Go!Explore

Go!Explore est hyper facile à utiliser, et que vous soyez piéton ou automobiliste, il fait de votre PSP un système GPS idéal.

(categories: )

blogmarks.net

Article original publié sur Glagla Dot Org. Tous droits réservés.

Blogmarks pour le 10/07/2008

10 juillet – PHP Index: Drupal 6.3 et 5.8

Les version 6.3 et 5.8 de DRUPAL sont disponibles. Ce sont des versions de maintenance pour corriger des failles de sécurités ainsi que des problèmes signalés par l'outil de suivi des bugs.

La version 6.3 inclue également :

  • Quelques modifications sur l'installeur pour prévenir les problèmes de propriétés des fichiers au niveau des partages
  • Passage à la version 1.2.6 de jQuery
  • Amélioration de la compatibilité PostgreSQL
  • Amélioration des performances des API search, menu et form.

Il est a noter que Views pour Drupal 6 nécessite la version 6.3 pour fonctionner correctement.

La mise à jour des versions existantes de DRUPAL 5 et 6 est vivement recommandée. Pour plus d'information, vous pouvez consulter l'annonce sur le site du projet DRUPAL

10 juillet – Nexen.net: Actualité de développement PECL, edition 207

Image pour le titre du contenu
7 paquets ont été mis à jour cette semaine :

  • en xdiff (0 visite) : extrait les différences et les patches entre fichiers

  • en imagick (0 visite) : interface avec la bibliothèque graphique ImageMagick

  • en lzf (0 visite) : compression LZF

  • en xattr (0 visite) : attributs étendus

  • en timezonedb (0 visite) : base de données de fuseaux horaires pour PHP

  • en uploadprogress (0 visite) : suivi des téléchargements de fichiers type Ajax

  • en tcpwrap (0 visite) : interfarce TCP wrapper


PECL est la bibliothèque d'extensions C de PHP.

 



 

10 juillet – Nexen.net: Symfony Oracle en PHP mineur

Image pour le titre du contenu
Pour ceux qui se lancent sur Symfony, et utilisent une base Oracle, l'OTN publie un article d'introduction pour faire fonctionner ces deux technologies ensemble. Il y a un exemple complet, avec une entreprise et ses employés.

10 juillet – Nexen.net: mylvmbackup : sauvegardes MySQL par fichiers

Image pour le titre du contenu
"mylvmbackup est un outil pour réaliser rapidement des copies de sauvegardes de données dans un serveur MySQL. Pour ce faire, mylvmbackup obtient un verrou sur toute les tables, écrit les caches sur le disque, fait une copie LVM du volume contenant les données MySQL, puis libère les tables. Le processus prend alors quelques instants. Lorsque c'est fini, le serveur peu reprendre son fonctionnement normal."

11 juillet – PHP Index: Mastering phpMyAdmin

L'ouvrage "Mastering phpMyAdmin for Effective MySQL Management" est recommandé sur le site de Zend.

Ce livre a été écrit par Marc Delisle [ISBN 1904811035]. D'après Cal Evans, ce livre s'adresse aussi bien aux utilisateurs finaux (développeurs et administrateurs de bases de données) qu'aux administrateurs systèmes. Il considère que ce livre est particulièrement intéressant pour :

  • Les personnes ne connaissant pas encore phpMyAdmin et voulant en tirer le maximum,
  • Les personnes l'utilisant déjà et voulant savoir ce qu'il peut faire de plus.

Pour plus d'informations :

11 juillet – PHP Index: Joomla! 1.5.4

Joomla! 1.5.4 [Naiki] est disponible depuis quelques jours. Il s'agit d'une version de maintenance incluant quelques correctifs de vulnérabilités modérées, des corrections de bugs et quelques améliorations.

11 juillet – PHP Index: wampMSS 1.1.1

La version 1.1.1 de wamp MSS (Mobil Storage Server) est enfin disponible !

La version 1.1.1 de wampMSS (Mobile Storage Server) qui est une version modifiée de wamp permet de faire fonctionner un serveur apache, php, mysql sur un périphérique USB

Cette version comprend :
- Apache 2.2.9
- PHP 5.2.6
- MySQL 5.0.51b
- PhPMyAdmin 2.11.7
- SQLiteManager 1.2.0 RC2

rendez-vous sur http://www.uni-d.net

Proposé par UNi

11 juillet – Glagla.org: Les cousines se bidonnent !

Ce qui est sympa à trois ans, c’est qu’un rien t’amuse !

Article original publié sur Glagla Dot Org. Tous droits réservés.

Les cousines se bidonnent !

12 juillet – Lapin Blanc: 6 plugins Symfony indispensables

Écrit en PHP, orienté objet, implémentant le design pattern Moèle-Vue-Controlleur, doté de nombreuses fonctionnalités et soutenu par Yahoo! : Symfony, le framework web développé par Sensio Labs, à tout pour plaire. L’une des forces de ce framework est la disponibilité de nombreux plugins qui permettent (...)

12 juillet – Nexen.net: mysqlsla 2.0 publié

Image pour le titre du contenu
mysqlsla est un analyseur de log MySQL qui permet d'extraire les informations importantes des logs MySQL. Ces derniers stockent les requêtes brutes, et il est parfois difficile de repérer les requêtes qui sont identiques, à quelques variables ou valeurs près. mysqlsla est alors là pour ça.
Ce problème de requêtes similaire est une raison de plus pour passer aux commandes préparées de MySQL : avec les commandes préparées, la requête est dissociée des valeurs d'exécution, et le stockage dans le log MySQL devient constant : la requête d'un coté, les valeurs de l'autre. Et on peut aussi arriver au même résultat avec les variables MySQL.

12 juillet – Nexen.net: Alertes sécurité des applications PHP et MySQL, édition 210

Image pour le titre du contenu


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.



10 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Joomla, MyBB, PHP Nuke, V-webmail, Zen Cart, phpMyAdmin, vBulletin et wordpress