Premiers pas avec Zend Server

Dans le cadre de mon projet, je dois développer un back-office en PHP avec le Zend Framework et j’ai décidé de tester et d’utiliser le Zend Server par la même occasion.
Je vais donc découvrir l’outil avec vous et faire mes premiers tests…

Qu’est-ce donc que ce Zend Server ?

Pour faire simple et concis, il s’agit d’une couche applicative au dessus d’un serveur Web classique (type (L|W|M)AMP mais qui est particulièrement orientée pour développer avec les outils de Zend Technologies.
Il faut savoir que le ZS (ou Zend Server) est un produit qui nécessite une licence (prix minimal de 1195 €). Il est bien entendu proposé en version d’essai (30 jours) histoire de tester un peu le produit avant d’investir.

Cependant, une version gratuite avec moins de fonctionnalités (sans monitoring/gestion des différents caches/etc.) est proposée si vous êtes fan de Zend Technologies et que vous tenez absolument à bosser avec leurs produits.
Pour ma part, je suis riche donc je vais commencer par une version d’évaluation de 30 jours pour tester la bête^^.

Installation

Allez donc sur la page correspondante et téléchargez le ZS :

zserver_download

Une fois téléchargé, installez le serveur et allez faire un tour dans l’installation personnalisée pour voir un peu ce que vous propose le bébé :

zserver_installation

Comme vous pouvez voir, en version payante, il propose une sacré panoplie d’outils très intéressants. Sur l’écran suivant, il vous demande de sélectionner votre serveur Web. Vous avez le choix entre Apache 2.2.x et ISS (si installé sur votre machine).

Une fois installé, vous avez deux nouvelles icônes dans la zone de notification (barre des tâches Windows) qui sont respectivement le ZS et Apache.
Allez ensuite sur http://localhost/ZendServer/ si ça n’est pas déjà le cas :

zserver_cfg_start

Une fois ces informations saisies, vous arrivez sur le Tableau de bord (Dashboard). Faites connaissance avec les différents onglets…

zserver_admin_tabs

Ne touchez à rien au niveau de la configuration et allons vers notre premier test.

Hello World!

Lancez votre éditeur PHP préféré et créez un fichier « hello.php » que vous sauvegarderez dans C:Program FilesZendApache2htdocshello.
Dans ce fichier, inscrivez simplement le code suivant :

1
2
3
4
5
6
7
<?php
// Affiche du texte simple
header('Content-type: text/plain');
 
// Affiche le chemin complet du fichier
var_dump(__FILE__);
?>

Résultat attendu :

string(52) "C:\Program Files\Zend\Apache2\htdocs\hello\hello.php"

Maintenant, générons une erreur de syntaxe (E_PARSE) en oubliant la dernière apostrophe :

1
2
3
4
5
6
7
<?php
// Genere une erreur de type E_PARSE
header('Content-type: text/plain);
 
// Affiche le chemin complet du fichier
var_dump(__FILE__);
?>

Et là, page blanche… Que s’est-il passé ?
Allons voir le moniteur de notre serveur dans l’onglet « Events » et cliquez sur la ligne rouge. Vous êtes désormais face à une page très détaillée des votre erreur.

zserver_error

Vous y retrouvez le type d’erreur (E_PARSE), la sévérité (Critical), le nom du fichier, la ligne de l’erreur, le texte de l’erreur (syntax error, unexpected ‘:’), le dump de la requête HTTP ainsi que les informations du serveur (dump de la variable $_SERVER).

N’est-ce pas merveilleux d’avoir toutes ces informations sur la même page ? Ca évite de faire des var_dump() dans tous les sens et d’ouvrir le volet de Firebug/FirePHP. Un sacré gain de temps et d’ergonomie dès le début de l’application.

Mais avoir pourquoi est-ce mon erreur n’est pas affichée dans mon navigateur ? Je suis sensé lire ceci normalement :

Parse error: syntax error, unexpected ':' in C:\Program Files\Zend\Apache2\htdocs\hello\hello.php on line 3

Tout simplement parce que le ZS est très bien configuré par défaut, il est déjà configuré pour un environnement de production et donc, il est totalement normal que le paramètre « display_errors » soit défini à « off ».

zserver_cfg_error

Activez ce paramètre et vous aurez bien votre erreur si attendue. Il ne faut cependant pas oublier de désactiver de paramètre une fois votre produit en environnement de production. D’ailleurs, par la même occasion, dans une ligne en dessous, vous pouvez configurer la directive « expose_php » (qui permet d’envoyer la version de PHP dans les entêtes HTTP). Pour éviter de faciliter la tâche aux éventuels pirates Web, il faut désactiver cette directive !

Bilan

Il faut bien comprendre que le Zend Server ne remplace PAS Apache ou ISS. Il permet simplement de mieux gérer la configuration de PHP autour de votre environnement de travail. Il vous évitera de passer de longues heures dans la documentation PHP afin de configurer correctement. Il centralise les différents logs (accès, erreurs PHP et Apache), il permet bien évidement de recharger PHP une fois re-configuré.

Zend Server est un excellent moyen de gagner du temps dans vos développements de part de son ergonomie pratique et du regroupement d’outils. Il permet entre autres une forte collaboration avec Zend Studio et encore plus Zend Debugger.

Pour terminer, je dirais qu’il vous permettra de rester beaucoup plus…. Zend ! :D

zserver_login

Top

Posted Lundi, juillet 20th, 2009 under Development, PHP, Zend.

Top | Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>