29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Dossiers techniques / eZ publish : optimiser l'environnement / Building and Installing PHP -- Compiler et installer PHP





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Building and Installing PHP -- Compiler et installer PHP

Date de publication: le vendredi 13 juillet 2007 à 02h17
Dernière modification: par Pascal BOYER le dimanche 26 septembre 2010 à 20h26
« Article précédent: Building and Installing Apache -- Compiler et installer Apache
» Article suivant: Configuring Apache and PHP -- Configurer Apache et PHP

Because the eZ publish CMS is written using the PHP scripting language (PHP is a recursive acronym for "PHP: Hypertext Preprocessor"), a PHP server-side engine is required. PHP is a widely used Open Source general-purpose scripting language that is especially suited for Web development and is used mainly for producing dynamic web content and server-side applications.
Le CMS eZ Publish étant écrit en langage de script PHP (PHP sont les trois lettres de l'acronyme récursif: "PHP: Hypertext Preprocessor"), un moteur PHP côté serveur est nécessaire. PHP est un langage de script universel largement utilisé, open source, particulièrement approprié au développement web et principalement utilisé pour produire des contenus web dynamiques et des applications serveur.

Obtaining PHP / Télécharger PHP

PHP is free software. You can download packages either the complete source code or the pre-compiled binaries from http://www.php.net/downloads.php
PHP est un logiciel libre dont vous pouvez télécharger, sur le site http://www.php.net/downloads.php , soit les sources complètes soit des binaires précompilés.

Make sure you install PHP 4.4. We recommend that your use the latest version of the 4.4 branch. Please note that eZ publish will not work correctly with PHP 5.
Assurez-vous d'installer la version 4.4 de PHP. Nous vous recommandons d'utiliser la dernière version de la branche 4.4. Notez que eZ Publish ne fonctionne pas correctement avec PHP 5

Building and installing PHP / Compiler et installer PHP

If your Linux distribution does not include PHP (or does not include the correct version of PHP) you can compile PHP from source. Before you start make sure that you have access to the root account.
Si votre distribution Linux n'inclut pas PHP (ou n'inclut pas la bonne version de PHP), vous pouvez compiler les sources de PHP. Mais avant de commencer, assurez-vous d'avoir accès au compte root (administrateur) de votre machine.

The basic commands you must execute to compile and install PHP 4.x.x from source are:
Voici les commandes que vous devez lancer pour compiler et installer les sources de PHP 4.x.x:

shell>cd/usr/local/src
shell>gunzip</PATH/TO/php-4.x.x.tar.gz|tarxvf-
shell>cdphp-4.x.x
shell>./configure--with-apxs=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/apache/conf--with-mysql--enable-memory-limit
--enable-mbstring--with-ttf--with-gd--with-jpeg-dir--enable-gd-native-ttf
--with-png-dir--with-freetype-dir--with-zlib--with-dom--enable-exif
shell>make
shell>su-
shell>makeinstall

A more detailed description of the steps for compiling and installing PHP 4.x.x from source follows:
Voici une description détaillée des étapes à suivre pour compiler puis installer les sources de PHP 4.x.x

1. Choose the directory under which you want to unpack the distribution, and then change location into it. In the following example, we unpack the distribution under   /usr/local/src
Choisissez le répertoire dans lequel vous souhaitez désarchiver la distribution et placez-vous dans ce répertoire. Dans l'exemple qui suit, nous désarchivons la distribution dans le répertoire /usr/local/src.

shell> cd /usr/local/src

2. Obtain a PHP distribution from http://www.php.net/downloads.php
Téléchargez la distribution de PHP sur cette page: http://www.php.net/downloads.php

3. Unpack the source file, which creates the installation directory. This example shows how to unpack the distribution using gunzip
Désarchivez le fichier contenant les sources de PHP ce qui créera un répertoire d'installation. L'exemple ci-dessous montre comment désarchiver la distribution en utilisant la commande gunzip :

shell> gunzip &nbsp;/CHEMIN/VERS/php-4.x.x.tar.gz | tar xvf -

The tar command creates a directory called "php-4.x.x" (where "4.x.x" is the PHP version number). If you are using GNU tar, no separate invocation of gunzip is necessary. Instead, you can use the following command to uncompress and extract the distribution:
La commande tar  crée un répertoire nommé php-4.x.x (où 4.x.x représente le numéro de version de PHP). Si vous utilisez GNU tar il n'est pas nécessaire d'invoquer séparément la commande gunzip. A la place, vous pouvez utiliser la commande ci-dessous pour décompresser et extraire la distribution:

shell> tar zxvf /CHEMIN/VERS/php-4.x.x.tar.gz

4. Change location into the installation directory:
Placez-vous dans le répertoire d'installation:

shell> cd php-4.x.x

5. Run the configuration script with following parameters:
Exécutez le script de configuration de PHP avec les paramètres suivants:

./configure --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf
--with-mysql --enable-memory-limit --enable-mbstring --with-ttf --with-gd --with-jpeg-dir
--enable-gd-native-ttf --with- png-dir --with-freetype-dir --with-zlib --with-dom --enable-exif

