Applications Web avec la connexion d'une base de données

Gazette Linux n°50 — février 2000

par Marius Andreiana (Copyright © 2000) exemple email CHEZ exemple POINT com

traduction par El Mehdi Laagad (tous droits réservés) elmehdi POINT laagad CHEZ gmail.com

relecture


Résumé

Presque n'importe quelle société avec une présence sur le Web n'emploie un certain genre de base de données pour soulager le maintien satisfait. Cet article présentera une manière de développer les sites Web soutenus par la base de données utilisant le logiciel libre : Linux, Apache, PostgreSQL, PHP3.

Bien que ceci soit écrit pour un système de Red Hat Linux, plupart (sinon toute) s'applique à d'autres distributions.

Contents

Linux

Nous savons tous à propos de Linux ... Vous pouvez également consulter mon Introduction à Linux

Apache

Apache est le serveur web le plus utilisé sur Internet. Basé à l'origine sur NCSA, il s'est transformé en un système de loin supérieure qui peut rivaliser (et probablement dépasser) presque n'importe quel autre serveur HTTP UNIX en termes de fonctionnalité, l'efficacité et la vitesse. Apache est un effort entièrement volontaire, entièrement financé par son membres, pas par les ventes commerciales.

Your Linux distribution includes Apache. Install it ( if it isn't already installed ) and start the HTTP daemon. C'est une installation très simple, il ne sera pas couvert ici. Testez-le en tapant dans votre navigateur Web: http://localhost/. Vous devriez voir une page qui vous montre que l'installation a réussi.

PostgreSQL

PostgreSQL est un système de gestion de base de données avancée objet-relationnel (SGBD) qui prend en charge la quasi-totalité des constructions SQL (y compris les transactions, les sous-requêtes et types et les fonctions définies par l'utilisateur). Postgres, initialement développé au Département d'informatique de l'Université de Berkeley, pionnier de nombreux concepts d'objet-relationnelles, actuellement disponible dans certains bases de données commerciales. Il fournit un support de language SQL92/SQL3, transaction l'intégrité, et l'extension de type. PostgreSQL est un domaine public, l'open source descendant de ce code Berkeley originale.

La meilleure façon de mettre en place PostgreSQL est de RedHat's 6.1 RPMs.. Installer tout en commençant par postgres.

Je recommande de ne pas stocker vos fichiers de base de données dans l'emplacement par défaut, /var/lib/pgsql/, mais dans /home/postgresdb(Ou quelque part dans /usr/local ). De cette façon, si vous devez réinstaller le système, vous ne perdrez pas les données (vous avez une partition séparée pour /home, n'est-ce pas? ).

Alors, comment faites-vous cela? Après avoir installé le RPM, l'utilisateur postgres est l'administrateur de base de données (non pas root !).Connecté en tant que root, définissez un mot de passe pour postgres :

# passwd postgres

Ensuite, créer le répertoire et changer son propriétaire d'être l'administrateur de PostgreSQL:

# mkdir /home/postgresdb
# chown postgres.postgres /home/postgresdb

L'emplacement des fichiers de base de données est spécifié par variable d'environnement PGDATA. Vous devez le mettre en place, il est donc à la disposition de tous les utilisateurs. Ajouter cela à la fin du fichier /etc/profile :

PGDATA=/home/postgresdb
PGLIB=/usr/lib/pgsql

export PGDATA PGLIB

Pour utiliser la base de données, le maître de poste " postmaster " doit être en cours d'exécution. Vous aurez probablement envie qu'il fonctionne tout le temps, nous allons donc ajouter au démons de démarrage:

# installation

Selectionnez System services, puis assurez-vous que postgresql est marqué part un *.

Bon, encore une chose. Nous devons modifier dans /etc/rc.d/init.d/postgresql (Qui est géré au démarrage) le répertoire de base de données. remplacer tous les apparitions de /var/lib/pgsql par /home/postgresdb

Maintenant, vous êtes prêt à aller. Lancer le service de postgresql:

# /etc/rc.d/init.d/postgresql start

Être la première fois qu'il est exécuté, les fichiers de base de données de base seront créés. puis le maître de poste sera lancé (par défaut, la communication TCP / IP est activé).

Il est temps de tester l'instalation. Créer un utilisateur pguser :

# adduser pguser
# passwd pguser

Connecté en tant que postgres, créer le même utilsateurpour PostgreSQL :

$ create user pguser

Répondez aux questions en ne permettant pas à cet utilisateur de créer des bases de données, ne le laissez pas être un superutilisateur et de créer une base de données pour lui.

Se Connecter en tant que pguser et exécuter psql. Creer une table et inserer quelques lignes:

pguser=> create table friends ( name varchar(30), email varchar(90) );
pguser=> insert into friends values ( 'John', 'john@johnny.com' );
pguser=> insert into friends values ( 'Mary', 'mary@linuxmail.com' );
pguser=> select * from friends;

Vous pouvez le faire à partir de PgAccess (inclus dans Postgres) si vous voulez une interface utilisateur graphique, mais pour l'instant essayez la ligne de commande (Et ne pas oublier le point-virgule à la fin).

Temps d'avancer.

PHP3

PHP est un HTML langage de script côté serveur avec une forte couche d'intégration de base de données. Ecrire une page Web base de données compatible est incroyablement simple. Bases de données compatibles PostgreSQL, MySQL, Oracle, Sybase, Informix.

Encore une fois, la meilleure façon de mettre en place PHP est de RedHat's 6.1 RPMs. Installer php, php-manual, php-pgsql.

Maintenant, nous allons dire à Apache sur PHP. Décommentez les lignes suivantes dans /etc/httpd/conf/httpd.conf

LoadModule php3_module modules/libphp3.so
AddModule mod_php3.c

et /etc/httpd/conf/srm.conf

AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps

Vous pouvez également ajouter à DirectoryIndex index.php3 ( dans srm.conf )

Choisissez un endroit qui tiendra notre travail. Pour commencer, vous pouvez utiliser /home/httpd/html/ (Si c'est votre Document Root définie dans srm.conf ).

Testons avec un simple document nommé test.php3(L'extension est très important) avec une seule ligne: <?php phpinfo() ?>

Accéder à ce fichier à partir de votre navigateur Web à partir de http://localhost/test.php3
Vous devriez voir beaucoup d'informations sur PHP, le serveur ...

Mettre le tout ensemble

Tout est mis, nous allons obtenir des résultats!

Nos amis John et Mary sont toujours là, attendant pour vous. Créez un fichier nommé friends.php3. Ici, il est , avec beaucoup de commentaires.

<?php

//definir des  variables utilisées avec la base de données
//cela va généralement dans un fichier d'inclusion
$PG_HOST= "localhost";
$PG_PORT=5432;
$PG_DATABASE= "pguser";
$PG_USER= "pguser";

$PG_PASS= "";

//nous allons ouvrir la base de donnée
$dbconn=pg_connect(  "dbname=$PG_DATABASE host=$PG_HOST port=$PG_PORT user=$PG_USER password=$PG_PASS" );
if ( ! $dbconn ) {
    echo  "Error connecting to the database !<br> " ;
    printf( "%s", pg_errormessage( $dbconn ) );
    exit();
}

//la poignée de la base de données est $dbconn
//executer une commande sql pour inserer un nouveau record
$sqlcom= "insert into friends values ('Marius', 'marius@marius.com')";

$dbres = pg_exec($dbconn, $sqlcom );
if ( ! $dbres ) {
    echo  "Error : " + pg_errormessage( $dbconn );
    exit();
}

//laissez- moi savoir que j'ai été ajouté a la base de données en m'envoyant un email
mail( "marius@marius.com" "Lucky winner !"
"You've just won a row in our database. Congratulations !" "From : boss@db.com");
//Oui, c'est aussi simple que
//( L'envoie d'un email je veux dire, ce n'est pas si facile de gagner :)

//que devons nous maintenant dans la base de données?

$sqlcom= "select * from friends";

$dbres = pg_exec($dbconn, $sqlcom );
if ( ! $dbres ) {
    echo  "Error : " + pg_errormessage( $dbconn );
    exit();
}

//et interpréter les résultats
$row=0;
$rowmax=pg_NumRows($dbres);

while ($row<$rowmax)
{
    $do = pg_Fetch_Object($dbres, $row);
    
    $s= "<p>$do->name | $do->email\n";
    printf( "%s", $s);
    
    $row++;
}

//fermer la base de données
pg_close( $dbconn );

//C'est tout. Ce n'est pas un tutoriel pour PHP, Je voulais vous montrer comment
//il peut être fait. Comme vous pouvez le, voir il n'est pas difficile du tout
?>

Vous pouvez trouver plus sur le web. Tout cela est open-source, vous vous souvenez? vous aurez facilement trouver son faites par diverses personnes faisant beaucoup de choses et des projets plus open-source (aller chercher votre panier :)

Ressources

Eh bien, c'est tout. Vous êtes maintenant en mesure de commencer à développer des bases de données compatibles aux applications web. Bien sûr, vous devriez en apprendre davantage. Beaucoup plus.



Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site http://www.traduc.org/Gazette_Linux

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.