Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : php

php-5.3.14 et php-5.4.4

Remi Collet

Les RPM de PHP 5.3.14 sont disponibles pour Enterprise Linux dans le dépôt remi.

Les RPM de PHP 5.4.4 sont disponibles pour Fedora dans le dépôt remi et pour Enterprise Linux dans le dépôt remi-test.

Lire l'annonce de cette version : PHP 5.4.4 and PHP 5.3.14 released!

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* Ces versions seront aussi prochainement des mises à jour officielles pour : Fedora 17 - PHP 5.4.3 Pour toute question ou demande d'aide, merci d'utiliser les Forums.... Lire php-5.3.14 et php-5.4.4

php-5.3.13 et php-5.4.3

Remi Collet

Les RPM de PHP 5.3.13 sont disponibles pour Enterprise Linux dans le dépôt remi.

Les RPM de PHP 5.4.3 sont disponibles pour Fedora dans le dépôt remi et pour Enterprise Linux dans le dépôt remi-test.

Lire l'annonce de cette version : PHP 5.3.13 and PHP 5.4.3 Released!

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* Ces versions seront aussi prochainement des mises à jour officielles pour : Fedora 17 - PHP 5.4.3 Fedora 16 - PHP 5.3.13 Fedora 15 - PHP 5.3.13 Pour toute question ou demande d'aide, merci d'utiliser les Forums.... Lire php-5.3.13 et php-5.4.3

php-5.3.12 et php-5.4.2

Remi Collet

Les RPM de PHP 5.3.12 sont disponibles pour Enterprise Linux dans le dépôt remi.

Les RPM de PHP 5.4.2 sont disponibles pour Fedora dans le dépôt remi et pour Enterprise Linux dans le dépôt remi-test.

Lire l'annonce de cette version : PHP 5.3.12 and PHP 5.4.2 Released!

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* Pour toute question ou demande d'aide, merci d'utiliser les Forums.... Lire php-5.3.12 et php-5.4.2

php-5.4.1

Remi Collet

Les RPM de la version finale de PHP 5.4.1 sont disponibles pour Fedora dans le dépôt remi et pour Enterprise Linux (RHEL/CentOS) dans le dépôt remi-test. Cette version sera aussi très prochainement dans les mises à jour pour fedora 17 (après le passage en testing).

Lire l'annonce de cette version : PHP 5.3.11 And PHP 5.4.1 Released!

Il s'agit d'une nouveauté pour Fedora 17. Utilisez YUM pour les installer : yum --enablerepo=remi update php-\*Ces paquets sont aussi en route pour Fedora 17. Documentation : Migration de PHP 5.3.x à PHP 5.4.x ou Migration from PHP 5.3.x to PHP 5.4.x (en anglais, mais complet). Pour toute question ou demande d'aide, merci d'utiliser les... Lire php-5.4.1

php-5.3.11

Remi Collet

Les RPM de la version finale de PHP 5.3.11 sont disponibles pour Enterprise Linux (RHEL/CentOS) dans le dépôt remi. Cette version sera aussi très prochainement dans les mises à jour pour fedora ≥ 15 (après le passage en testing).

Lire l'annonce de cette version : PHP 5.3.11 And PHP 5.4.1 Released!