These parameters are interpreted as follows:
Ces paramètres sont interprétés de la façon suivantes:

--with-apxs=/usr/local/apache/bin/apxs

Compiles PHP as a shared module for Apache. This means that you will get a   libphp4.so   file that you will load into Apache as a dynamic module.
Compilez PHP en tant que module partagé pour Apache. Cela signifie que vous obtiendrez une librairie libphp4.so que vous chargerez dans Apache en tant que module dynamique.

--with-config-file-path=/usr/local/apache/conf

Tells PHP to look for the   php.ini   configuration file in   /usr/local/apache/conf  .
Dit à PHP de rechercher le fichier de configuration php.ini dans le répertoire /usr/local/apache/conf

--with-mysql

Compiles PHP with support for MySQL. If you have compiled MySQL yourself or if MySQL is located outside the default   PATH   on your system, you should specify   --with-mysql=/PATH/TO/MYSQL   to make sure that PHP is compiled using the correct version of MySQL. You will be able to check this with the   phpinfo();   command when PHP is running. We highly recommend that you specify the path to the MySQL installation due to the fact that the client library available in PHP 4.4 is not up-to-date.
Compile PHP avec le support de MySQL. Si vous avez compilé MySQL vous-même ou bien si MySQL est situé hors de la variable d'environnement PATH de votre système, vous devez spécifier l'option --with-mysql=/CHEMIN/VERS/MYSQL pour vous assurez que PHP sera compilé en utilisant la bonne version de MySQL. Vous pourrez contrôler que c'est bien le cas en utilisant la commande phpinfo(); durant l'exécution de PHP. Nous vous recommandons fortement de spécifier le chemin d'installation de MySQL en raison du fait que la librairie cliente disponible dans PHP 4.4 n'est pas à jour.

--enable-memory-limit

This options enables the ability to change the   memory_limit   allowed for each PHP script in the   php.ini   file. By default, the memory limit is set to 8 MB. Instructions for increasing the memory limit are included in the "Configurating Apache and PHP" section. When PHP is compiled with this option, you can see how much memory is used on eZ publish page processing by viewing the debug output. This option also helps prevent buggy scripts from consuming all available memory on a server.
Cette option active la possibilité de modifier la valeur du paramètre memory_limit du fichier php.ini, valeur allouée à chaque script PHP. Par défaut, cette valeur vaut 8 MB (Mega Byte=Méga Octet). Les instructions permettant d'augmenter la valeur de mémory_limit sont présentées par l'article Configuration d'Apache et de PHP. Lorsque PHP est compilé avec cette option vous pouvez voir combien de mémoire est utilisée pour le traitement d'une page de eZ publish en regardant les sorties produites par le mode debug. Cette option permet également de prévenir les scripts bugués d'utiliser toute la mémoire disponible sur le serveur.

You can also disable the memory limit for a slight performance increase, since PHP then does not have to check if the memory limit has been exceeded.
Vous pouvez aussi désactiver la limite mémoire si vous souhaitez obtenir un léger gain de performance, puisqu'alors PHP n'aura pas à contrôler si la limite mémoire a été dépassée.

--enable-mbstring

This enables the multibyte string functions in PHP that are used by eZ publish for multibyte character sets.
Cette option permet de prendre en charge dans PHP les fonctions chaîne de caractères multibyte utilisées par eZ publish pour les jeux de caractères multibyte.

--with-ttf / --with-freetype-dir --with-jpeg-dir --enable-gd-native-ttf --with-png-dir

These configuration options are used with   --with-gd   to enable GD functionality for Freetype 1.x (  --with-ttf  ), Freetype 2 (  --with-freetypedir  ), JPEG support (  --with-jpeg-dir  ), TrueType support (  --enable-gd-native-ttf  ) and PNG support (  --with-png-dir  ).
Ces options de configuration sont utilisées pour supporter: les fonctionnalités GD ( --with-gd), les polices Freetype 1.x ( --with-ttf), les polices Freetype 2 ( --with-freetypedir), le format JPEG ( --with-jpeg-dir), les polices TrueType ( --enable-gd-native-ttf) et le format PNG ( --with-png-dir).

--with-gd

This option enables the GD Image functions in PHP. You must enable this if you intend to use eZ publish to create and manipulate image files in a variety of different image formats (for example, if you would like to use the gallery in eZ publish to resize images). You will also need this function to use the text-to-images function.
Cette option permet le support dans PHP de la fonction GD Image  . Vous devez activer cette option si vous envisagez d'utiliser eZ publish pour créer et manipuler les différents formats des fichiers images (par exemple, si vous voulez utiliser la galerie d'images de eZ publish pour redimentionner les images). Vous aurez également besoin de cette fonction pour utiliser la fonction text-to-images.

--with-zlib

This option enables the zlib compression functions in PHP that are used by eZ publish to transparently read and write gzip (  .gz  ) compressed files.
Cette option permet le support dans PHP des fonctions de compression zlib utilisées par eZ publish pour lire et écrire de manière transparente les fichiers ( .gz) compressés avec gzip.

--with-dom

