html/ 0040755 0001012 0001012 00000000000 11310427226 013014 5 ustar docbuilder docbuilder html/copyright.html 0100644 0001012 0001012 00000004033 11310426341 015704 0 ustar docbuilder docbuilder
Copyright @ 1997 - 2009 par le PHP Documentation Group. Ce document ne peut être redistribué qu'aux termes et aux conditions mentionnés dans la licence Open Publication License, version 1.0 ou plus récente. Une copie de la licence Creative Commons Attribution 3.0 est distribuée avec ce manuel ; la dernière version est disponible à » http://creativecommons.org/licenses/by/3.0/.
Dans le cas où vous seriez intéressés par la distribution partielle ou totale de ce document (modifié ou non) et que vous ayez des questions, merci de contacter les propriétaires du Copyright à » doc-license@lists.php.net. Notez que cette adresse courriel est directement redirigée vers une liste de diffusion publique et archivée.
PHP est un acronyme récursif, qui signifie "PHP: Hypertext Preprocessor" : c'est un langage de script HTML, exécuté côté serveur. Sa syntaxe est empruntée aux langages C, Java et Perl, et est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement, mais vous pouvez faire beaucoup plus avec PHP.
Ce manuel est essentiellement une référence des fonctions, mais il contient aussi des informations de référence sur le langage, des explications sur les fonctionnalités principales de PHP et diverses informations supplémentaires.
Vous pouvez télécharger ce manuel sous divers formats, sur » http://www.php.net/download-docs.php. Plus d'informations sur ce manuel sont disponibles dans l'appendice À propos du manuel. Si vous voulez découvrir l'histoire de PHP.
Nous mettons en avant les personnes les plus actives dans la préface du manuel mais il y a bien plus de contributeurs qui nous aident actuellement dans notre travail ou qui ont fournis une aide précieuse au projet dans le passé. Il y a beaucoup d'inconnus qui nous ont aidés à travers leurs notes concernant les pages du manuel qui sont continuellement incluses dans le manuel, travail dont nous sommes très reconnaissants. La liste fournie ci-dessous est classée par ordre alphabétique.
Les contributeurs suivants ont eu un impact énorme en ajoutant du contenu dans le manuel : Bill Abt, Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Rafael Martinez, Rick McGuire, Yasuo Ohgaki, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar et Andrei Zmievski.
Les contributeurs suivants ont énormément aidé dans l'édition du manuel : Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe et Egon Schmid.
Les mainteneurs actuellement les plus actifs sont : Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda et Maciek Sokolewicz.
Ces personnes ont également déployé énormément d'efforts dans le maintien des notes utilisateurs : Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles et Jeroen van Wolffelaar.
PHP (officiellement, ce sigle est un acronyme récursif pour PHP: Hypertext Preprocessor) est un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications web. Il peut être intégré facilement au HTML.
Bien... mais qu'est ce que cela veut dire ? Un exemple :
Exemple #1 Exemple d'introduction
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Exemple</title>
</head>
<body>
<?php
echo "Bonjour, je suis un script PHP !";
?>
</body>
</html>
Au lieu d'utiliser des tonnes de commande afin d'afficher du HTML (comme en
C ou en Perl), les pages PHP contiennent des fragments HTML dont du code
qui fait "quelque chose" (dans ce cas, il va afficher
"Bonjour, je suis un script PHP !").
Le code PHP est inclus entre
une balise de début
<?php et une balise de fin ?>
qui permettent au serveur web de passer en mode PHP.
Ce qui distingue PHP des langages de script comme le Javascript, est que le code est exécuté sur le serveur, générant ainsi le HTML, qui sera ensuite envoyé au client. Le client ne reçoit que le résultat du script, sans aucun moyen d'avoir accès au code qui a produit ce résultat. Vous pouvez configurer votre serveur web afin qu'il analyse tous vos fichiers HTML comme des fichiers PHP. Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques.
Le grand avantage de PHP est qu'il est extrêmement simple pour les néophytes, mais offre des fonctionnalités avancées pour les experts. Ne craignez pas de lire la longue liste de fonctionnalités PHP. Vous pouvez vous plonger dans le code, et en quelques instants, écrire des scripts simples.
Bien que le développement de PHP soit orienté vers la programmation pour les sites web, vous pouvez en faire bien d'autres usages. Lisez donc la section Que peut faire PHP ? ou bien le tutoriel d'introduction si vous êtes uniquement intéressé dans la programmation web.
Tout. PHP est principalement conçu pour servir de langage de script coté serveur, ce qui fait qu'il est capable de réaliser tout ce qu'un script CGI quelconque peut faire, comme collecter des données de formulaire, générer du contenu dynamique, ou gérer des cookies. Mais PHP peut en faire bien plus.
Il y a trois domaines différents où PHP peut s'illustrer.
PHP est utilisable sur la majorité des systèmes d'exploitation, comme Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), Microsoft Windows, Mac OS X, RISC OS et d'autres encore. PHP supporte aussi la plupart des serveurs web actuels : Apache, Microsoft Internet Information Server, Personal Web Server, Netscape et iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd et beaucoup d'autres encore. Pour la majorité des serveurs web, PHP fonctionne comme module et, pour d'autres, il comme exécutable CGI.
Avec PHP vous avez le choix de votre système d'exploitation et de votre serveur web. De plus, vous avez aussi le choix d'utiliser la programmation procédurale ou objet, ou encore un mélange des deux. Bien que le support de la couche objet ne soit pas très standard en PHP 4, beaucoup de bibliothèques et d'applications d'envergures (incluant la bibliothèque PEAR) ont été écrites en utilisant uniquement du code orienté objet. PHP 5 a rectifié les faiblesses de la couche objet de PHP 4 et a introduit un modèle objet complet.
Avec PHP, vous n'êtes pas limité à la production de code HTML. Les capacités de PHP lui permettent de générer aussi bien des images, des fichiers PDF, des animations Flash (avec l'aide des bibliothèques libswf et Ming) générés à la volée. Vous pouvez aussi générer facilement du texte, du code XML ou XHTML. PHP génère tous ces fichiers et les sauve dans le système de fichier, ou bien les envoie directement au navigateur web.
Une des grandes forces de PHP est le support de nombreuses bases de données. Ecrire une page web exploitant une base de données est extrêmement simple. Les bases de données suivantes sont toutes supportées par PHP :
Il existe aussi une couche d'abstraction de base de données (nommée PDO) qui vous permettent de vous connecter de manière transparente à toute base de données supportée par cette extension. De plus, PHP supporte ODBC, ce qui vous permet de vous connecter à toute autre base de données qui supporte ce standard.
- Adabas D
- dBase
- Empress
- FilePro (lecture seule)
- Hyperwave
- IBM DB2
- Informix
- Ingres
- InterBase
- FrontBase
- mSQL
- Direct MS-SQL
- MySQL
- ODBC
- Oracle (OCI7 et OCI8)
- Ovrimos
- PostgreSQL
- SQLite
- Solid
- Sybase
- Velocis
- Unix dbm
PHP supporte de nombreux protocoles comme LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (sous Windows) et encore d'autres. Vous pouvez ouvrir des sockets réseau, et interagir avec n'importe quel autre protocole. PHP supporte le format complexe WDDX, qui permet de communiquer entre tous les langages web. En terme d'interconnexion, PHP supporte aussi les objets Java, et les utilise de manière transparente comme objets intégrés. Vous pouvez aussi exploiter les objets distants avec CORBA.
PHP dispose de fonctionnalités extrêmement utiles pour le traitement de texte, allant des expressions rationnelles POSIX étendues ou Perl aux traitements des fichiers XML, avec les standards SAX et DOM (PHP 4). Vous pouvez utiliser les transformations XSLT. PHP 5 standardise toutes les extensions XML sur la base solide de libxml2 et en attendant les fonctionnalités en ajoutant le support de SimpleXML et XMLReader.
Enfin, PHP dispose d'extensions très pratiques comme le moteur de recherche mnoGoSearch, la passerelle avec IRC, des outils de compression (gzip, bz2, zip) et de conversion calendaire, de traduction...
Comme vous le voyez, cette page n'est pas assez grande pour lister toutes les puissantes fonctionnalités de PHP. Lisez la section sur l'installation de PHP et étudiez la liste de fonctions pour avoir plus de détails sur toutes ces technologies.
Dans ce tutoriel, nous présumons que vous avez un serveur web avec le support PHP activé, et que les fichiers terminés par l'extension .php sont traités par PHP. Sur la plupart des serveurs, c'est la configuration par défaut, mais n'hésitez pas à interroger votre administrateur système en cas de doute. Si votre serveur web supporte PHP, vous n'avez rien à faire. Simplement, créez un dossier, puis créez un fichier texte, avec l'extension .php : le serveur va automatiquement l'exécuter avec PHP. Il n'y a pas de compilation, ou d'installation compliquée. Gardez en tête que les fichiers sont comparables à des fichiers HTML, dans lesquels vous allez utiliser des balises magiques, qui feront beaucoup de choses pour vous. Beaucoup d'hébergeurs web proposent PHP mais si ce n'est pas le cas, lisez la section des » liens PHP pour trouver un hébergeur web le proposant.
Supposons que vous souhaitiez économiser du temps en ligne et travailler localement. Dans ce cas, vous devez installer un serveur web comme » Apache, et bien sur » PHP. Vous souhaiterez aussi installer une base de données comme » MySQL.
Vous pouvez soit installer ces logiciels individuellement ou bien d'une manière simplifiée. Notre manuel contient les instructions d'installation de PHP (en supposant que vous avez déjà un serveur web d'installé). Dans le cas où vous rencontriez des problèmes dans l'installation de PHP, nous vous suggérons de poser vos questions sur notre » liste de diffusions réservée à cet usage. Si vous choisissez une version simplifiée, vous pouvez utiliser des » des installeurs qui prennent en charge l'ensemble de l'installation en quelques clics. Il est facile de configurer un serveur web avec le support de PHP sur n'importe quel système d'exploitation, y compris MacOs, Linux et Windows. Sous Linux, vous pouvez aussi trouver des commandes comme » rpmfind et » PBone très pratiques pour rechercher les paquets pré-compilés. Vous pouvez aussi visiter » apt-get, pour des paquets Debian.
Créez un fichier appelé bonjour.php dans votre dossier web racine (DOCUMENT_ROOT) avec le contenu suivant :
Exemple #1 Notre premier script PHP : bonjour.php
<html>
<head>
<title>Test PHP</title>
</head>
<body>
<?php echo '<p>Bonjour le monde</p>'; ?>
</body>
</html>
Utilisez votre navigateur pour accéder au fichier via votre serveur web, en ajoutant le nom de fichier /bonjour.php. Si vous développez localement, votre URL ressemblera à http://localhost/bonjour.php ou encore http://127.0.0.1/bonjour.php mais cela dépend de la configuration de votre serveur web. Si ceci est configuré correctement, le fichier sera analysé par PHP et le résultat suivant affiché :
<html> <head> <title>Test PHP</title> </head> <body> <p>Bonjour le monde</p> </body> </html>
Ce programme est extrêmement simple et vous n'avez pas besoin de PHP pour créer une page web comme ceci. Elle ne fait qu'afficher Bonjour le monde, grâce à la fonction echo() de PHP. Notez que ce fichier n'a pas besoin d'être exécutable ou autres, dans aucun cas. Le serveur sait que ce fichier a besoin d'être interprété par PHP car vous utilisez l'extension ".php", et le serveur est configuré pour les passer à PHP. Voyez cela comme une page HTML normale qui contient une série de balises spéciales qui vont vous permettre de réaliser beaucoup de choses intéressantes.
Si vous avez essayé cet exemple et qu'il n'a rien affiché de spécial, ou même qu'une boîte de dialogue a surgi pour vous proposer de le télécharger, ou encore vous avez vu le code tel que nous l'avons écrit dans le fichier, alors votre serveur web ne supporte probablement pas PHP ou est mal configuré. Demandez à votre administrateur de l'activer pour vous, en utilisant le chapitre Installation. Si vous développer localement, lisez également le chapitre d'installation afin de vous assurer que tout est configuré correctement. Assurez-vous que vous tentez d'accéder au fichier via http et que le serveur web vous fournit la sortie. Si vous appelez votre fichier depuis votre gestionnaire de fichiers, il ne sera pas analysé par PHP. Si le problème persiste malgré cela, n'hésitez pas à utiliser une » des options de support de PHP.
Le point important de cet exemple était de montrer le format des balises spéciales PHP. Nous avons utilisé ici <?php pour indiquer le début de la balise PHP. Puis, nous avons introduit les commandes PHP et refermé les balises PHP avec ?>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise. Pour plus d'informations, lisez la section du manuel sur la syntaxe basique de PHP.
Note: Une note sur les retours à la ligne
Les retours à la ligne ont une signification minime en HTML, cependant, c'est toujours une bonne idée de rendre votre HTML aussi joli et proche que possible en y ajoutant des retours à la ligne. Un retour à la ligne suivant immédiatement une balise de fermeture PHP (?>) sera supprimé par PHP. Ceci peut être vraiment très utile lorsque vous insérez plusieurs blocs PHP ou fichiers inclus contenant du PHP qui n'est pas supposé afficher quoi que ce soit. En même temps, ce peut être confus. Vous pouvez ajouter un espace après la balise fermante PHP (?>) pour forcer l'espace et un retour à la ligne à afficher, ou vous pouvez ajouter explicitement un retour à la ligne dans le dernier echo/print de votre bloc PHP.
Note: Une note sur les éditeurs de texte
Il existe de nombreux éditeurs de texte et environnements de développement (IDE) que vous pouvez utiliser pour créer, éditer et gérer vos applications PHP. Une liste partielle de ces outils est entretenue à l'adresse » PHP Editor's List. Si vous voulez recommander un éditeur particulier, rendez donc une visite à cette page, et demandez au webmestre d'ajouter votre éditeur. Avoir au minimum un éditeur de texte avec la coloration syntaxique est vivement recommandé.
Note: Une note sur les traitements de texte
Les traitements de texte tels que StarOffice Writer, Microsoft Word et Abiword sont de très mauvais choix pour éditer des scripts PHP. Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos scripts, vous devez vous assurer que vous sauvez les fichiers au format texte seul (plain text) : sinon, PHP ne sera pas capable de lire et d'exécuter ces scripts.
Note: Une note sur le Notepad de Windows
Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad ajoute automatiquement une extension .txt à vos fichiers, à moins que vous ne preniez l'une des mesures suivantes). Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner un nom, placez le nom du fichier entre doubles guillemets (i.e. "hello.php"). Vous pouvez également cliquer dans le menu 'Documents texte' du dialogue de sauvegarde, et choisir l'option 'Tous les fichiers'. Vous pourrez alors saisir le nom de votre fichier sans les doubles guillemets.
Maintenant vous avez créé un script PHP qui fonctionne, c'est le moment de créer le meilleur script PHP ! Faites un appel à la fonction phpinfo() et vous verrez beaucoup d'informations intéressantes sur votre système et sa configuration comme les variables pré-définies disponibles, les modules PHP chargés ainsi que la configuration. Prenez du temps pour revoir ces informations importantes.
Exemple #2 Récupération des informations du système depuis PHP
<?php phpinfo(); ?>
Réalisons maintenant quelque chose de plus puissant. Nous allons vérifier le type de navigateur que le visiteur de notre site utilise. Pour cela, nous allons accéder aux informations que le navigateur du visiteur nous envoie, lors de sa requête HTTP. Cette information est stockée dans une variable. Les variables sont faciles à repérer, car elles commencent toutes par un signe dollar. La variable qui nous intéresse ici est $_SERVER['HTTP_USER_AGENT'].
Note: $_SERVER est une variable spéciale de PHP, qui contient toutes les informations relatives au serveur web. C'est une variable réservée de PHP, et une superglobale. Reportez-vous aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Ces variables spéciales ont été introduites en » PHP 4.1.0. Auparavant, il fallait utiliser les variables $HTTP_*_VARS, comme $HTTP_SERVER_VARS. Bien qu'obsolètes, ces variables existent toujours. (Voir aussi la note sur l'ancien code.)
Pour afficher cette variable, nous pouvons simplement faire :
Exemple #1 Afficher le contenu d'une variable (élément de tableau)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Un résultat possible du script pourra alors être :
Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément de Tableau (Array). Les tableaux peuvent être très utiles.
$_SERVER est juste une variable qui est automatiquement disponible dans votre script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables réservées ou vous pouvez aussi en obtenir une liste complète en lisant l'affichage de la fonction phpinfo() utilisée dans l'exemple de la section précédente.
Vous pouvez ajouter plusieurs commandes PHP dans une balise PHP, et créer de petits blocs de code qui réalisent des opérations plus complexes qu'un simple affichage. Par exemple, si nous voulons vérifier que le navigateur est bien de la famille des Internet Explorer, nous pouvons faire cela :
Exemple #2 Exemple utilisant les structures de contrôle et les fonctions
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Vous utilisez Internet Explorer<br />';
}
?>
Le résultat de ce script, si vous utilisez Internet Explorer, sera :
Vous utilisez Internet Explorer<br />
Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous êtes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage où la syntaxe est similaire à celle ci-dessus, il vaudrait mieux que vous lisiez une introduction à PHP, et assimiliez les premiers chapitres, ou bien lisez le chapitre consacré à la référence du langage.
Le second concept que nous avons introduit est la fonction strpos(). strpos() est une fonction intégrée à PHP, qui recherche la présence d'une chaîne dans une autre. Dans notre cas, nous avons recherché la chaîne "MSIE" dans la chaîne $_SERVER['HTTP_USER_AGENT']. Si cette chaîne est trouvée, la fonction retourne sa position dans la chaîne et, sinon, FALSE. Si elle ne retourne pas FALSE, la structure if reçoit TRUE et le code entre accolades {} est exécuté. Sinon, le code n'est pas exécuté. N'hésitez pas à expérimenter d'autres exemples, à l'aide de if, else, et d'autres fonctions comme strtoupper() et strlen(). Chaque page de la documentation contient aussi des exemples. Si vous n'êtes pas sûr de l'utilisation de ces fonctions, vous devez lire la page du manuel "comment lire une définition de fonction" ainsi que la section sur les fonctions PHP.
Nous pouvons maintenant progresser et vous montrer comment utiliser le mode PHP, au milieu du code HTML :
Exemple #3 Passer du mode PHP au mode HTML et vice-versa
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() n'a pas retourné FALSE</h3>
<p>Vous utilisez Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() a retourné FALSE</h3>
<p>Vous n'utilisez pas Internet Explorer</p>
<?php
}
?>
Un exemple de résultat obtenu dans ce script est :
<h3>strpos() n'a pas retourné FALSE</h3> <p>Vous utilisez Internet Explorer</p>
Au lieu d'utiliser une commande echo(), pour afficher du texte, vous pouvez utiliser du code HTML pur. Le point important a noter ici et que la logique de programmation est conservée. Seul un des deux blocs HTML sera affiché, suivant le résultat de la fonction strpos(). En d'autres termes, cela dépend si la chaîne MSIE a été trouvée ou non.
L'un des points forts de PHP est sa capacité à gérer les formulaires. Le concept de base qui est important à comprendre est que tous les champs d'un formulaire seront automatiquement disponibles dans le script PHP d'action. Lisez le chapitre du manuel concernant les variables depuis des sources externes à PHP pour plus d'informations et d'exemples sur la façon d'utiliser les formulaires. Voici un exemple de formulaire HTML :
Exemple #1 Un simple formulaire HTML
<form action="action.php" method="post"> <p>Votre nom : <input type="text" name="nom" /></p> <p>Votre âge : <input type="text" name="age" /></p> <p><input type="submit" value="OK"></p> </form>
Il n'y rien de particulier dans ce formulaire. Il est en HTML pur, sans aucune configuration particulière. Lorsque le visiteur remplit le formulaire, et clique sur le bouton OK, le fichier action.php est appelé. Dans ce fichier, vous pouvez écrire le script suivant :
Exemple #2 Afficher des données issues d'un formulaire
Bonjour, <?php echo htmlspecialchars($_POST['nom']); ?>.
Tu as <?php echo (int)$_POST['age']; ?> ans.
Voici le résultat que vous pourriez obtenir, selon les valeurs que vous avez saisies :
Bonjour Jean. Tu as 29 ans.
Mise à part les parties htmlspecialchars() et (int), ce script ne fait que des choses évidentes. htmlspecialchars() s'assure que tous les caractères spéciaux HTML sont proprement encodés afin d'éviter des injections de balises HTML et de Javascript dans vos pages. Pour l'âge, vu que nous savons que c'est un entier, vous pouvez le convertir en un entier. Vous pouvez également demander à PHP de le faire automatiquement à votre place en utilisant l'extension filter. Les variables $_POST['nom'] et $_POST['age'] sont automatiquement créés par PHP. Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable $_SERVER, une superglobale. Maintenant, nous avons introduit une autre superglobale $_POST qui contient toutes les données envoyées par la méthode POST. Notez que dans notre formulaire, nous avons choisi la méthode POST. Si vous avions utilisé la méthode GET alors notre formulaire aurait placé ses informations dans la variable $_GET, une autre superglobale. Vous pouvez aussi utiliser la variable $_REQUEST, si vous ne souhaitez pas vous embarrasser de la méthode utilisée. Elle contient un mélange des données de GET, POST, COOKIE et FILE. Voyez aussi la fonction import_request_variables().
Vous pouvez également utiliser des champs XForms dans PHP, même si vous vous sentez bien avec l'utilisation des formulaires HTML. Bien que le travail avec XForms ne soit pas fait pour les débutants, vous pourriez être intéressé par cette technologie. Nous avons également une courte introduction sur le traitement des données reçues par XForms dans notre section sur les fonctionnalités.
Maintenant que PHP est devenu un langage de script populaire, il existe de nombreuses ressources qui vous proposent des portions de code que vous pouvez réutiliser dans vos codes. Pour la plupart, les développeurs de PHP ont tâché d'assurer la compatibilité ascendante, ce qui fait que de nombreux scripts écrits pour les anciennes versions sont aussi valables pour les nouvelles versions de PHP, idéalement sans modifications. En pratique, certaines modifications doivent être apportées.
Les deux modifications récentes les plus importantes qui affectent les anciens codes sont :
Pour plus de détails sur ces modifications, reportez-vous à la section sur les variables pré-définies.
Avec ce que vous savez, vous êtes maintenant capable de comprendre l'essentiel de la documentation PHP, et les différents scripts d'exemples disponibles dans les archives. Vous pouvez aussi trouver d'autres exemples dans la section liens ("links", en anglais) du site » http://www.php.net/links.php.
Différentes présentations des capacités de PHP sont disponibles sur le site des conférences PHP : » http://talks.php.net/.
Dans cette section, nous voulons illustrer les principes de base de PHP dans une courte introduction. Ce chapitre traite uniquement de création de pages web dynamiques avec PHP, laissant de coté temporairement les autres possibilités de PHP. Voyez la section Ce que peut faire PHP pour plus d'informations.
Les pages web qui exploitent PHP sont traitées comme des pages HTML standards, et vous pouvez les créer, éditer et effacer tout comme vous le faites normalement avec des pages HTML classiques.
Avant d'installer PHP, vous devez savoir ce que vous voulez faire avec PHP. Il y a trois cas d'utilisation que vous a décrit la section Que peut faire PHP ? :
Pour la première tâche, qui est de loin la plus répandue, vous avez besoin de trois choses : PHP lui-même, un serveur Web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre système d'exploitation, vous pouvez aussi disposer d'un serveur Web (i.e. Apache sous Linux ou IIS sous Windows). Vous pouvez aussi louer un espace à une société. De cette façon, vous n'aurez pas à mettre en place PHP, mais uniquement à écrire vos scripts, les charger sur le serveur et voir le résultat sur votre navigateur.
Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur Web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur Web, vous pouvez toujours l'utiliser comme processeur CGI ou FastCGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable CGI de PHP, pour qu'il traite les fichiers PHP sur le serveur.
Si vous souhaitez aussi utiliser PHP en ligne de commande (écrire des scripts de génération d'image hors ligne, par exemple, ou bien traiter des textes en fonctions d'informations que vous leur fourniriez), vous aurez besoin d'un exécutable PHP. Pour plus de détails, lisez la section écrire des applications PHP en ligne de commande. Dans ce cas, vous n'aurez pas besoin de serveur Web, ni de navigateur.
Avec PHP, vous pouvez aussi écrire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche complètement différente de l'écriture des pages web, car vous ne générerez pas de fichiers HTML, mais vous aurez à gérer des fenêtres et des objets. Pour plus de détails sur PHP-GTK, voyez le » site officiel. PHP-GTK n'est pas inclus dans la distribution officielle de PHP.
À partir de maintenant, cette section décrit l'installation de PHP avec un serveur Web sous Unix et Windows, sous forme de module ou d'exécutables CGI.
Les codes source et les exécutables compilés pour certains OS (y compris Windows), sont disponibles à » http://www.php.net/downloads.php. Nous recommandons l'utilisation du » miroir le plus proche pour télécharger les distributions.
Cette section contient des notes spécifiques pour l'installation de PHP avec Apache sur les systèmes Unix. Des notes spécifiques pour Apache 2 sont aussi disponibles sur une page séparée.
Vous pouvez sélectionner des options à ajouter au fichier configure à la ligne 10 depuis la liste complète des options de configuration. Les numéros de versions ont été omis ici afin de s'assurer que les instructions ne soient pas incorrectes. Vous devrez donc remplacer les 'xxx' par les versions correctes de vos fichiers.
Exemple #1 Instructions d'installation de PHP (en module Apache)
1. gunzip apache_xxx.tar.gz
2. tar -xvf apache_xxx.tar
3. gunzip php-xxx.tar.gz
4. tar -xvf php-xxx.tar
5. cd apache_xxx
6. ./configure --prefix=/www --enable-module=so
7. make
8. make install
9. cd ../php-xxx
10. Maintenant, configurez votre PHP. C'est le moment où vous configurez PHP
avec diverses options, comme les extensions qui seront activées. Lancez
./configure --help pour une liste des options disponibles. Dans notre exemple,
nous ferons un ./configure assez simple avec uniquement le support Apache et MySQL.
Votre chemin vers apxs peut être différent de notre exemple.
./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install
Si vous décidez de changer vos options de configuration après l'installation,
vous aurez juste besoin de répéter les trois dernières étapes. Vous aurez aussi besoin
de redémarrer apache pour que le nouveau module soit chargé. Une recompilation de
Apache n'est pas nécessaire.
Notez que, à moins de l'avoir explicitement désactivé, 'make install' installera aussi PEAR,
et des outils PHP tels que phpize, installera le CLI PHP, etc.
13. Configurez votre fichier php.ini :
cp php.ini-development /usr/local/lib/php.ini
Vous pouvez éditer votre fichier .ini pour régler certaines options PHP. Si vous souhaitez
votre php.ini à un autre endroit, utilisez --with-config-file-path=/votre/chemin lors de
l'étape 10.
Si vous utilisez plutôt php.ini-production, assurez-vous de lire l'ensemble des changements
qui y sont contenus, car ils modifient le fonctionnement de PHP.
14. Éditez votre httpd.conf afin de charger le module PHP. Le chemin dans la partie droite de la
directive LoadModule doit pointer vers l'endroit où se trouve le module PHP sur votre système.
Le make install lancé plus haut l'y aura certainement déjà déposé pour vous,
mais assurez vous en.
Pour PHP 4 :
LoadModule php4_module libexec/libphp4.so
Pour PHP 5 :
LoadModule php5_module libexec/libphp5.so
15. Et dans la section AddModule de httpd.conf, quelque part en dessous de
ClearModuleList, ajoutez ceci :
Pour PHP 4 :
AddModule mod_php4.c
Pour PHP 5 :
AddModule mod_php5.c
16. Dites à Apache de faire analyser certaines extensions par PHP. Par exemple,
faites analyser l'extension .php par PHP. Vous pouvez ajouter n'importe quelle(s)
extension(s) à analyser juste en l'(les)ajoutant à la suite, séparée(s) par un espace.
Nous ajouterons .phtml dans notre exemple.
AddType application/x-httpd-php .php .phtml
Il est assez fréquent de configurer l'extension .phps comme code source PHP colorisé,
ce qui peut être fait ainsi :
AddType application/x-httpd-php-source .phps
17. Utilisez votre méthode habituelle pour démarrer le serveur Apache.
(vous devez l'éteindre et le redémarrer, pas seulement lui envoyer
un signal HUP ou USR1.)
Alternativement, pour installer PHP en tant qu'objet statique :
Exemple #2 Instructions d'installation (installation en tant que module statique d'Apache) de PHP
1. gunzip -c apache_1.3.x.tar.gz | tar xf -
2. cd apache_1.3.x
3. ./configure
4. cd ..
5. gunzip -c php-5.x.y.tar.gz | tar xf -
6. cd php-5.x.y
7. ./configure --with-mysql --with-apache=../apache_1.3.x
8. make
9. make install
10. cd ../apache_1.3.x
11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
(La ligne ci-dessus est correcte ! Oui, nous savons que libphp5.a n'existe pas à
ce moment. On ne le suppose pas non plus. Il sera créé.)
12. make
(vous devriez avoir maintenant un binaire httpd que vous pouvez copier dans votre
dossier de binaire Apache ; si c'est votre première installation, vous devez exécuter la
commande "make install")
13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini
15. Vous pouvez éditer le fichier /usr/local/lib/php.ini pour définir les options de PHP.
Éditez votre fichier httpd.conf ou srm.conf et ajoutez :
AddType application/x-httpd-php .php
Note: Remplacez php-5 par php-4 et php5 par php4 en PHP 4.
Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez /path/to/ par le chemin d'accès à vos applications sur votre système.
Exemple #3 Exemples de commandes pour le redémarrage d'apache
1. Nombreuses variantes Linux SysV : /etc/rc.d/init.d/httpd restart 2. Avec les scripts apachectl : /path/to/apachectl stop /path/to/apachectl start 3. httpdctl et httpsdctl (utilisant OpenSSL), similaires à apachectl : /path/to/httpsdctl stop /path/to/httpsdctl start 4. En utilisant mod_ssl, ou un autre serveur SSL, vous pouvez vouloir l'arrêter et le démarrer manuellement : /path/to/apachectl stop /path/to/apachectl startssl
L'emplacement des exécutables apachectl et http(s)dctl peut varier. Si votre système est pourvu des commandes locate, whereis ou which, elles peuvent vous aider à retrouver vos programmes.
Différents exemples de compilation PHP pour Apache suivent :
./configure --with-apxs --with-pgsql
Cette commande va créer une bibliothèque partagée libphp5.so (ou libphp4.so en PHP 4) qui sera chargée par Apache avec une ligne LoadModule dans le fichier httpd.conf. Le support PostgreSQL est aussi inclus dans cette bibliothèque.
./configure --with-apxs --with-pgsql=shared
Cette commande va créer une bibliothèque partagée libphp4.so pour Apache, mais va aussi créer la bibliothèque partagée pgsql.so qui sera chargée dans PHP avec une directive du fichier php.ini ou en la chargeant explicitement dans le script avec la fonction dl().
./configure --with-apache=/path/to/apache_source --with-pgsql
Cette commande va créer une autre bibliothèque partagée libmodphp5.a, un fichier mod_php5.c et quelques fichiers associés dans le dossier src/modules/php4 du dossier source Apache. Puis, vous devez compiler Apache avec --activate-module=src/modules/php5/libphp5.a et le système de compilation d'Apache va créer un fichier libphp5.a et le lier statiquement avec httpd (remplacez php5 par php4 en PHP 4). Le support PostgreSQL est alors inclus directement dans l'exécutable httpd, ce qui fait que le résultat final est un fichier unique httpd, qui inclut Apache et PHP.
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
Comme précédemment, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable httpd final, vous allez obtenir une bibliothèque partagée pgsql.so que vous pouvez charger dans PHP soit grâce au fichier de configuration php.ini ou dynamiquement avec dl().
Lorsque vous faites votre choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'exécuter plus rapidement PHP. Pour plus d'informations, voyez la page web sur le » support des DSO.
Note: Le httpd.conf par défaut d'Apache est fourni avec une section qui ressemble à ceci :
User nobody Group "#-1"À moins que vous ne changiez cette valeur par "Group nogroup" ou quelque chose comme ça ("Group daemon" est aussi classique), PHP ne sera pas capable d'ouvrir des fichiers.
Note: Assurez-vous que vous spécifiez la version installée de apxs avec l'option --with-apxs=/path/to/apxs. Vous NE devez PAS utiliser la version d'apxs qui est dans les sources d'Apache, mais celle qui est réellement installée sur votre système.
Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.0 sur les systèmes Unix.
Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM à la place, ou utilisez Apache 1. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.
Il est vivement recommandé de lire la » documentation Apache pour avoir une meilleure connaissance du serveur Web Apache 2.0.
Note: Notes sur la compatibilité de PHP avec Apache 2.0
Les versions de PHP suivantes sont reconnues pour fonctionner avec la plus récente version d'Apache 2.0.x :
- PHP 4.3.0 ou plus récent, disponible à » http://www.php.net/downloads.php.
- Les dernières versions stables de développement. Le code source est disponible à » http://snaps.php.net/php5-latest.tar.gz, ou les exécutables compilés pour Windows à » http://snaps.php.net/win32/php5-win32-latest.zip.
- Une version non stable, téléchargeable sur » http://qa.php.net/.
- Vous pouvez obtenir PHP sur le » serveur SVN anonyme.
Ces versions de PHP sont compatibles avec Apache 2.0.40 et plus récent.
Le support des SAPI d'Apache 2.0 a commencé avec PHP 4.2.0. PHP 4.2.3 est connu pour fonctionner avec Apache 2.0.39. N'essayez pas d'utiliser cette version de PHP avec une autre version d'Apache 2.0. Cependant, nous vous recommandons de configurer PHP 4.3.0 ou supérieures avec la plus récente des versions d'Apache 2.
Toutes les versions de PHP mentionnées ici fonctionnent avec Apache 1.3.x.
Téléchargez la version la plus récente de » Apache 2.0 et une version appropriée de PHP, tel que décrit ci-dessus. Ce guide rapide couvre les manipulations de base, nécessaires à l'installation de Apache 2.0 et PHP. Pour plus d'informations, lisez la » documentation Apache. Les numéros de version sont omis ici, pour s'assurer que les instructions ne soient pas incorrectes. Il faudra donc remplacer les séquences 'NN' avec les valeurs correctes que vous utilisez.
Exemple #1 Instruction d'installation (Module partagé Apache 2)
1. gzip -d httpd-2_0_NN.tar.gz
2. tar xvf httpd-2_0_NN.tar
3. gunzip php-NN.tar.gz
4. tar -xvf php-NN.tar
5. cd httpd-2_0_NN
6. ./configure --enable-so
7. make
8. make install
Maintenant, vous avez un dossier Apache 2.0.NN installé dans /usr/local/apache2,
configure avec le support des modules dynamiques, et le prefork standard MPM.
Pour tester l'installation, utilisez votre procédure standard de démarrage d'Apache :
/usr/local/apache2/bin/apachectl start
et pour stopper le serveur, utilisez
/usr/local/apache2/bin/apachectl stop.
9. cd ../php-NN
10. Maintenant, configurez votre PHP. C'est le moment où vous configurez PHP
avec diverses options, comme les extensions qui seront activées. Lancez
./configure --help pour une liste des options disponibles. Dans notre exemple,
nous ferons une configuration assez simple avec uniquement le support de Apache 2 et MySQL.
Votre chemin vers apxs peut être différent ; en fait, le binaire devrait toujours s'appeler
apsx2 sur votre système.
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
11. make
12. make install
Si vous décidez de changer vos options de configuration après l'installation,
vous aurez juste besoin de répéter les trois dernières étapes. Vous aurez aussi besoin
de redémarrer Apache pour que le nouveau module soit chargé. Une recompilation de
Apache n'est pas nécessaire.
Notez que, à moins de l'avoir explicitement désactivé, 'make install' installera aussi PEAR,
et des outils PHP tels que phpize, installera le CLI PHP, etc.
13. Configurez votre fichier php.ini :
cp php.ini-dist /usr/local/lib/php.ini
Vous pouvez éditer votre fichier .ini pour régler certaines options PHP. Si vous souhaitez
votre php.ini à un autre endroit, utilisez --with-config-file-path=/votre/chemin lors de
l'étape 10.
Si vous utilisez plutôt php.ini-recommended, assurez-vous de lire l'ensemble des changements
qui y sont contenus, car ils modifient le fonctionnement de PHP.
14. Éditez votre httpd.conf afin de charger le module PHP. Le chemin dans la partie droite de la
directive LoadModule doit pointer vers l'endroit où se trouve le module PHP sur votre système.
Le make install lancé plus haut l'y aura certainement déjà déposé pour vous, mais assurez-vous en.
Pour PHP 4 :
LoadModule php4_module modules/libphp4.so
Pour PHP 5:
LoadModule php5_module modules/libphp5.so
15. Dites à Apache de faire analyser certaines extensions par PHP. Par exemple,
faites analyser l'extension .php par PHP. Plutôt que de n'utiliser que la directive Apache AddType,
nous souhaitons éviter des téléversements dangereux ou que des fichiers créés tels que
exploit.php.jpg soient intérprétés par PHP. En suivant cet exemple, vous pouvez ajouter n'importe quelle(s)
extension(s) à parser juste en l'(les)ajoutant à la suite, séparée(s) par un espace.
Nous ajouterons .phtml dans notre exemple.
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Ou, si nous souhaitons permettre uniquement aux fichiers .php, .php2, .php3, .php4, .php5, .php6 et
.phtml d'être interprétés par PHP, et à aucun autre, nous utiliserons :
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
Et pour permettre aux fichiers .phps d'être traités comme du code source PHP colorisé, ajoutez ceci :
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
16. Utilisez votre méthode habituelle pour démarrer le serveur Apache, e.g. :
/usr/local/apache2/bin/apachectl start
- OU -
service httpd restart
Suivez les étapes ci-dessus, et vous disposerez d'un serveur Apache 2.0 avec le support de PHP module comme module SAPI. Bien sur, il y a bien d'autres options de configuration disponibles pour les deux logiciels, Apache et PHP. Pour plus de détails, utilisez la commande ./configure --help dans le dossier de sources approprié. Si vous souhaitez compiler une version multithreadée de Apache 2.0 vous devrez remplacer le module standard MPM prefork avec worker ou perchild. Pour ce faire, ajoutez à la ligne de configuration de l'étape 6, l'option --with-mpm=worker ou --with-mpm=perchild. Avant de procéder, soyez conscient des conséquences, et comprenez bien ce que vous faites. Pour plus de détails sur ce sujet, lisez la documentation Apache sur » le module MPM.
Note: Si vous voulez utiliser la négociation sur le contenu, lisez la section FAQ Apache MultiViews.
Note: Pour compiler une version multithreadée d'Apache, votre système doit supporter les threads. Cela implique aussi de compiler PHP avec le module expérimental de Zend Thread Safety (ZTS). Par conséquent, toutes les extensions ne seront pas disponibles. La configuration recommandée actuellement est celle avec le module standard MPM prefork.
Cette section contient des informations spécifiques sur l'installation de PHP avec Lighttpd 1.4 sur les systèmes Unix.
Reportez-vous à » Lighttpd pour une installation correcte de Lighttpd avant de continuer.
Fastcgi est le SAPI préféré pour connecter PHP et Lighttpd. Fastcgi active automatiquement php-cgi depuis PHP 5.3.0, mais pour les versions antérieures, vous devez configurer PHP avec l'option de compilation --enable-fastcgi. Pour vous assurez de l'activation de fastcgi, le résultat de la commande php -v doit contenir PHP 5.2.5 (cgi-fcgi). Avant PHP 5.2.3, fastcgi était activé dans le binaire PHP (php-cgi n'existait pas).
Pour configurer Lighttpd afin qu'il se connecte à PHP et appel le processus fastcgi, vous devez éditez le fichier lighttpd.conf. Une connexion par sockets est la solution préférée pour les systèmes locaux.
Exemple #1 Portion du fichier lighttpd.conf
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
((
"socket" => "/tmp/php.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"min-procs" => 1,
"max-procs" => 1,
"idle-timeout" => 20
))
)
La directive bin-path permet à lighttpd d'appeler le processus fastcgi dynamiquement. PHP appellera les fils suivant la variable d'environnement PHP_FCGI_CHILDREN. La directive "bin-environment" définit l'environnement pour les processus appelés. PHP terminera un processus fils lorsque le nombre de requêtes spécifié par PHP_FCGI_MAX_REQUESTS a été atteint. Les directives "min-procs" et "max-procs" peuvent généralement être ignorées avec PHP. PHP gère ces propres fils et caches opcode comme APC qui partage uniquement les fils gérés par PHP. Si "min-procs" est définit à quelque chose de supérieur à 1, le nombre total de réponses PHP sera multiplié par PHP_FCGI_CHILDREN (2 min-procs * 16 fils, donne 32 réponses).
Lighttpd fournit un programme appelé spawn-fcgi afin de rendre plus facile les appels des processus fastcgi.
Il est possible d'appeler des processus sans spawn-fcgi, avec un minimum de configuration. La variable d'environnement PHP_FCGI_CHILDREN contrôle le nombre de fils que PHP appelle pour gérer les demandes. La variable d'environnement PHP_FCGI_MAX_REQUESTS détermine la durée de vie, en nombre de requêtes, de chaque fils. Voici un script bash simple qui permet d'aider les appels aux répondeurs PHP.
Exemple #2 Appel des répondeurs FastCGI
#!/bin/sh
# Localisation du binaire php-cgi
PHP=/usr/local/bin/php-cgi
# Localisation du fichier PID
PHP_PID=/tmp/php.pid
# Liaison à une adresse
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Liaison à un socket du domaine
FCGI_BIND_ADDRESS=/tmp/php.sock
PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000
env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
$PHP -b $FCGI_BIND_ADDRESS &
echo $! > "$PHP_PID"
Les instances Fastcgi peuvent être appelées sur plusieurs machines distantes afin de répartir les applications.
Exemple #3 Connexion à des instances distantes de php-fastcgi
fastcgi.server = ( ".php" =>
(( "host" => "10.0.0.2", "port" => 1030 ),
( "host" => "10.0.0.3", "port" => 1030 ))
)
PHP peut être compilé comme module Pike pour » le serveur Web Caudium. Suivez simplement les instructions suivantes pour installer PHP sur un serveur Caudium.
Exemple #1 Instructions d'installation Caudium
1. Assurez-vous que vous avez un serveur Caudium installé avant de tenter
l'installation PHP 4. Pour que PHP 4 fonctionne correctement, vous devez
installer Pike 7.0.268 ou plus récent. Pour cet exemple, nous supposerons
que vous avez installé Caudium dans le dossier /opt/caudium/server/.
2. Renommez le dossier en php-x.y.z (où x.y.z est le numéro de version).
3. ./configure --with-caudium=/opt/caudium/server
4. make
5. make install
6. Redémarrez Caudium s'il était en fonctionnement.
7. Connectez-vous à l'interface de configuration graphique et allez
dans le serveur virtuel auquel vous voulez ajouter le support PHP 4.
8. Cliquez sur "Add Module" et recherchez puis ajoutez le module
"PHP 4 Script Support".
9. Si la documentation dit que 'PHP 4 interpreter isn't
available', assurez-vous que vous avez bien redémarré le serveur.
Si vous l'avez fait, vérifiez le fichier
/opt/caudium/logs/debug/default.1 : il contient peut-être des
erreurs liées à PHP4.so. De même, assurez-vous
que caudium/server/lib/[pike-version]/PHP4.so
est présent.
10. Configurez le module "PHP Script Support" si nécessaire.
Vous pouvez bien sûr compiler votre module Caudium avec les diverses extensions disponibles. Voyez la page de référence pour la liste des options de configuration.
Note: Lorsque vous ajoutez le support MySQL à PHP 4, vous devez vous assurer que le client MySQL normal est utilisé. Sinon, il peut y avoir des conflits avec Pike, qui dispose déjà du support MySQL. Vous pouvez le faire en spécifiant le dossier d'installation de MySQL grâce à l'option --with-mysql.
Pour compiler PHP comme un module fhttpd, répondez "yes" à la question "Build as an fhttpd module?" (cela correspond à l'option de configuration --with-fhttpd=DIR et spécifiez la racine de la distribution fhttpd. Le répertoire par défaut est : /usr/local/src/fhttpd. Si vous utilisez fhttpd, compiler PHP en module vous permettra d'obtenir des performances supérieures, plus de contrôle et la possibilité d'exécution à distance.
Note: Le support de fhttpd n'est plus disponible depuis PHP 4.3.0.
Cette section contient les notes et détails spécifiques à l'installation de PHP sur les serveurs Web Sun Java System Web Server, Sun ONE Web Server, iPlanet et Netscape server sur les systèmes Sun Solaris.
Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec le module NSAPI pour gérer des listes de dossiers et des pages d'erreurs personnalisées. Des fonctions supplémentaires sont disponibles pour assurer la compatibilité avec Apache. Pour du support sur les serverus courants, voyez la note sur les sous-requêtes.
Vous pouvez trouver plus d'informations sur la configuration de PHP avec Netscape Enterprise Server : » http://benoit.noss.free.fr/php/install-php4.html
Pour construire PHP avec les serveurs Web Sun JSWS/Sun ONE WS/iPlanet/Netscape, entrez le répertoire valide d'installation pour l'option --with-nsapi=[DIR]. Le répertoire par défaut est habituellement /opt/netscape/suitespot/. Lisez également le fichier /php-xxx-version/sapi/nsapi/nsapi-readme.txt.
Installez les packages suivants depuis le serveur » http://www.sunfreeware.com/ ou un miroir ad hoc :
export PATH
.
gunzip php-x.x.x.tar.gz
(si vous avez une distribution .gz, ou bien allez en 4).
tar xvf php-x.x.x.tar
cd ../php-x.x.x
Pour les étapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspond bien à votre installation du serveur netscape. Sinon, indiquez le chemin correct :
./configure --with-mysql=/usr/local/mysql \ --with-nsapi=/opt/netscape/suitespot/ \ --enable-libgcc
Après avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires.
Tout d'abord, vous aurez besoin d'ajouter des chemins dans la variable LD_LIBRARY_PATH pour que Netscape trouve son bonheur. Il est préférable de le faire dans le script de démarrage du serveur Netscape. Les utilisateurs Windows peuvent ignorer cette étape. Le script de démarrage est souvent situé dans : /path/to/server/https-servername/start. Vous aurez peut être à éditer le fichier de configuration situé dans /path/to/server/https-servername/config/.
Ajoutez les lignes suivantes dans mime.types en tant qu'administrateur :
type=magnus-internal/x-httpd-php exts=php
Éditez le fichier magnus.conf (pour les serveurs >= 6) ou le fichier obj.conf (pour les serveurs < 6) et ajoutez-y les lignes suivantes. shlib peut varier en fonction de votre OS. Pour Unix, c'est quelque chose comme /opt/netscape/suitespot/bin/libphp4.so. Il est conseillé de placer les lignes suivantes après les lignes de mime types init.
Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so" Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
(PHP >= 4.3.3) Le paramètre php_ini est optionnel mais, avec lui, vous pouvez placer votre php.ini dans le dossier de configuration de votre serveur web.
Configurez l'objet par défaut dans le fichier obj.conf (pour les classes de serveur virtuel [version 6.0+] dans leur fichier vserver.obj.conf) :
<Object name="default"> . . . .#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...] . . </Object>
(PHP >= 4.3.3) Comme paramètres additionnels, vous pouvez ajouter quelques valeurs spéciales dans le php.ini. Par exemple, vous pouvez définir un spécifique docroot="/path/to/docroot" où le contexte php4_execute est appelé. Pour les init-keys booléens, utilisez les valeurs 0/1, et non pas "On","Off",... (cela ne fonctionnera pas correctement), e.g. zlib.output_compression=1 au lieu de zlib.output_compression="On"
Cela est nécessaire uniquement si vous voulez configurer un répertoire pour accueillir des scripts PHP tout comme un répertoire cgi-bin :
<Object name="x-httpd-php"> ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute [inikey=value inikey=value ...] </Object>
Après cela, vous pouvez configurer un répertoire dans le serveur d'administration et y assigner le style x-httpd-php. Tous les fichiers dans ce répertoire seront exécutés comme étant du PHP. C'est pratique pour cacher l'usage de PHP en renommant les fichiers en .html.
Configuration de l'identification : les identifications PHP ne peuvent être utilisées avec aucune autre identification. TOUTES LES IDENTIFICATIONS SONT PASSEES À VOS SCRIPTS PHP. Pour configurer l'identification PHP pour tout le serveur web, ajoutez la ligne suivante à votre objet par défaut :
<Object name="default"> AuthTrans fn=php4_auth_trans . . . </Object>
Pour utiliser l'identification PHP dans un seul répertoire, ajoutez ce qui suit :
<Object ppath="d:\path\to\authenticated\dir\*"> AuthTrans fn=php4_auth_trans </Object>
Note: La taille de la pile que PHP utilise dépend de la configuration du serveur Web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d'augmenter la taille de la pile avec la console d'administration : dans la section "MAGNUS EDITOR".
Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur Web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c'est le contexte sur serveur Web), et que ce contexte est unique, si vous voulez accéder à des variables comme PATH_INFO, HTTP_HOST etc., il n'est pas recommandé d'y accéder à l'ancienne manière de PHP, avec la fonction getenv() ou une autre méthode (register globals, $_ENV). De cette manière, vous n'aurez que des valeurs d'environnement du serveur, et non pas des valeurs correctes pour le CGI.
Note: Pourquoi est-ce que les variables CGI sont invalides ?
C'est lié au fait que le processus du serveur Web est lancé par l'administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C'est pour cela que l'environnement du serveur Web contient des variables d'environnement CGI. Vous pouvez vérifier cela en lançant le serveur Web depuis un autre endroit que l'administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu'il n'y a pas de variables d'environnement.
Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal $_SERVER. Si vous avez d'autres scripts qui utilisent encore $HTTP_HOST et compagnie, il est recommandé d'activer l'option register_globals dans le php.ini et de changer l'ordre des variables. IMPORTANT : supprimez le "E" dans cette option, car vous n'en avez pas besoin pour cet environnement.
variables_order = "GPCS" register_globals = On
Vous pouvez utiliser PHP pour générer des pages d'erreurs de type "404 Not Found" ou apparentée. Ajoutez la ligne suivante dans le fichier obj.conf pour chaque page d'erreur que vous souhaitez remplacer :
Error fn="php4_execute" code=XXX script="/chemin/vers/script.php" [inikey=value inikey=value...]
où XXX est le code d'erreur HTTP. Effacez toute autre directive Error qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre code vide. Votre script peut obtenir le code de statut HTTP dans la variable $_SERVER['ERROR_TYPE'].
Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne Service par défaut par type="magnus-internal/directory" dans obj.conf avec ceci :
Service fn="php4_execute" type="magnus-internal/directory" script="/chemin/vers/script.php" [inikey=value inikey=value...]
Pour ces deux points, l'URI originale et l'URI traduite sont dans les variables $_SERVER['PATH_INFO'] et $_SERVER['PATH_TRANSLATED'].
Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur Web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI. Sous Unix, ce n'est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.
Note: Soyez prévenu : le support de nsapi_virtual() est EXPERIMENTAL !
Par défaut, PHP est compilé en version CGI. Cela crée un interpréteur de commande qui peut être utilisé soit pour le traitement CGI, soit pour les scripts non relatifs au web. Si PHP peut être incorporé au serveur web que vous utilisez en tant que module, de manière générale c'est cette solution que vous devriez adopter pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs sous Apache de lancer des scripts PHP sous leurs UID respectives.
En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.
Avec PHP 4.3.0, d'importants ajouts ont été faits à PHP. une nouvelle SAPI, appelée CLI, existe aussi et porte le même nom que la version CGI. Ce qui est installé en tant que {PREFIX}/bin/php dépend de votre ligne de configuration. Tout ceci est décrit en détails dans la partie du manuel intitulée Utiliser PHP en ligne de commande. Veuillez vous y référer pour de plus amples informations.
Si vous avez compilé PHP comme programme CGI, vous pouvez tester votre produit en tapant : make test. C'est toujours une bonne chose de tester le résultat d'une compilation. Cela vous permet de repérer des problèmes entre PHP et votre plate-forme, plutôt que d'attendre qu'ils surviennent.
Certaines variables d'environnement fournies par les serveurs Web ne sont pas disponibles dans les » spécifications CGI/1.1 actuelles. Seules les variables suivantes sont définies, et les autres doivent être considérées comme spécifiques aux serveurs Web : AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL et SERVER_SOFTWARE.
Cette section contient les notes et conseils d'installation de PHP sur les distributions HP-UX.
Il y a deux façons d'installer PHP sur les systèmes HP-UX. Soit en le compilant, soit en installant des binaires précompilés.
Les paquets pré-compilés officiels sont disponibles ici : » http://software.hp.com/
En attendant que cette section du manuel soit réécrite, la documentation concernant la compilation de PHP (ainsi que les extensions associées) sur les systèmes HP-UX a été effacée. Pour le moment, veuillez-vous référer à cette ressource externe : » Mise en place d'Apache et de PHP sous HP-UX 11.11
Cette section contient les notes spécifiques à l'installation de PHP sous » OpenBSD 3.6.
Cette méthode est la méthode recommandée pour installer PHP sur OpenBSD. C'est aussi la méthode la plus simple. Le paquet core a été séparé des modules et chacun d'entre eux peut être installé et supprimé indépendamment des autres. Les fichiers dont vous avez besoin sont sur le CD OpenBSD ou sur le site FTP.
Le paquet principal que vous devez installer est php4-core-4.3.8.tgz, qui contient le moteur de base, plus gettext et iconv). Puis, jetez un oeil aux paquets de module, comme php4-mysql-4.3.8.tgz ou php4-imap-4.3.8.tgz. Vous devez utiliser la commande phpxs pour activer et désactiver ces modules dans votre php.ini.
Exemple #1 Exemple d'installation de PHP sous OpenBSD avec Ports
# pkg_add php4-core-4.3.8.tgz # /usr/local/sbin/phpxs -s # cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini (add in mysql) # pkg_add php4-mysql-4.3.8.tgz # /usr/local/sbin/phpxs -a mysql (add in imap) # pkg_add php4-imap-4.3.8.tgz # /usr/local/sbin/phpxs -a imap (remove mysql as a test) # pkg_delete php4-mysql-4.3.8 # /usr/local/sbin/phpxs -r mysql (install the PEAR libraries) # pkg_add php4-pear-4.3.8.tgz
Lisez la page de manuel Unix » packages(7) pour plus de détails sur les packages binaires d'OpenBSD.
Vous pouvez aussi compiler PHP en utilisant » l'arbre des ports. Cette méthode est recommandée aux utilisateurs expérimentés de OpenBSD. Le port PHP4 est scindé en deux sous-dossiers : core et extensions. Le dossier extensions génère les sous paquets de tous les modules PHP. Si vous souhaitez ne pas créer ces modules, vous pouvez utiliser la commande en ligne no_* FLAVOR. Par exemple, pour ne pas compiler le module imap, utilisez FLAVOR avec la valeur no_imap.
Les anciennes versions de OpenBSD utilisaient le système des FLAVORS pour compiler statiquement PHP. Comme il est trop difficile de générer des packages binaires avec cette méthode, elle est considérée comme obsolète. Vous pouvez toujours utiliser les anciennes versions stables, mais sachez qu'elles ne sont plus supportées par l'équipe d'OpenBSD. Si vous avez des commentaires sur le sujet, le responsable actuel est Anil Madhavapeddy (avsm_arobase_openbsd_point_org).
Cette section contient les notes et conseils d'installation de PHP sur les distributions Solaris.
L'installation Solaris oublie généralement les compilateurs C, et leurs utilitaires. Lisez cette FAQ pour savoir pourquoi est-ce que les versions GNU de certains de ces outils sont nécessaires. Voici la liste des outils nécessaires :
De plus, vous devrez aussi installer (et peut être aussi compiler) toutes les bibliothèques nécessaires aux extensions comme MySQL, Oracle, etc.
Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants.
Cette section contient des notes et des astuces spécifiques à l'installation de PHP sous » Debian GNU/Linux.
Bien que les instructions pour compiler PHP sous Unix s'appliquent aussi à Debian, cette page de manuel contient des informations spécifiques pour les autres manières d'installer PHP, telles que l'utilisation de apt-get ou aptitude. Cette page de manuel utilise indifféremment l'une ou l'autre.
Tout d'abord, veuillez noter que d'autres paquets peuvent être souhaitables, comme libapache2-mod-php5 pour l'intégration avec Apache 2, et php-pear pour PEAR.
Ensuite, avant d'installer un paquet, il est sage de s'assurer que la liste des paquets est à jour. D'habitude, on le fait en utilisant la commande apt-get update.
Exemple #1 Exemple d'installation sous Debian avec Apache 2
# apt-get install php5-common libapache2-mod-php5 php5-cli
APT installera et activera automatiquement le module PHP 5 pour Apache 2, ainsi que toutes ses dépendances. Apache devra être relancé pour que les changements soient effectifs. Par exemple :
Exemple #2 Stopper et démarrer Apache une fois PHP installé
# /etc/init.d/apache2 stop # /etc/init.d/apache2 start
Dans l'exemple précédent, PHP a été installé avec juste les composants principaux. Il y a fort à parier que des modules supplémentaires soient nécessaires, tels que MySQL, cURL, GD, etc. Ils peuvent aussi être installés via la commande apt-get.
Exemple #3 Méthodes pour lister les paquets PHP 5 supplémentaires
# apt-cache search php5 # aptitude search php5 # aptitude search php5 |grep -i mysql
Ces exemples montreront de nombreux paquets, donc beaucoup spécifiques à PHP, comme php5-cgi, php5-cli et php5-dev. Déterminez ceux qui sont nécessaires et installez les comme n'importe quel autre en utilisant apt-get ou aptitude. Et vu que Debian effectue une vérification des dépendances, on vous avertira de ces dernières, comme pour installer MySQL et cURL :
Exemple #4 Installer PHP avec MySQL et cURL
# apt-get install php5-mysql php5-curl
APT ajoutera automatiquement les bonnes lignes aux fichiers connexes à php.ini, comme /etc/php5/apache2/php.ini, /etc/php5/conf.d/pdo.ini, etc. et selon l'extension, il ajoutera des entrées semblables à extension=foo.so. De plus, redémarrer le serveur web (Apache, par exemple) est nécessaire pour que ces changements soient effectifs.
Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur Web avant de passer à l'installation.
Comme ce que nous avons écrit dans le manuel dans la section Considérations générales sur l'installation, nous traiterons de l'installation de PHP sur des serveurs Web dans cette section, bien que nous couvrirons également la configuration de PHP pour l'utilisation en ligne de commande.
Il y a plusieurs manières d'installer PHP sur des plates-formes Unix : soit avec un processus de compilation/configuration, soit avec des paquets précompilés. Cette documentation est particulièrement focalisée sur le processus de compilation/configuration. Beaucoup de systèmes basés sur Unix ont plusieurs sortes de paquets d'installation pour leur système. Ils permettent de vous assister dans une configuration standard, mais si vous avez besoin d'avoir des fonctionnalités différentes (comme un serveur sécurisé ou un driver différent de bases de données), vous aurez besoin de construire PHP et/ou votre serveur Web. Si vous n'êtes pas familiarisé avec la construction et la compilation de vos propres logiciels, il sera plus simple de vérifier si quelque part, personne n'a déjà construit une version de paquet de PHP avec les fonctionnalités dont vous avez besoin.
Pré-requis :
La configuration initiale de PHP et le processus de configuration sont contrôlés par l'utilisation du fichier configure et de ces options en lignes de commande. Vous pouvez récupérer une liste de toutes les options disponibles accompagnées d'une courte description en exécutant la commande ./configure --help. Notre manuel documente les différentes options séparément. Vous pouvez trouver les options internes en annexe, bien que les différentes options spécifiques à chaque extension sont décrites sur les pages de référence.
Lorsque PHP est configuré, vous êtes prêt à construire le module et/ou l'exécutable. La commande make devrait s'occuper de cela. Si elle échoue et que vous ne savez pas pourquoi, lisez la section Problèmes.
Il existe quelques versions pré-packagées et pré-compilées de PHP pour Mac OS X. Cela peut être utile pour mettre en place une configuration standard, mais si vous avez besoin d'accéder à des fonctionnalités spécifiques (comme un serveur sécurisé, ou un pilote de bases de données exotiques), vous aurez à compiler PHP et/ou votre serveur Web vous-même. Si vous n'êtes pas familier avec la compilation et la mise en place d'applications, il est bon de vérifier si personne d'autre n'a pas déjà réalisé un paquet contenant les fonctionnalités que vous désirez.
Les ressources suivantes offrent la possibilité d'installer des paquets et des binaires précompilés pour PHP sous Mac OS :
PHP est fourni en standard avec Macs depuis OS X version 10.0.0. Activer PHP avec le serveur Web par défaut nécessite de décommenter quelques lignes dans le fichier de configuration d'Apache httpd.conf tandis que le mode CGI et/ou CLI sont activés par défaut (accès simple via le terminal).
L'activation de PHP en suivant ces instructions permet de configurer rapidement un environnement local de développement. Il est vivement recommandé de toujours mettre à jour PHP à sa version la plus récente. Comme la plupart des programmes, les nouvelles versions sont créées pour corriger les bogues et ajouter des fonctionnalités et c'est le cas de PHP. Reportez-vous à la documentation de l'installation de MAC OS X pour plus de détails. Les instructions suivantes sont destinées au débutant, en fournissant juste assez de détails pour mettre en place une configuration par défaut pour travailler. Tous les utilisateurs sont vivement encouragés à compiler et installer une version récente du paquet.
Le type d'installation standard utilise mod_php, et active le mod_php embarqué sur Mac OS X pour le serveur Web Apache (le serveur Web par défaut qui est accessible via les préférences systèmes), en quelques étapes :
Note: Une façon de l'ouvrir est d'utiliser un éditeur de texte Unix dans un terminal, par exemple, nano, et sachant que le fichier est la propriété de l'utilisateur root, vous devrez utiliser la commande sudo pour l'ouvrir (en tant que root) ; aussi, vous devrez entrer la commande suivante dans votre Terminal (votre mot de passe vous sera demandé) : sudo nano /private/etc/apache2/httpd.conf Quelques commandes nano : ^w (recherche), ^o (sauvegarde), et ^x (sortie) où ^ représente la touche Ctrl.
Note: Les versions de Mac OS X antérieures à 10.5 fournissent d'anciennes versions de PHP et d'Apache. Aussi, le fichier de configuration d'Apache sur les machines originales peut être /etc/httpd/httpd.conf.
Avec un éditeur de texte, décommentez les lignes (en effaçant le caractère #) qui ressemblent aux lignes suivantes (ces 2 lignes ne se trouvent pas au même endroit) :
# LoadModule php5_module libexec/httpd/libphp5.so # AddModule mod_php5.c
Assurez-vous que les extensions désirées soient analysées par PHP (exemples : .php .html et .inc)
Sachant que ce comportement a déjà été activé dans votre fichier httpd.conf (depuis Mac Panther), une fois PHP activé, les fichiers .php seront automatiquement analysés par PHP.
<IfModule mod_php5.c>
# If php is turned on, we respect .php and .phps files.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# Since most users will want index.php to work we
# also automatically enable index.php
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
Note: Avant OS X 10.5 (Leopard), PHP 4 était livré par défaut plutôt que PHP 5. Ainsi, les instructions ci-dessus diffèreront juste en changeant 5 en 4. 5's to 4's.
La fonction phpinfo() affiche les informations sur PHP. Créez un fichier dans le DocumentRoot avec le code PHP suivant :
<?php phpinfo(); ?>
CLI (ou CGI dans les anciennes versions) est nommé php et réside normalement dans /usr/bin/php. Ouvrez un terminal, lisez la section sur la ligne de commande du manuel PHP, et exécutez la commande php -v pour vérifier la version PHP de ce binaire. Un appel à la fonction phpinfo() pourra également vous révéler cette information.
Décompressez-les, et utilisez le script configure sur Apache, comme ceci.
./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache
Si vous voulez que le compilateur fasse certaines optimisations, ajoutez cette ligne :
setenv OPTIM=-O2
Puis, allez dans le dossier PHP 4 et configurez PHP.
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/share/man \
--with-xml \
--with-apache=/src/apache_1.3.12
Si vous avez d'autres extensions à ajouter (MySQL, GD, etc.), assurez-vous de placer les bonnes options ici. Pour la chaîne --with-apache, ajoutez le chemin de votre distribution source apache, par exemple, /src/apache_1.3.12.
Maintenant, reconfigurez Apache pour compiler PHP 4.
./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache \ --activate-module=src/modules/php4/libphp4.a
Vous pouvez recevoir un message qui vous dit que libmodphp4.a est trop ancien. Si c'est le cas, allez dans le dossier src/modules/php4 de votre distribution Apache et utilisez cette commande : ranlib libmodphp4.a. Puis retournez à la racine de la distribution Apache et lancez la commande configure ci-dessus. Cela aura mis la table de liens à jour. Lancez à nouveau make et make install.
cp php.ini-development /usr/local/bin/php.ini
ou, si vous n'avez pas de dossier local :
cp php.ini-development /usr/bin/php.ini
.
Les instructions suivantes vous aideront à installer un module PHP pour le serveur web Apache inclus dans MacOS X en utilisant l'interface MacOS. Cette version inclue le support des bases de données MySQL, PostgreSQL, et iODBC, cURL, GD, PDFLib, LDAP, et bien plus. Ces instructions sont fournies par » Marc Liyanage.
Assurez-vous de savoir ce que vous faîtes avant d'aller plus loin ! Vous pouvez rendre votre installation d'Apache instable.
Note: Ces instructions ne fonctionneront qu'avec le serveur Web Apache fourni par Apple. Si vous recompilez ou mettez à jour votre installation d'Apache, vous devrez compiler votre propre module PHP.
Pour l'installer :
http://www2.entropy.ch/download/entropy-php-5.2.4-1.tar.gz
wget
http://www2.entropy.ch/download/entropy-php-5.2.4-1-apache2.tar.gz
C'est tout ! PHP doit maintenant être installé et doit fonctionner. Vous pouvez le tester en plaçant un fichier nommé test.php dans votre dossier Sites de votre répertoire personnel. Dans ce fichier, écrivez cette ligne : <?php phpinfo() ?>.
Maintenant, ouvrez-le en plaçant 127.0.0.1/~your_username/test.php dans votre navigateur Web favori. Vous devriez voir apparaître un tableau contenant les informations sur les modules PHP.
Cette section contient les notes et conseils pour installer PHP sur un système Mac OS X. Il y a deux versions légèrement différentes de Mac OS X, Client et Serveur ; notre manuel vous guidera dans l'installation de PHP sur ces deux versions. Notez que PHP n'est pas disponible pour MacOS 9 et versions précédentes.
L'installeur Windows de PHP disponible depuis les pages de » http://www.php.net/downloads.php, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami. L'installeur n'inclut aucune extension externe supplémentaire de PHP (php_*.dll), vous les trouverez uniquement dans le paquet zippé Windows et dans les téléchargements PECL.
Note: Notez bien que bien que l'installeur soit une méthode simple pour installer PHP, il est limité dans plusieurs aspects : par exemple, la configuration automatique des extensions n'est pas prise en compte. Utiliser l'installateur n'est pas la méthode préférée pour installer PHP.
Tout d'abord, installez votre serveur HTTP favori sur votre système et assurez-vous qu'il fonctionne.
Exécutez l'installeur et suivez les instructions fournies par l'assistant. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement.
L'assistant d'installation rassemble suffisamment d'informations pour configurer php.ini ainsi que certains serveurs web pour utiliser PHP. Un des serveurs web pour lequel l'installeur PHP n'effectue pas de configuration automatique est Apache, vous devez donc le configurer manuellement.
Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement.
Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destiné à l'utilisation sur des serveurs de production.
L'installeur PHP pour Windows pour les versions suivantes de PHP est construit en utilisant la technologie MSI via le kit d'outils Wix (» http://wix.sourceforge.net/). Il installe et configure PHP ainsi que toutes les extensions internes et PECL, mais aussi, configure les serveurs web les plus populaires comme IIS, Apache, et Xitami.
Tout d'abord, installez votre serveur HTTP (web) sur votre système et assurez-vous qu'il fonctionne correctement. Puis, utilisez l'un des types d'installation de PHP suivants.
Exécutez l'installeur MSI et suivez les instructions fournies par l'assistant d'installation. Il vous sera demandé de sélectionner le serveur Web que vous voulez configurer en premier, ainsi que tous les détails de configuration nécessaires.
Ensuite, il vous sera demandé de sélectionner quelles fonctionnalités et extensions vous voulez installer et activer. En sélectionnant "Will be installed on local hard drive" dans le menu pour chaque élément, vous pouvez contrôler l'installation ou non de la fonctionnalité. En sélectionnant "Entire feature will be installed on local hard drive", vous pourrez installer toutes les sous-fonctionnalités de la fonctionnalité principale (par exemple, en sélectionnant la fonctionnalité "PDO", vous installerez également tous les drivers PDO).
Il n'est pas recommandé d'installer toutes les extensions par défaut, sachant que la plupart nécessite des dépendances externes à PHP afin de fonctionner correctement. Préférez l'utilisation du mode de réparation qui est accessible via le panneau de contrôle "Ajout/Suppression de programmes" pour activer ou désactiver les extensions ou fonctionnalités, après l'installation.
L'installeur configurera donc PHP pour l'utiliser sous Windows, le fichier php.ini ainsi que certains serveurs Web. L'installeur configure actuellement IIS, Apache, Xitami et Sambar ; si vous utilisez un serveur web différent de ceux-ci, vous devrez le configurer manuellement.
L'installeur supporte également un mode silencieux, qui est utile pour les administrateurs systèmes pour déployer PHP facilement. Pour utiliser le mode silencieux, entrez la commande suivante :
msiexec.exe /i php-VERSION-win32-install.msi /q
Vous pouvez contrôler le dossier d'installation en le passant comme paramètre à l'installeur. Par exemple, pour installer PHP dans le dossier e:\php :
msiexec.exe /i php-VERSION-win32-install.msi /q INSTALLDIR=e:\php
Vous pouvez également spécifier quelles fonctionnalités devront être installées. Par exemple, pour installer l'extension mysqli et l'exécutable CGI :
msiexec.exe /i php-VERSION-win32-install.msi /q ADDLOCAL=cgi,ext_php_mysqli
Voici la liste courante des fonctionnalités à installer :
MainExecutable - exécutable php.exe ScriptExecutable - exécutable php-win.exe ext_php_* - les diverses extensions ( par exemple : ext_php_mysql for MySQL ) apache13 - module Apache 1.3 apache20 - module Apache 2.0 apache22 - module Apache 2,2 apacheCGI - exécutable Apache CGI iis4ISAPI - module IIS ISAPI iis4CGI - exécutable IIS CGI iis4FastCGI - exécutable IIS CGI NSAPI - module serveur Sun/iPlanet/Netscape netserve - exécutable NetServe Web Server CGI Xitami - exécutable Xitami CGI Sambar - module Sambar Server ISAPI CGI - exécutable php-cgi.exe PEAR - installeur PEAR Manual - manuel PHP au format CHM
Pour plus d'informations sur l'installation via les installeurs MSI depuis la ligne de commande, visitez » http://msdn.microsoft.com/en-us/library/aa367988.aspx
Pour effectuer une mise à jour, exécutez l'installeur soit en mode graphique, soit en ligne de commande. L'installeur lira vos options d'installation, effacera votre ancienne installation et réinstallera PHP avec les mêmes options que précédemment. Il est recommandé d'utiliser cette méthode pour mettre à jour votre installation de PHP plutôt que d'aller remplacer manuellement les fichiers dans le dossier d'installation.
Ce guide d'installation vous aide à installer manuellement et configurer PHP avec un serveur web sous Microsoft Windows. Pour commencer, vous devrez télécharger la distribution binaire Zip sur la page » http://www.php.net/downloads.php.
Bien qu'il existe beaucoup d'installeurs et que nous fournissons également un installeur pour Microsoft Windows, nous vous recommandons de prendre le temps de lire ceci et d'installer PHP vous-même, ce qui est la meilleur façon d'apprendre le système, et vous permettra d'installer des extensions PHP facilement lorsque vous en aurez besoin.
Note: Mise à jour d'une ancienne version de PHP
Les précédentes éditions de ce manuel vous suggéraient de déplacer les fichiers ini et les DLLs dans votre répertoire système (i.e dans le dossier C:\WINDOWS) et, de ce fait, vous aviez des fichiers relatifs à PHP dans de multiples dossiers sur votre disque dur. Nous vous conseillons d'effacer tous ces fichiers (comme php.iniet les bibliothèques DLLs relatives à PHP du dossier système de Windows), avant de commencer l'installation d'une nouvelle version de PHP. Assurez-vous d'avoir effectué des sauvegardes de ces bibliothèques DLLs, sinon, vous risquez de corrompte la totalité de votre système. L'ancien fichier php.ini peut également vous aider à configurer votre nouvelle installation de PHP. Et, comme vous l'apprendrez bientôt, la méthode préférée pour installer PHP est de garder tous les fichiers relatifs à PHP dans un seul dossier et d'avoir le dossier de disponible dans votre variable système PATH.
Note: Pré-requis MDAC
Si vous utilisez Microsoft Windows 9x/NT4, téléchargez la dernière version de Microsoft Data Access Components (MDAC) pour votre plate-forme. MDAC est disponible à » http://msdn.microsoft.com/data/. Cette condition existe car ODBC est compilé dans les binaires distribués pour Windows.
Les étapes suivantes doivent être terminées sur toutes les installations avant d'exécuter une quelconque instruction spécifique au serveur.
Décompressez la distribution dans un dossier de votre choix. Si vous installez PHP 4, extrayez le fichier zippé dans C:\ car il va créer un dossier comme php-4.3.7-Win32. Si vous installez PHP 5, extrayez le fichier zippé dans C:\php car il ne va pas créer de dossier principal, comme en PHP 4. Vous pouvez choisir un autre dossier, mais soyez prudent d'éviter les espaces dans le nom du chemin au dossier (comme C:\Program Files\PHP), sinon, certains serveurs web crasheront.
La structure du dossier que vous avez extrait depuis le fichier zippé est différente pour les versions 4 et 5 de PHP et ressemble à ceci :
Exemple #1 Structure de la distribution Windows de PHP 4
c:\php | +--cli | | | |-php.exe -- Executable CLI - UNIQUEMENT pour la ligne de commande | +--dlls -- DLL de support des extensions --> dossier systeme Windows | | | |-expat.dll | | | |-fdftk.dll | | | |-... | +--extensions -- extensions DLL pour PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--mibs -- fichiers de support de SNMP | +--openssl -- fichiers de support de Openssl | +--pdf-related -- fichiers de support de PDF | +--sapi -- DLL SAPI | | | |-php4apache.dll | | | |-php4apache2.dll | | | |-... | +--PEAR -- copie initiale de PEAR | | |-go-pear.bat -- script de configuration de PEAR | |-... | |-php.exe -- exécutable CGI | |-... | |-php.ini-dist -- paramètres par défaut du php.ini | |-php.ini-recommended -- paramètres recommandés du php.ini | |-php4ts.dll -- DLL principale | |-...
Ou :
Exemple #2 Structure du paquet PHP 5
c:\php | +--dev | | | |-php5ts.lib | +--ext -- extensions DLL pour PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras | | | +--mibs -- fichiers de support de SNMP | | | +--openssl -- fichiers de support de Openssl | | | +--pdf-related -- fichiers de support de PDF | | | |-mime.magic | +--pear -- copie initiale de PEAR | | |-go-pear.bat -- script de configuration de PEAR | |-fdftk.dll | |-... | |-php-cgi.exe -- exécutable CGI | |-php-win.exe -- permet d'exécuter des scripts sans ouvrir un fenêtre de prompt | |-php.exe -- exécutable CLI - UNIQUEMENT pour du script en ligne de commande | |-... | |-php.ini-dist -- paramètres par défaut du php.ini | |-php.ini-recommended -- paramètres recommandés du php.ini | |-php5activescript.dll | |-php5apache.dll | |-php5apache2.dll | |-... | |-php5ts.dll -- DLL principale | |-...
Notez les différences et les similitudes. PHP 4 et PHP 5 ont tous les deux un exécutable CGI, un exéctuable CLI et des modules serveurs, mais ils sont situés dans des dossiers différents et/ou ont des noms différents. En PHP 4, les modules serveurs se trouvent dans le dossier sapi, tandis qu'ils se trouvent dans le dossier principal en PHP 5. Le support des DLLs pour les extensions de PHP sont également dans le dossier principal en PHP 5. Observez l'arborescence pour connaître l'emplacement des exécutables CGI et CLI.
Note: En PHP 4, vous devez déplacer tous les fichiers se trouvant dans les dossiers dll et sapi dans le dossier principal (e.g. C:\php).
Voici une liste de modules serveur avec la correspondance entre PHP 4 et PHP 5.
sapi/php4activescript.dll (php5activescript.dll) - moteur ActiveScript vous permet d'intégrer PHP dans vos applications Windows.
sapi/php4apache.dll (php5apache.dll) - module Apache 1.3.x.
sapi/php4apache2.dll (php5apache2.dll) - module Apache 2.0.x.
sapi/php5apache2_2.dll - module Apache 2.2.x.
sapi/php4isapi.dll (php5isapi.dll) - module ISAPI pour les serveurs ISAPI compliant comme IIS 4.0/PWS 4.0 ou autres.
sapi/php4nsapi.dll (php5nsapi.dll) - module serveur Sun/iPlanet/Netscape.
sapi/php4pi3web.dll (pas d'équivalent en PHP 5) - module serveur Pi3Web.
Les modules serveurs permettent des gains de performances et quelques fonctionnalités supplémentaires par rapport à la version CGI. La version CLI est destinée à être utilisée pour les scripts en ligne de commande. Plus d'informations sur la version CLI est disponible dans le chapitre à propos "utilisez PHP en ligne de commande".
Les modules SAPI ont été significativement améliorés dans la version 4.1, mais vous pourrez rencontrer des erreurs avec le serveur ou d'autres modules (tels ASP), dans les systèmes plus anciens.
Les binaires CGI et CLI et les modules des serveurs web requierent tous la bibliothèque php4ts.dll (php5ts.dll). Vous devez vous assurer que ce fichier peut être trouvé par votre installation de PHP. Le dossier où ce fichier sera recherché suit ces règles :
Le même dossier depuis lequel le fichier php.exe est appelé ou, dans le cas où vous utilisez le module SAPI, le dossier du serveur web (e.g. C:\Program Files\Apache Group\Apache2\bin).
N'importe quel dossier de votre variable d'environnement PATH.
Pour rendre le fichier php4ts.dll / php5ts.dll disponible, vous avez trois options : copiez le fichier dans le dossier système de Windwos, copiez le fichier dans le dossier du serveur web ou ajoutez le dossier PHP, C:\php à votre variable d'environnement PATH. Pour une meilleur maintenance, nous vous conseillons de suivre la dernière option et d'ajoutez le dossier C:\php à votre variable d'environnement PATH, cela rendera plus facile la mise à jour de PHP dans le futur. Lisez l'entrée correspondante de la FAQ pour avoir plus d'informations sur la façon d'ajouter votre dossier PHP à la variable d'environnement PATH (et donc, n'oubliez pas de redémarrer votre ordinateur, une simple fermeture de session ne suffisant pas).
L'étape suivante est de définir une configuration valide pour PHP, php.ini. Il y a deux fichiers ini distribués avec le paquet zip, php.ini-dist et php.ini-recommended. Nous vous recommandons vivement d'utiliser le fichier php.ini-recommended, car nous avons optimisé les options par défaut dans ce fichier pour rendre PHP plus performant, plus sécurisé. Lisez ce document très attentivement car il contient des modifications depuis php.ini-dist qui affectent sérieusement votre configuration. Par exemple, display_errors est à off et magic_quotes_gpc est aussi à off. En complément de cette lecture, étudiez la configuration du fichier ini et définissez chacun des éléments manuellement. Si vous voulez avoir la meilleure sécurité, alors, c'est la seule façon pour vous, bien que PHP fonctionne très bien avec le fichier ini par défaut. Copiez le fichier ini de votre choix dans un dossier où PHP sera capable de le trouver et renommez-le en php.ini. PHP recherche un fichier php.ini dans les endroits décrits dans la section Le fichier de configuration.
Si vous utilisez Apache 2, l'option la plus simple est d'utiliser la directive PHPIniDir (lisez la page traitant de l'installation de PHP avec Apache 2) sinon, la meilleure option est de définir la variable d'environnement PHPRC. Ce processus est expliqué dans cette entrée de la FAQ.
Note: Si vous utilisez NTFS sous Windows NT, 2000, XP ou 2003, assurez-vous que l'utilisateur faisant fonctionner le serveur web a les permissions en lecture sur votre fichier php.ini (e.g. rendez-le lisible pour tout le monde).
Les étapes suivantes sont optionnelles :
Éditez votre nouveau fichier php.ini. Si vous avez prévu d'utiliser OmniHTTPd, ne suivez pas l'étape suivante. Définissez le paramètre doc_root de façon à ce qu'il pointe vers le document_root de votre serveur web. Par exemple :
doc_root = c:\inetpub\wwwroot // pour IIS/PWS doc_root = c:\apache\htdocs // pour Apache
PHP est maintenant installé sur votre système. L'étape suivante consiste à choisir un serveur web et le configurer pour y faire fonctionner PHP. Choisissez en un parmi ceux supportés.
Cette section contient des notes spécifiques à l'installation d'ActiveScript.
ActiveScript est une SAPI uniquement disponible sous Windows qui vous permet d'utiliser des scripts PHP dans l'importe quel hôte respectant ActiveScript comme Windows Scripts Host, ASP/ASP.NET, Windows Script Components ou encore Microsoft Scriptlet control.
Depuis PHP 5.0.1, ActiveScript a été déplacé dans le dépôt » PECL. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.
Note: Vous devriez lire les étapes d'installation du manuel d'abord !
Après avoir installé PHP, vous devez télécharger la bibliothèque ActiveScript (php5activescript.dll) et la placer dans le dossier principal de PHP (e.g. C:\php).
Après avoir récupéré tous les fichiers nécessaires, vous devez enregistrer cette bibliothèque DLL sur votre système. Pour réaliser cela, ouvrez un prompt de commande Windows (qui se trouve dans le menu démarrer). Allez dans votre répertoire PHP en tapant quelque chose comme cd C:\php. Pour enregistrer cette bibliothèque DLL, tapez juste : regsvr32 php5activescript.dll.
Pour tester si ActiveScript fonctionne, créez un nouveau fichier, nommé test.wsf (l'extension est vraiment très importante) et tapez :
<job xml:id="test">
<script language="PHPScript">
$WScript->Echo("Bonjour le monde !");
</script>
</job>
Sauvegardez et double-cliquez sur le fichier. Si vous recevez une petite fenêtre disant "Bonjour le monde !", c'est que cela fonctionne.
Note: En PHP 4, le moteur était appelé 'ActivePHP', donc, si vous utilisez PHP 4, vous devez remplacer 'PHPScript' par 'ActivePHP' dans l'exemple ci-dessus.
Note: ActiveScript n'utilise pas le fichier php.ini par défaut. À la place, il regardera uniquement dans le répertoire où se trouve le .exe qui l'a chargé. Vous devez créer un fichier php-activescript.ini et le placer dans ce dossier si vous voulez charger des extensions, etc.
Cette section contient des notes sur l'installation de PHP avec IIS ( Microsoft Internet Information Server).
En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.
PHP peut être installé en tant que binaire CGI ou en tant que module SAPI. Dans tous les cas, vous devez démarrer la console d'administration Microsoft (qui doit apparaître comme "Internet Services Manager", soit depuis le menu des options Pack de votre Windows NT 4.0 ou le menu 'Control Panel=>Administrative Tools' sous Windows 2000/XP). Faites alors un clic droit sur le noeud du serveur web (ceci doit apparaître comme "Default Web Server"), et sélectionnez "Properties".
Si vous voulez utiliser le binaire CGI, suivez ce qui suit :
Pour utiliser le module SAPI, faites ce qui suit :
Avec IIS 6 (2003 serveur), ouvrez le gestionnaire IIS, allez aux extensions de services web, choisissez "Add a new Web service extension", entrez-y un nom comme PHP, cliquez sur le bouton "Add" et pour la valeur, choisissez soit le fichier ISAPI (php4isapi.dll ou php5isapi.dll), soit le fichier CGI (php.exe ou php-cgi.exe), puis cochez "Set extension status to Allowed" et validez en cliquant sur OK.
Afin d'utiliser index.php en tant que page par défaut, faites ce qui suit : depuis l'onglet "Documents", choisissez "Add". Entrez-y index.php et validez en cliquant sur OK. Ajustez l'ordre en choisissant "Move Up" ou "Move Down". Ceci est similaire à la définition de "DirectoryIndex" sous Apache.
L'étape ci-dessus doit être répétée pour chaque extension qui doit être associée aux scripts PHP. .php est le plus courant, cependant .php3 peut être requis pour certaines applications.
Si vous atteignez 100 % d'utilisation du CPU après quelques minutes, désactivez l'option de configuration Cache ISAPI Application de IIS.
PWS 4 ne supporte pas ISAPI, uniquement PHP CGI doit être utilisé.
La méthode recommandée pour configurer ces serveurs est d'utiliser le fichier INF inclus dans la distribution (pws-php4cgi.reg dans le dossier SAPI pour PHP 4 ou pws-php5cgi.reg dans le dossier principal pour PHP 5). Vous pouvez éditer ce fichier, pour vous assurer que les extensions et les dossiers d'installation de PHP sont bien ceux de votre configuration. Ou alors, vous pouvez suivre les instructions suivantes pour le faire manuellement.
Ces instructions requièrent la manipulation du fichier de registre de Windows. Une erreur peut laisser votre système dans un état instable. Nous vous recommandons vivement de sauvegarder ce fichier en lieu sûr. L'équipe de développement et les traducteurs de cette documentation ne pourront pas être tenus responsable d'un quelconque dommage qui pourrait survenir dans votre registre.
Les étapes suivantes n'affectent pas la configuration du serveur web, et ne s'appliquent que si vous voulez que vos scripts PHP soient exécutés lorsqu'il sont exécutés en ligne de commande (par exemple, run C:\messcripts\test.php) ou en double-cliquant sur l'icône. Vous pouvez ignorer ces étapes si vous préférez que vos scripts PHP s'ouvrent dans un éditeur de texte, plutôt que de les voir s'exécuter lorsque vous double-cliquez dessus.
Les utilisateurs de PWS et IIS 3 sont prêts à utiliser leur serveur. Avec IIS 3, vous pouvez utiliser un » outil bien pratique de Steven Genusa pour configurer votre carte des scripts.