Cette version corrige des problèmes de sécurité. La mise à jour est recommandée.

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\*Pour toute question ou demande d'aide, merci d'utiliser les Forums. Les paquets seront bientôt aussi dans les dépôts officiels pour : Fedora 16 Fedora 15 P.S. les RPM présents dans ce dépôt sont un rétroportage de ceux de fedora 16, mais modifiés (extensions oci8,... Lire php-5.3.11

php-pecl-cairo-0.3.1

Remi Collet

Le RPM de l'extension cairo pour PHP est disponible dans le dépôt remi pour Fedora et Enterprise Linux.

Documentation : Cairo Fonctionne avec PHP 5.3.10 ou 5.4.0 Installation : yum --enablerepo=remi install php-pecl-cairoLes RPM sont disponibles pour Fedora de 11 à 17 et Enterprise Linux 6. Il s'agit toujours d'une extension expérimental, et il y a quelques petits soucis avec les tests fournis (en particulier sous EL-6). Je compte sur vos... Lire php-pecl-cairo-0.3.1

phpMyAdmin version 3.5

Remi Collet

Les RPM pour installer la nouvelle version majeure de phpMyAdmin sont disponibles dans le dépôt remi pour fedora et enterprise linux (RHEL, CentOS, ...).

Site officiel : http://www.phpmyadmin.net/ Cette nouvelle version majeure sera aussi disponible dans les mises à jour officielles de fedora ou de EPEL-6. Le paquet disponible dans le dépôt remi intègre directement les thèmes officiels et compatibles (même si cela est contraire aux règles fedora : 1 source = 1 paquet). Donc il est disponible pour... Lire phpMyAdmin version 3.5

PHP-FPM et HTTPD 2.4

Remi Collet

Le moteur php-fpm peut désormais fonctionner avec httpd 2.4 et le module mod_proxy_fcgi, voici un petit exemple de mise en oeuvre.

L'objectif est de faire fonctionner un serveur Web pour des applications locales et pour des applications livrées en RPM, je prendrais phpMyAdmin comme exemple. Apache version 2.4 ne sera pas dans les dépôts avant Fedora 18 (et sans doute RHEL 7), mais mon dépôt expérimental fournit un rétro-portage de ces paquets pour Fedora 16. 1.... Lire PHP-FPM et HTTPD 2.4

Intégration continue - PHP, Selenium et Xvfb - Partie 1

Patrice Ferlet

Depuis quelques mois je me suis penché sur les outils d'intégration continue pour les projets PHP. Il en existe un bon paquet, mais celui qui pour le moment répond le mieux à mes attentes reste phpUnderControl. L'installation reste tout de même assez complexe et il me parait bon de vous montrer comment mettre en oeuvre ce genre d'outil. Le but étant de vous aider pas à pas à installer les outils qui permettront d'utiliser un service d'intégration continue. Nous allons passer en revue les outils à installer depuis PEAR, puis Selenium et enfin comment intégrer tout ça dans phpUnderControl.

Certes, je ne vais pas vous donner "la solution dans les règles de l'art" car chaque projet est différent, chaque attente est spécifique... Mais vous pourrez adapter au besoin les explications.

Nous allons donc procéder à ces opérations:

  • installer les outils pear: phpcs, phpmd, phpcpd, phpunit
  • installer selenium IDE avec le plugin php (ces outils ne sont pas obligatoires mais rendent la tâche tellement plus simple...)
  • préparer un environnement X virtuel pour lancer les tests selenium
  • installer phpundercontrol
  • configurer la bête...

Les deux derniers points seront dans la partie 2, pour le moment il faut s'assurer d'avoir tous les composants nécessaires à la bonne conduite du projet.

En ce qui concerne Selenium et phpUnderControl, ce sont des outils développés en Java. On nous recommande d'utiliser le jre de oracle (comme ce n'est plus Sun...) mais pour ma part j'utilise openjdk sans aucun souci... alors pourquoi passer au propriétaire quand le libre fonctionne très bien ?

Donc, sur votre Fedora ou Centos, préparons un environnement propre... Je vous conseille d'utiliser un conteneur LXC pour bosser, mais si vous voulez utiliser votre système hôte je ne vais pas vous en empêcher.

On commence par installer les outils important:

  • php-cli, php-pear
  • openjdk

on ouvre un terminal, on se met en root et on installe tout ça

su -
yum install php-cli php-pear java-1.7.0-openjdk