This option enables the domxml extension that allows eZ publish to operate on an XML document with the DOM API. This will speed up performance, especially for multilingual sites where large XML translation files are used.
Cette option permet de prendre en charge l'extension domxml qui permet à eZ publish d'opérer, grâce à l'API DOM, sur les documents XML. Cela augmentera les performances, tout spécialement sur les sites multilangue  qui utilisent de gros fichiers de traduction XML (???).

--enable-exif

With the   exif   extension enabled, eZ publish is able to work with image metadata. It can read metadata of pictures taken from digital cameras by working with information stored in the headers of the JPEG and TIFF images.
Avec l'extension exif activée, eZ publish peut gérer les métadonnées des images car il peut alors lire les métadonnées des photos prises avec les appareils numériques en traitant les informations des en-têtes des images JPEG ou TIFF.

To see additional configuration options, run:
Pour afficher les options supplémentaires, exécutez:

shell> ./configure --help

The configure script will take several minutes to run, as it tests for the availability of packages and prerequisites on your system and builds the Makefiles which will later be used to compile PHP.
Le script configure prendra plusieurs minutes pour s'exécuter: il test la disponibilité, sur votre système, de certains packages et de tout ce qui est nécessaire puis crée le fichier Makefiles qui sera utilisé ultérieurement pour compiler PHP.

6. Now you can build the PHP application by running the command:
Vous pouvez maintenant construire PHP en lançant la commande make:

shell > make

7. Switch to the root user before executing the following commands:
Passez en mode superutilisateur avec la commande suivante:

shell> su -

If you don't have access to the root account, ask your system administrator for help.
Si vous n'avez pas accès au compte root, demandez de l'aide à l'administrateur de votre système.

8. Next, install the package by running:
Ensuite, installez le package avec la commande suivante:

shell> make install

If there were no errors, PHP should be installed on your system. However, PHP requires some configuration, described in the next section, to make it work with Apache and MySQL.
S'il n'y a aucune erreur, PHP devrait être installé sur votre système. Cependant, afin de fonctionner avec Apache et MySQL, PHP requière certaines configurations décrites ci-dessous:

Apache module (mod_php) / Le module Apache mod_php

PHP can work as an Apache module or in CGI mode. For maximum performance we recommend that you install PHP as an Apache module. The difference between between the two is the execution method. When PHP is installed as CGI, for each script execution the server must load and start a PHP CGI process, which slows down the start up phase of the script's execution. For maximum performance and compatibility it is highly recommend that PHP is installed as an Apache module instead of CGI for eZ publish CMS.
PHP peut fonctionner en tant que module d'Apache ou en mode CGI (Common Gateway Interface). Pour des performances optimales, nous vous recommandons d'installer PHP en tant que module d'Apache. La différence entre les deux méthodes est la méthode d'exécution: en mode CGI, pour chaque script exécuté, le serveur doit charger et démarrer un processus CGI PHP ce qui ralentit la phase de démarrage de l'exécution du script. Par conséquent, pour des performances et une compatibilité optimale il est grandement recommandé d'installer PHP en tant que module d'Apache plutôt que comme CGI pour le CMS eZ publish.

PHP Command Line Interface (CLI) / Interface de Commande en Ligne PHP (CLI)

Since version 4.3.0, PHP supports a new SAPI type (Server Application Programming Interface) named CLI ("Command Line Interface"). CLI's main focus is on developing shell (or desktop) applications with PHP. Note that CLI and CGI are different SAPIs, although they do share many of the same behaviors.
Depuis la version 4.3.0, PHP supporte un nouveau type de SAPI (Interface de Programmation d'Applications Serveur) appelée CLI  (Interface de Commande en Ligne ). L'objectif principal de CLI est le développement d'applications shell (ou bureaux) avec PHP. Notez que CLI et CGI sont des SAPI différentes, bien qu'elles aient en commun plusieurs comportements.

The CLI SAPI was released for the first time with PHP 4.2.0, but was still experimental and had to be explicitly enabled with the   --enable-cli   option when running   ./configure  . Since PHP 4.3.0 the CLI SAPI is no longer experimental and the option   --enable-cli   is on by default.
La SAPI CLI est apparue pour la première fois lors de la sortie de la version 4.2.0 de PHP. Mais comme il s'agissait d'une version expérimentale, CLI devait être explicitement activée par l'option --enable-cli lors de l'exécution de la commande ./configure. Depuis la version 4.3.0 de PHP cette SAPI CLI n'est plus expérimentale et l'option --enable-cli est activée par défaut.

The PHP Command Line Interface is requirement for eZ publish to run the eZ publish PHP scripts from command line and access to all eZ publish features and do maintenance. For more information about the PHP CLI SAPI, refer to the PHP manual: http://php.net/manual/en/features.commandline.php
L'interface de Commande en Ligne de PHP est requise par eZ publish pour que soient exécutés en ligne de commande certains scripts PHP et accéder ainsi à toutes les fonctionnalités de eZ publish et pour effectuer les opérations de maintenance. Pour plus d'informations à propos de la SAPI CLI de PHP, référez-vous au manuel de PHP: http://php.net/manual/fr/features.commandline.php

Friday 04 August 2006 10:41:00

Commentaires