Aller au contenu

Serveur - PHP Principe - Configuration

Info

Pour rappel, il existe plusieurs environnements, et donc plusieurs langages serveur. Le choix ici est l’utilisation de PHP, notamment pour sa simplicité de mise en place et des outils associés.

PHP est un langage interprété coté serveur. Il est extensible grâce à de nombreux modules et son code source est ouvert. Comme il supporte tous les standards du web et qu’il est gratuit, il s’est rapidement répandu sur la toile.

Son objectif principal est la création de pages web dynamiques, c’est à dire des pages web générées à la demande, coté serveur, et notamment en lien avec une base de données. Le code PHP est donc souvent incrusté au HTML (ou utilisé via des moteurs de templates).

PHP peut être orienté objet.

Architecture#

Architecture client/serveur avec PHP et BDD

Génération d’un fichier pour le client#

Les pages web statiques sont au format .html. Les pages web dynamiques sont au format .php. Le code PHP est directement inséré dans le fichier HTML grâce au conteneur de la norme XML : <?php … ?>.

Le code PHP est alors interprété juste avant l'envoi au client.

Contenu d'un fichier PHP

<?php
    echo "Bonjour !";
?>

Pour respecter la structure HTML, ce sera alors souvent :

<!DOCTYPE html>
<html>
    <head>...</head>
    <body>
    <p><?php echo "Bonjour"; ?></p>
    </body>
</html>

La page générée, et donc reçue par le client

<!DOCTYPE html>
<html>
    <head>...</head>
    <body>
        <p>Bonjour</p>
    </body>
</html>

Pour simplement afficher le contenu d’une variable, il est possible d’utiliser la syntaxe simplifiée

<p><?= "Bonjour" ?></p>

// identique à

<p><?php echo "Bonjour" ?></p>

Documentation - Debug#

La documentation officielle de PHP est sur https://www.php.net

Pour débugguer une variable :

  • echo (mais ne fonctionne que pour les types simples)
  • print_r($var) ou var_dump($var) fournissent une représentation structurée

Configuration#

Pour visualiser simplement la config de PHP, utilisez la fonction phpinfo() dans une page.

Pour modifier la config, cela se fait au niveau du fichier php.ini (le chemin est la clé Loaded Configuration File dans le phpinfo) :

  • chargement de modules complémentaires (postgres, PDO, traitement d’images, etc.)
  • affichage des erreurs (debug, production)
  • tailles des fichiers pour upload
  • temps d’exécution maximum d’un script
  • etc.

Modules complémentaires#

Décommentez la ligne de chargement du module souhaité (retirez le ;)

;extension=...
extension=...

Erreurs#

Pour demander au serveur de générer clairement les erreurs (au lieu d’obtenir une page blanche quand ça plante)

display_errors = on

Faites attention à bien modifier la directive, et non pas quelque part dans un commentaire

Taille des fichiers pour upload#

Pour autoriser l’upload de fichier de plus de 2Mo, modifiez directement les 2 directives suivantes :

upload_max_filesize=128M
post_max_size=128M

Utile pour importer une base volumineuse en SQL dans phpMyAdmin par exemple.

PostgreSQL#

Pour se connecter à une base postgres en PHP, il faut d’abord le configurer :

  • dans le fichier php.ini, décommentez les lignes (enlever le point-virgule) chargeant les extensions, notamment extension=php_pgsql.dll
  • dans le fichier httpd.conf (Apache), chargez la librairie dynamique avec LoadFile "C:/MAMP/bin/php/php[version]/libpq.dll" (exemple avec MAMP, vérifiez bien le dossier de votre version de PHP)
  • redémarrez le serveur Apache