Pour la suite, je sais que certains d'entres vous vont me taper sur les doigts, clamant haut et fort que les dépots Fedora ont les paquets PEAR demandés (ou pas...) mais je vais être très clair: les paquets sur les serveur PEAR sont à jour, et certaines dépendances risque de ne pas marcher si vous utiliser les RPM. C'est le cas aussi sur Debian (j'en ai fait les frais cette semaine). Donc ayez confiance et faites ce que je dis :)" class="smiley

On commence par faire deux ou trois manipulations sur PEAR pour être à l'aise (toujours en tant que root):

pear set-config auto_discover 1
pear upgrade pear
pear install --alldeps pear.phpunit.de/PHPUnit
pear install --alldeps phpunit/PHPUnit_Selenium
pear install --alldeps pear.phpunit.de/phpcpd
pear install --alldeps phpmd/PHP_PMD
pear install --alldeps PHP_CodeSniffer
pear install --alldeps channel://pear.phpdoc.org/PhpDocumentor-2.0.0a1

Si jamais il vous manque des paquets php, installez les, faite un "prear uninstall" du paquet qui a donné une erreur, et relancer l'installation du paquet.

Vous avez donc à présent:

  • phpunit pour faire des tests unitaires de vos développement php
  • phpunit-selenium qui est une classe permettant de piloter le serveur selenium qui lancera un navigateur pour tester des aspect fonctionnels
  • phpcpd (Copy Paste Detector) qui vérifie les "copier coller" de code
  • phpmd (Mess Detector) qui va vérifier des aspects complexe de code (variables non utilisé, code complexe, nom de variables ou fonctions...)
  • phpcs qui va vérifier si votre code est bien formaté selon des standards choisis
  • phpdocumentor qui permet de créer la documentation de vos projets

Cela étant fait, nous allons passer à la suite... Selenium !

Selenium est un ensemble d'outils qui permettent de piloter un navigateur au travers un serveur. Vous allez pouvoir vérifier si une page apparait correctement, si les liens sont bien présents sur une certaine page, et bien plus encore. Le principe est très simple:

  • on enregistre une séquence de manipulations et de tests
  • on l'exporte pour phpunit
  • on lance le test

Mais pour que cela fonctionne, il faut jouer un peu dans le terminal... rien de bien méchant mais important.

Dans votre terminal, en root, téléchargez le serveur:

mkdir /opt/selenium
cd /opt/selenium
wget http://selenium.googlecode.com/files/selenium-server-standalone-2.20.0.jar

Ce serveur, une fois lancé, pilotera un firefox tout seul. Sauf que voilà... si vous travaillez sur une machine de bureau alors aucun souci ne se profile... mais quand on travaille sur un serveur distant... sans écran... ça va aller mal !

La solution la plus simple, selon moi, est d'installer un firefox "standalone" sur /opt/selenium et de lancer tout ça dans un Xvfb (X virtuel). On va donc faire cela... toujours dans votre répertoire /opt/selenium:

wget "http://download.mozilla.org/?product=firefox-11.0&os=linux&lang=fr"
tar jxf firefox*.bz2

Si tout est ok, vous avez un répertoire "firefox" dans /opt/selenium

On va tenter de lancer firefox dans un X virtuel pour être certain que tout se passe bien:

Xvfb :99 &
DISPLAY=:99 /opt/selenium/firefox/firefox &
DISPLAY=:99 import -window root /tmp/snapshot.png

Maintenant, ouvrez /tmp/snapshot.png et vérifiez que vous voyez bel et bien un firefox ouvert. Si oui: nickel ! si non... heu vérifiez si il ne manque pas une librairie pour firefox (genre gdlib-dbus...)

Bref, si Xvfb et firefox ont marché alors on coupe:

killall Xvfb

Notez qu'on aurait put utiliser "xvb-run /opt/selenium/firefox/firefox" et utiliser le port retourné pour faire la capture, mais les lignes su-citées me paraissent plus explicites pour comprendre comment ça fonctionne.

Bref, utilisons maintenant le serveur selenium pour lancer un test.

Xvfb :99 &
sleep 2
PATH=/opt/selenium/firefox:$PATH DISPLAY=:99 java -jar selenium-server-standalone-2.20.0.jar &

Attendez un peu...il faut voir une ligne indiquant que le serveur tourne, ce genre de ligne:

INFO org.openqa.jetty.http.SocketListener - Started SocketListener on 0.0.0.0:4444
INFO org.openqa.jetty.util.Container - Started org.openqa.jetty.jetty.Server@1ff4689e

Cela peut prendre entre 5 et 30 secondes, soyez patient... A partir de là, le serveur écoute le port 4444, on va donc jouer un peu !

Créer un fichier test.php:

<?php
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("*chrome");
    $this->setBrowserUrl("http://www.google.fr/");
  }

  public function testMyTestCase()
  {
    $this->open("/");
    $this->waitForPageToLoad("30000");
    //on vérifie que "Google" est sur la page...
    $this->verifyTextPresent("Google");

    //ce teste doit donner une erreur
    $this->verifyTextPresent("foo bar baz");

  }
}

Ce teste ne fait rien de compliqué... il ouvre Google et vérifie si le texte "Google" est sur la page...

Vous pouvez lancer le test:

phpunit test.php

Le résultat doit être:

PHPUnit 3.6.10 by Sebastian Bergmann.

F

Time: 5 seconds, Memory: 5.75Mb

There was 1 failure:

1) Example::testMyTestCase
foo bar baz
Failed asserting that false is true.


FAILURES!
Tests: 1, Assertions: 2, Failures: 1.

Cela indique donc que le serveur selenium a bien lancé firefox, la page google et vérifier qu'un texte "Google" apparait. En ce qui concerne "foo bar baz" cela donne une erreur. Donc:

  • 1 test
  • 2 assertions : texte "Google" et texte "foo bar baz"
  • 1 erreur, et une seule erreur !!! si vous en avez 2 alors c'est que cela n'a pas marché !

Voilà, on peut couper selenium et Xvfb:

killall Xvfb
killall $(ps ax | grep selenium | grep -v grep | awk '{print $1}')

Maintenant, on se crée un service pour lancer Xvfb et Selenium.

Avant tout, pour des raison pratiques, je vous conseille de ne *plus du tout* lancer Xvfb et Selenium en root, mais avec un utilisateur précis. Comme nous allons utiliser phpUnderControl qui est un plugin de cruisecontrol, et que ce dernier lancera son service avec un utilisateur recommandé, nous allons le créer de suite et l'utiliser pour lancer Xvfb et Selenium.

useradd -m -s /bin/bash cruisecontrol

Notez ici que je demande la création du répertoire personnel (via l'option -m) car firefox aura besoin de créer un répertoire de profil, de ce fait, /home/cruisecontrol va être créé.

Voilà, maintenant créons le service qui lance Xvfb et Selenium via cet utilisateur. Créer le fichier /etc/init.d/xselenium et déposez ce code:

#!/bin/bash
 
XLOCK="/var/lock/Xvfb.pid"
SLOCK="/var/lock/selenium.pid"
 
 
startXVFB(){
        [[ -f $XLOCK ]] && echo "Already Running" && return 1
        local PID
        PID=$(su cruisecontrol -c 'Xvfb :15 >/dev/null  2>&1 & echo $!')
        echo "Xvfb pid $PID"
        echo $PID > $XLOCK
 
}
 
startSelenium(){
        [[ -f $SLOCK ]] && echo "Selenium Already Running" && return 1
 
        local PID
        PID=$(su cruisecontrol -c 'PATH=/opt/selenium/firefox:$PATH DISPLAY=:15 java -jar /opt/selenium/selenium-server-standalone-2.20.0.jar >/dev/null 2>&1 & echo $!')
        echo "Selenium pid $PID"
        echo $PID > $SLOCK
}
 
case $1 in
        start)
                echo "Starting XVFB"
                startXVFB
                sleep 2
                echo "Starting Selenium server"
                startSelenium
                sleep 2
                ;;
 
        stop)
                kill $(cat $SLOCK)
                sleep 2
                kill $(cat $XLOCK)
                sleep 2
                rm -f $SLOCK $XLOCK
                ;;
       *)
               echo "$0 start|stop"
               ;;
esac

Rendez le executable:

chmod +x /etc/init.d/xselenium

Et lancez le service:

/etc/init.d.xselenium start

Vous devez donc avoir désormais un Xvfb et un selenium actif. Attendez un peu que le port 4444 soit ouvert pour commencer à lancer les tests, pour vérifier le port:

netstat -taupen | grep 4444

Si aucune ligne n'apparait, c'est que le service ne tourne pas.

Voilà pour la partie pear, selenium-server et Xvfb. Dans la partie 2 nous utiliserons Selenium IDE pour créer des tests, mais surtout nous installerons phpUnderControl afin de piloter notre intégration continue.

En espérant avoir donner quelques clefs...

php-pecl-amqp-1.0.1

Remi Collet

Le RPM de l'extension AMQP pour PHP est disponible dans le dépôt remi pour Fedora et Enterprise Linux.

Documentation : AMQP Installation : yum --enablerepo=remi install php-pecl-amqp Les RPM sont disponibles dans le dépôt remi pour Fedora ≥ 11 et EL ≥ 5 et pour PHP 5.3. Les RPM sont disponibles dans le dépôt remi-test pour Fedora ≥ 15 et EL ≥ 5 et pour PHP 5.4. L'extension pour le mode ZTS n'est pas disponible. Si mes tests sont concluant, je... Lire php-pecl-amqp-1.0.1

php-pecl-memcached-2.0.1

Remi Collet

Le RPM de l'extension PECL memcached version 2.0.1 de communication avec le serveur memcached est disponible dans le dépôt remi pour Fedora et Enterprise Linux.

Cette extension utilise la bibliothèque libmemcached.

Documentation : Memcached (en Français mais ancienne) Memcached (en Anglais mais actualisée) Comme toujours : yum --enablerepo=remi install php-pecl-memcached Cette extension est une alternative, en plein développement, à l'extension memcache, que j'utilisait habituellement pour gérer mes sessions. Les RPM sont disponibles dans le... Lire php-pecl-memcached-2.0.1

PHP version 5.4.0 est publiée !

Remi Collet

La nouvelle version majeure de PHP, la version 5.4.0 est publiée, les RPM sont disponibles dans le dépôt remi-test pour Fedora ≥ 15 et EL ≥ 5.

Il s'agit d'une nouveauté pour Fedora 17. Les extensions suivantes sont aussi disponibles : php-libvirt-0.4.5-1 php-magickwand-1.0.9-2 php-pecl-apc-3.1.9-6.svn323587 php-pecl-bbcode-1.0.3-0.2.b1 php-pecl-gearman-0.8.1-2 ou 1.0.1-2 (fedora >= 16) php-pecl-geoip-1.0.8-2 php-pecl-gmagick-1.1.0-0.3.RC2 php-pecl-gnupg-1.3.2-2... Lire PHP version 5.4.0 est publiée !

php-pecl-xhprof-0.9.2

Remi Collet

Le RPM de l'extension xhprof de profilage hierarchique est disponible dans le dépôt remi-test pour Fedora ≥ 15 et EL ≥ 5.

Documentation : Profilage hiérarchique Fonctionne avec PHP 5.4.0 (pas de paquet pour php 5.3 prévus) Installation : yum --enablerepo=remi-test install php-pecl-xhprofPour lire la documentation de mise en oeuvre, livrée avec le RPM firefox file:/usr/share/doc/php-pecl-xhprof-0.9.2/docs/index.htmlL'interface web est installée sur le serveur... Lire php-pecl-xhprof-0.9.2

php-5.3.10

Remi Collet

Les RPM de la version finale de PHP 5.3.10 sont disponibles pour Fedora et pour Enterprise Linux (RHEL/CentOS) dans le dépôt remi. Cette version sera aussi très prochainement dans les mises à jour pour fedora ≥ 15 (après le passage en testing).

Lire l'annonce de cette version : PHP 5.3.10 Released!

Cette version corrige un problème critique de sécurité. La mise à jour est recommandée.

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* A noter : le package php fournit désolrmais les 2 extensions pour apache, en mode prefork ou en mode worker. Le paquet php-zts est donc supprimé. Pour fedora ≥ 12 et EL-5, la nouvelle extension php-fpm est disponible (une alternative à php-cgi). Voir les billets PHP-FPM et... Lire php-5.3.10

php-pecl-haru-1.0.3

Remi Collet

Le RPM de l'extension haru permettant la génération de PDF en  PHP est disponible dans le dépôt remi.

J'ai décidé de tester cette extension en cherchant une alternative à l'extension pdflib qui utilise un bibliothèque non libre. Cette extension utilise la bibliothèque libre Haru qui est aussi disponible en version 2.2.1 dans mon dépôt. Documentation : Haru PDF En fonction de mes tests, en particulier sur le support de l'UTF-8, j'envisagerai peut... Lire php-pecl-haru-1.0.3

php-pecl-mysqlnd-ms-1.2.2

Remi Collet

Le RPM Plugin de réplication Mysqlnd et de balance de charge est disponible dans le dépôt remi et en attente de revue pour fedora >= 16.

Cette extension pour mysqlnd permet de gérer la réplication de charge entre les serveurs maitre et esclaves, gérée par l'application ou de manière transparente. Site pecl : mysqlnd_ms Documentation : Plugin de réplication Mysqlnd et de balance de charge Revue pour fedora : Revue request #742729 Installation, après avoir replacé php-mysql par... Lire php-pecl-mysqlnd-ms-1.2.2

php-pecl-gnupg-1.3.2

Remi Collet

Le paquet de l'extension gnupg pour PHP, une interface pour gpgme, est disponible dans le dépôt remi pour fedora et EL-5.

Documentation : GNU Privacy Guard Installation, comme toujours : yum --enablerepo=remi install php-pecl-gnupgPas mal de travail pour avoir une extension opérationnelle, tous les problèmes ont été rapportés au projet, avec une proposition de correctif : Bug #60913 : fichier manquant dans les tests Bug #60914 : version 1.3.2 affiche 1.3.2-dev... Lire php-pecl-gnupg-1.3.2

php-pecl-http-2.0.0

Remi Collet

Le paquet de l'extension pecl support HTTP étendu est disponible dans remi-test et proposé en revue pour le dépôt fedora 17 (Revue #783837). Elle nécessite php 5.4.0.

Version : 2.0.0dev3, donc pas encore considérée comme stable. Documentation : HTTP Installation : yum --enablerepo=remi-test install php-pecl-httpCette version 2 est incompatible avec les versions précédentes (qui n'existent pas en paquet) et nécessite PHP 5.4.... Lire php-pecl-http-2.0.0

phpunit-PHPUnit-SkeletonGenerator-1.0.0

Remi Collet

phpunit/PHPUnit_SkeletonGenerator est maintenant disponible dans le dépôt remi et proposé en revue pour le dépôt fedora (Review #783632).

Dans les changements de PHPUnit 3.6.8 : * Marked `--skeleton-class` and `--skeleton-test` as deprecated. Please use the `phpunit-skelgen` tool that is provided by the `PHPUnit_SkeletonGenerator` package instead. Donc les options --skeleton-class et --skeleton-test sont dépréciées. Si vous aviez l'habitude d'utiliser cette commande pour générer... Lire phpunit-PHPUnit-SkeletonGenerator-1.0.0

php-5.3.9

Remi Collet

Les RPM de la version finale de PHP 5.3.9 sont disponibles pour Fedora et pour Enterprise Linux (RHEL/CentOS) dans le dépôt remi. Cette version sera aussi très prochainement dans les mises à jour pour fedora ≥ 15 (après le passage en testing).

Lire l'annonce de cette version : PHP 5.3.9 Released!

Cette version corrige plusieurs problèmes de sécurité. La mise à jour est recommandée.

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* A noter : le package php fournit désolrmais les 2 extensions pour apache, en mode prefork ou en mode worker. Le paquet php-zts est donc supprimé. Pour fedora ≥ 12 et EL-5, la nouvelle extension php-fpm est disponible (une alternative à php-cgi). Voir les billets PHP-FPM et... Lire php-5.3.9