<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anthony</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anthony"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Anthony"/>
	<updated>2026-04-24T08:35:02Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12513</id>
		<title>Apache PHP MySQL</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12513"/>
		<updated>2006-04-24T22:27:50Z</updated>

		<summary type="html">&lt;p&gt;Anthony : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services Web]]&lt;br /&gt;
= Installation Apache, PHP, MySQL =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Installation Apache, PHP, MySQL&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Jean-Marc LICHTLE&amp;lt;br /&amp;gt; Mise à jour par [mailto:anne@lea-linux.org Anne]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installation d&#039;un serveur Apache/PHP/MySQL en environnement Mandrake &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1 Objectif de ce document ==&lt;br /&gt;
&lt;br /&gt;
L&#039;objet de ce document est de guider les premiers pas d&#039;un utilisateur débutant dans l&#039;utilisation de la trilogie Apache, PHP, MySQL. On suppose que les bases de LINUX sont connues, en particulier que l&#039;utilisateur est familiarisé avec l&#039;arborescence des fichiers, la manipulation d&#039;un logiciel de décompression des paquetages, la notion d&#039;utilisateur, d&#039;administrateur, etc. &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 2 Introduction ==&lt;br /&gt;
&lt;br /&gt;
La configuration de l&#039;ensemble Apache, PHP, MySQL n&#039;était pas spécialement aisée avec les distributions plus anciennes. Un article (très intéressant) de la revue Linux pratique décrit dans le numéro 12 comment s&#039;y prendre pour réaliser cette opération, 9 pages d&#039;instructions, de mises à jour de fichiers .conf etc.. Passionnant (et pénible).&lt;br /&gt;
&lt;br /&gt;
Depuis un certain nombre de versions de Mandrake, il est possible de tout faire fonctionner sans retoucher le moindre fichier de configuration, simplement en installant les &#039;&#039;&#039;rpm&#039;&#039;&#039; ! Et Mandrake 10 ne déroge pas à ce constat.&lt;br /&gt;
&lt;br /&gt;
Rappelons brièvement que:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Apache est un serveur Web (le logiciel qui ``envoie&#039;&#039; des pages html à un navigateur). Il s&#039;agit du serveur le plus utilisé actuellement sur le Web puisqu&#039;il représente environ 2/3 des serveurs installés.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* PHP est un langage de programmation interprété. Correctement interfacé avec Apache il permet au serveur de fournir des pages dynamiques gérées en fonction des besoins du client. En clair, la page n&#039;est plus un document statique mais peut évoluer, afficher des informations différentes selon les souhaits de l&#039;utilisateur.&lt;br /&gt;
* MySQL est un gestionnaire de bases de données assez puissant et rapide. Il peut très bien fonctionner en utilisant son propre client en mode texte sans l&#039;utilisation d&#039;une quelconque interface graphique. L&#039;utilisateur doit alors maîtriser le langage SQL de MySQL (proche de la norme ANSI) et se servir de la ligne de commande pour adresser des requêtes au serveur. Spartiate, on se croirait revenus à la grande époque de DBase sous DOS! (nostalgie).&lt;br /&gt;
&lt;br /&gt;
== 3 Rappel: Utilisation de la commande rpm. ==&lt;br /&gt;
&lt;br /&gt;
ll existe de nombreux utilitaires tels que Kpackage, GnoRPM, Midnight Commander etc. qui permettent d&#039;installer et de gérer les packages au format Red Hat (RPM).&lt;br /&gt;
&lt;br /&gt;
Pour ma part je trouve plus rapide et au moins aussi efficace de travailler en mode ligne de commande en utilisant directement la commande rpm. Voir l&#039;[../software/rpm.php3 article rpm] sur Léa. Encore plus simple, URPMI permet aujourd&#039;hui une gestion complète des dépendances. Je vous laisse le soin de consulter la documentation.&lt;br /&gt;
&lt;br /&gt;
== 4 Installation d&#039;Apache ==&lt;br /&gt;
&lt;br /&gt;
Note prélable : la plupart des distributions proposent aujourd&#039;hui les versions 1.3.x et 2.x de Apache. Si Apache 2.x présente plus d&#039;option pour la configuration avancée du serveur et d&#039;autres caractéristiques liées à sa performance, le groupe de développement PHP n&#039;a toujours pas validé la plate-forme sous cette version. On peut raisonnablement dire que pour un serveur personnel ou ne nécessitant pas de fonctionnalités particulières, Apache 1.3.x fait parfaitement l&#039;affaire. C&#039;est ce que nous utiliserons.&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation d&#039;Apache ne pose pas de problèmes. L&#039;objectif est de disposer en fin d&#039;installation des packages suivants :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-common&amp;lt;/code&amp;gt; : fichiers d&#039;installation pour Apache et apache-mod_perl&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-modules&amp;lt;/code&amp;gt; : ensemble des modules pour Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; : fichiers de configuration de Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; : le démon Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-manuel &amp;lt;/code&amp;gt;(pas obligatoire mais peut se révéler utile).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi apache2&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (1 Mo):&lt;br /&gt;
 apache-conf-2.0.48-2mdk.i586&lt;br /&gt;
 apache2-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-common-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-modules-2.0.48-6mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache-conf            ##################################################&lt;br /&gt;
    2:apache2-modules        ##################################################&lt;br /&gt;
    3:apache2-common         ##################################################&lt;br /&gt;
    4:apache2                ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le package &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; contient en particulier les fichiers de configuration &amp;lt;code&amp;gt;/etc/httpd/conf/httpd.conf&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/httpd/conf/commonhttpd.conf&amp;lt;/code&amp;gt; qui définissent les paramètres de fonctionnement du serveur[#foot94 ][#foot94 ]&amp;lt;sup&amp;gt;[#foot94  Note 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Premier test d&#039;Apache ===&lt;br /&gt;
&lt;br /&gt;
Le fonctionnement d&#039;Apache est matérialisé par la mise en route d&#039;un démon nommé &#039;&#039;&#039;httpd&#039;&#039;&#039;. Pour mettre en route, arrêter, vérifier etc. ce service tapez /etc/rc.d/init/httpd option ou option peut prendre les valeurs start, stop, restart, status ou extendedstatus selon votre besoin. En clair, pour démarrer Apache tapez &amp;lt;code&amp;gt;/etc/rc.d/init.d/httpd start[#foot95 ][#foot95 ]&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[#foot95 ]&amp;lt;br /&amp;gt;Note 2 Sur Mandrake, vous pouvez également utiliser la commande &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;service httpd start&amp;lt;/code&amp;gt; par exemple.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
En principe l&#039;installation d&#039;Apache a modifié les fichiers de configuration du lancement de LINUX. Le démon httpd devrait donc démarrer systématiquement et automatiquement à chaque boot. L&#039;installation a par ailleurs démarré immédiatement ce démon, il n&#039;est donc pas nécessaire de rebooter comme on le ferait avec un autre système d&#039;exploitation très connu avec lequel le moindre changement de mulot passe par un reboot...&lt;br /&gt;
&lt;br /&gt;
Nous pouvons par ailleurs passer immédiatement au test du serveur sans passer par la moindre phase de configuration. Pour cela chargez votre navigateur préféré (pour ma part j&#039;utilise Konqueror). Saisir ``&amp;lt;code&amp;gt;http://localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL. Vous voyez apparaître après quelques instant une page de présentation d&#039;Apache. En fait le serveur Apache vient d&#039;envoyer la page &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt;, affirmation que vous pourrez facilement vérifier en tapant ``&amp;lt;code&amp;gt;file:/var/www/html/index.shtml&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL de votre navigateur. Attention: il n&#039;y a qu&#039;un slash après &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;file:&amp;lt;/code&amp;gt; alors que par habitude vous pourriez être tentés (comme moi!) d&#039;en mettre deux.&lt;br /&gt;
&lt;br /&gt;
La page affichée dans ce cas est bien la même que la première. Les différences d&#039;affichage dans les parties graphiques s&#039;expliquent par le fait que l&#039;affichage a été demandé en direct au lieu de passer par le serveur Apache.&lt;br /&gt;
&lt;br /&gt;
Si vous préférez utiliser Lynx (un navigateur en mode texte ultra rapide puisqu&#039;il ne charge pas les parties graphiques) vous pouvez même vous contenter de taper ``&amp;lt;code&amp;gt;lynx localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039;. Lynx ajoutera automatiquement ce qui manque. Merveilleux de simplicité non ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 5 Installation de PHP ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Mise en place des paquetages rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de PHP doit contenir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;libphp-common432&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;L&#039;installation de ces packages ne devrait pas poser de problème particulier. Sauf erreur ils s&#039;installent automatiquement avec l&#039;option d&#039;installation ``recommandée&#039;&#039; de Mdk. Vérifiez toutefois la présence de &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;rpm -qa | grep php&amp;lt;/code&amp;gt;) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- apache2-mod_php-2.0.48_4.3.4-1mdk.i586&lt;br /&gt;
  2- mod_php-4.3.4-1mdk.i586&lt;br /&gt;
  3- php-cli-4.3.4-4mdk.i586&lt;br /&gt;
  4- php-cgi-4.3.4-4mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-4)1&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache2-mod_php        ##################################################&lt;br /&gt;
 Shutting down httpd2: [  OK  ]&lt;br /&gt;
 Checking configuration sanity for Apache 2.0:  [  OK  ]&lt;br /&gt;
 Starting httpd2: [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;installation des rpm se termine par un redémarrage de Apache afin de prendre en compte le module PHP.&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Premier script PHP ===&lt;br /&gt;
&lt;br /&gt;
Il importe maintenant de réaliser le premier test. Créez un sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; puis créez dans ce sous répertoire un fichier &amp;lt;code&amp;gt;test.php&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;html&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;?&amp;lt;br /&amp;gt; echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;br /&amp;gt; phpinfo();&amp;lt;br /&amp;gt; ?&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;/html&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sauvegardez et chargez dans un navigateur (URL &amp;lt;code&amp;gt;http://localhost/test/test.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Voilà votre première page web dynamique ! Vous avez, en quelques lignes, créé du code html (les balises &amp;lt;html&amp;gt; et &amp;lt;/html&amp;gt;), faite générer du html par PHP (&amp;lt;code&amp;gt;echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;/code&amp;gt;), les &amp;lt;br&amp;gt; sont des retours chariots, et fait appel à l&#039;une des nombreuses fonctions de PHP, phpinfo() qui donne les principales informations sur le configuration actuelle de PHP.&lt;br /&gt;
&lt;br /&gt;
Vous pourrez réaliser d&#039;autres tests, l&#039;aide nécessaire est à votre disposition dans les bouquins, les revues et sur le net.&lt;br /&gt;
&lt;br /&gt;
Lorsque vous aurez constitué un petit groupe de fichiers de test vous pourrez alors faire l&#039;expérience suivante :&lt;br /&gt;
&lt;br /&gt;
* tapez simplement &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt; dans la barre d&#039;URL de votre navigateur, celui-ci affiche la liste des fichiers créés, en fait le contenu du sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt;. Si vous cliquez sur l&#039;un des fichiers vous lancez le serveur Apache qui va interpréter le code PHP contenu dans le fichier choisi.&lt;br /&gt;
* copiez l&#039;un des fichiers (ou renommez le) vers index.php. La même URL que précédemment affiche alors directement les contenu de index.php! Le contenu du sous répertoire n&#039;est plus visible! L&#039;accès aux différents fichiers reste toutefois possible si vous tapez directement leurs noms respectifs.&lt;br /&gt;
* effacez le ficher &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;, l&#039;affichage de la liste des fichiers est à nouveau possible. C&#039;est pratique pour éviter qu&#039;un visteur de passage puisse consulter le contenu d&#039;un sous-répertoire. Bien sûr c&#039;est un simple truc, pas un rideau de fer contre un kracker expérimenté, mal intentionné et patient !&lt;br /&gt;
&lt;br /&gt;
== 6 Installation de MySQL ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de &#039;&#039;&#039;mysql&#039;&#039;&#039; est elle aussi très simple. Les packages suivants sont nécessaires (ils devraient avoir été installés par défaut, en cas de besoin les installer par la suite):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-common&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MySQL-client n&#039;est pas indispensable. Il s&#039;agit en fait de la partie client de l&#039;ensemble client-serveur. Ce client permet toutefois (attention, en mode texte c&#039;est plutôt spartiate !) de faire quelques requêtes au serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&#039;# urpmi mysql&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
  2- MySQL-Max-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-2)1&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (18 Mo):&lt;br /&gt;
 MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-client-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-common-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 libmysql12-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 perl-Mysql-1.22_19-9mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:libmysql12             ##################################################&lt;br /&gt;
    2:MySQL-client           ##################################################&lt;br /&gt;
    3:perl-Mysql             ##################################################&lt;br /&gt;
    4:MySQL-common           ##################################################&lt;br /&gt;
    5:MySQL                  ##################################################&lt;br /&gt;
 040512 12:40:46  /usr/sbin/mysqld: Shutdown Complete&lt;br /&gt;
 # service mysql start&lt;br /&gt;
 Lancement du serveur MySQL                                      [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En principe après l&#039;installation de mysql vous devriez disposer d&#039;un serveur MySQL opérationnel (et en marche). Pour le vérifier tapez &amp;lt;code&amp;gt;ps -ax | grep mysql&amp;lt;/code&amp;gt;. Vous devriez voir s&#039;afficher quelques lignes relatives à autant de serveurs en attente de requêtes. Si tel n&#039;est pas le cas tapez (comme root) &amp;quot;&amp;lt;code&amp;gt;safe_mysql &amp;amp;&amp;lt;/code&amp;gt;&amp;quot; dans une fenètre texte. Cette commande devrait démarrer le serveur MySQL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Attention&amp;lt;/u&amp;gt; : l&#039;installation par défaut utilise root comme super administrateur du serveur et le mot de passe root. Faites donc un essai de fonctionnement du serveur MySQL en utilisant simplement le client MySQL en mode texte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# mysql -p&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Enter password:&amp;lt;br /&amp;gt; Welcome to the MySQL monitor. Commands end with ; or \g.&amp;lt;br /&amp;gt; Your MySQL connection id is 4 to server version: 4.0.18-log&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the buffer.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mysql&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tapez alors quit à l&#039;invite mysql et vous voilà sorti.&lt;br /&gt;
&lt;br /&gt;
Il va falloir faire fonctionner tout ce petit monde ensemble! Apache et PHP sont déjà opérationnels. Ils communiquent ensemble, l&#039;essai a été fait. MySQL est en route également. Pour que PHP puisse entrer en contact avec MySQL il lui faut un minimum de connaissances qui lui sont apportées par le module &#039;&#039;&#039;php-mysql&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php-mysql&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:php-mysql              ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez donc à l&#039;installer lui aussi sinon pas de langue commune! Redémarrez Apache.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Installation du script phpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
Plutôt que de vous lancer dans la rédaction d&#039;un premier script php qui va s&#039;adresser au serveur MySQL (pour lui dire quoi ? Rien n&#039;existe encore, ou si peu !) je vous suggère de récupérer sur le net un ensemble de scripts nommé phpMyAdmin. Il s&#039;agit tout simplement d&#039;un ensemble de scripts PHP qui va vous permettre, via un navigateur, d&#039;administrer vos premières bases de données, de lire les bases de données système MySQL (celles qui définissent les droits des utilisateurs), d&#039;en créer d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi phpmyadmin&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Préparation... ##################################################&amp;lt;br /&amp;gt; 1:phpMyAdmin ##################################################&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Premier test ===&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation faite utilisez votre navigateur préféré et tapez &amp;lt;code&amp;gt;http://localhost/admin/phpMyAdmin/&amp;lt;/code&amp;gt; dans la barre d&#039;URL. Vous devriez voire apparaître une page html &amp;quot;Bienvenue à phpMyAdmin 2.5.4 - Connexion&amp;quot;. Il vous reste à modifier le fichier /var/www/html/admin/phpMyAdmin/config.inc.php et le paramètre &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt; Exemple : &amp;lt;code&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;ma phrase secrete&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rechargez la page de votre navigateur, voilà vous êtes prêts à l&#039;utiliser !&lt;br /&gt;
&lt;br /&gt;
== 7 Synthèse ==&lt;br /&gt;
&lt;br /&gt;
Vous venez de créer deux ensembles de données, les répertoires contenant les pages HTML/PHP, et les répertoires contenant les bases de données MySQL.&lt;br /&gt;
&lt;br /&gt;
* Les pages PHP/HTML sont rangées dans &amp;lt;code&amp;gt;/var/www/html/&amp;lt;/code&amp;gt;. La page d&#039;accueil Apache est à l&#039;adresse &amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt; (rappel !). Le sous-répertoire &amp;lt;code&amp;gt;/var/www/html/admin/phpMyAdmin&amp;lt;/code&amp;gt; contient le script de connexion à MySQL. Vous pourrez créer d&#039;autres sous répertoires contenant vos premiers essais, par exemple &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; qui sera accessible à l&#039;URL &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Les données MySQL sont rangées dans &amp;lt;code&amp;gt;/var/lib/mysql/&amp;lt;/code&amp;gt;. Chaque base de données correspond à un sous-répertoire. Exemple : &amp;lt;code&amp;gt;/var/lib/mysql/mysql/&amp;lt;/code&amp;gt; contient les tables qui définissent les droits d&#039;accès à MySQL. Ce sous-répertoire n&#039;est évidemment accessible que pour l&#039;administrateur système. Si vous créez une nouvelle base de données avec phpMyAdmin ou directement en utilisant le client MySQL, le serveur créera un nouveau sous répertoire /var/lib/mysql/test par exemple si votre nouvelle base s&#039;appelle test.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;La description ci-dessus avait pour but de vous conduire à disposer d&#039;un serveur Apache qui soit opérationnel et qui puisse mettre en oeuvre des bases de données MySQL via PHP. Ce but étant atteint il convient maintenant d&#039;être modeste. Le vrai travail commence juste. Lisez les docs, les man pages. Il existe aussi d&#039;excellents bouquins sur la question. Pour ma part j&#039;étudie actuellement ``Pratique de MySQL et PHP&#039;&#039; édition O&#039;Reilly. Je le trouve très bien fait.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, lisez [[reseau-web-Apache_protec|Protection d&#039;un serveur Apache PHP MySQL]], concernant la sécurisation de l&#039;environnement que l&#039;on vient de créer.&lt;br /&gt;
&lt;br /&gt;
== Remerciement ==&lt;br /&gt;
&lt;br /&gt;
Lors d&#039;une installation il est courant de progresser un peu à tâtons, par essais successifs. Après quelques heures de bagarre (qui peuvent être réparties sur plusieurs jours) il faudrait être un sur-homme pour se souvenir de tout ce qu&#039;on a fait. La mise au point d&#039;un document comme celui-ci ne peut donc se faire qu&#039;après plusieurs installations réussies. Idéalement la bêta-version du document doit elle-même être testée par un autre personne qui suit scrupuleusement la description et commente les erreurs, inversions, oublis etc. Je remercie donc M. Guy ASSFELD d&#039;avoir bien voulu apporter sa contribution à ce travail en déboguant la première version.&lt;br /&gt;
&lt;br /&gt;
== L&#039;auteur ==&lt;br /&gt;
&lt;br /&gt;
JML dit Jean-Marc LICHTLE, email jean-marc.lichtle@gadz.org, ingénieur Arts et Métiers promo CH173 (rigolez pas, à l&#039;époque le hi-tech c&#039;était les cartes perforées sur IBM 1130) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
; ... serveur&amp;lt;sup&amp;gt;[#tex2html1 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;De nombreuses distributions ne se contente plus du seul fichier httpd.conf. La version contenue dans LINUX Mandrake 10.0 utilise un fichier supplémentaire, commonhttpd.conf qui est appelé par httpd.conf par un ``include&#039;&#039;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
; ... start&amp;lt;sup&amp;gt;[#tex2html2 2]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: Je ne précise pas, il va sans dire que certaines commandes ne peuvent être lancées que par l&#039;administrateur système (root). L&#039;appel à httpd fait partie de ces commandes réservées. Donc si LINUX vous fait un bras d&#039;honneur commencez par vous poser la question de votre habilitation à lancer une commande.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Marc LICHTLE le 01/10/2001.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 01/10/2001, Jean-Marc LICHTLE&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Anthony</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12512</id>
		<title>Apache PHP MySQL</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12512"/>
		<updated>2006-04-24T22:17:17Z</updated>

		<summary type="html">&lt;p&gt;Anthony : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services Web]]&lt;br /&gt;
= Installation Apache, PHP, MySQL =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Installation Apache, PHP, MySQL&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Jean-Marc LICHTLE&amp;lt;br /&amp;gt; Mise à jour par [mailto:anne@lea-linux.org Anne]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installation d&#039;un serveur Apache/PHP/MySQL en environnement Mandrake &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1 Objectif de ce document ==&lt;br /&gt;
&lt;br /&gt;
L&#039;objet de ce document est de guider les premiers pas d&#039;un utilisateur débutant dans l&#039;utilisation de la trilogie Apache, PHP, MySQL. On suppose que les bases de LINUX sont connues, en particulier que l&#039;utilisateur est familiarisé avec l&#039;arborescence des fichiers, la manipulation d&#039;un logiciel de décompression des paquetages, la notion d&#039;utilisateur, d&#039;administrateur, etc. &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 2 Introduction ==&lt;br /&gt;
&lt;br /&gt;
La configuration de l&#039;ensemble Apache, PHP, MySQL n&#039;était pas spécialement aisée avec les distributions plus anciennes. Un article (très intéressant) de la revue Linux pratique décrit dans le numéro 12 comment s&#039;y prendre pour réaliser cette opération, 9 pages d&#039;instructions, de mises à jour de fichiers .conf etc.. Passionnant (et pénible).&lt;br /&gt;
&lt;br /&gt;
Depuis un certain nombre de versions de Mandrake, il est possible de tout faire fonctionner sans retoucher le moindre fichier de configuration, simplement en installant les &#039;&#039;&#039;rpm&#039;&#039;&#039; ! Et Mandrake 10 ne déroge pas à ce constat.&lt;br /&gt;
&lt;br /&gt;
Rappelons brièvement que:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Apache est un serveur Web (le logiciel qui ``envoie&#039;&#039; des pages html à un navigateur). Il s&#039;agit du serveur le plus utilisé actuellement sur le Web puisqu&#039;il représente environ 2/3 des serveurs installés.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* PHP est un langage de programmation interprété. Correctement interfacé avec Apache il permet au serveur de fournir des pages dynamiques gérées en fonction des besoins du client. En clair, la page n&#039;est plus un document statique mais peut évoluer, afficher des informations différentes selon les souhaits de l&#039;utilisateur.&lt;br /&gt;
* MySQL est un gestionnaire de bases de données assez puissant et rapide. Il peut très bien fonctionner en utilisant son propre client en mode texte sans l&#039;utilisation d&#039;une quelconque interface graphique. L&#039;utilisateur doit alors maîtriser le langage SQL de MySQL (proche de la norme ANSI) et se servir de la ligne de commande pour adresser des requêtes au serveur. Spartiate, on se croirait revenus à la grande époque de DBase sous DOS! (nostalgie).&lt;br /&gt;
&lt;br /&gt;
== 3 Rappel: Utilisation de la commande rpm. ==&lt;br /&gt;
&lt;br /&gt;
ll existe de nombreux utilitaires tels que Kpackage, GnoRPM, Midnight Commander etc. qui permettent d&#039;installer et de gérer les packages au format Red Hat (RPM).&lt;br /&gt;
&lt;br /&gt;
Pour ma part je trouve plus rapide et au moins aussi efficace de travailler en mode ligne de commande en utilisant directement la commande rpm. Voir l&#039;[../software/rpm.php3 article rpm] sur Léa. Encore plus simple, URPMI permet aujourd&#039;hui une gestion complète des dépendances. Je vous laisse le soin de consulter la documentation.&lt;br /&gt;
&lt;br /&gt;
== 4 Installation d&#039;Apache ==&lt;br /&gt;
&lt;br /&gt;
Note prélable : la plupart des distributions proposent aujourd&#039;hui les versions 1.3.x et 2.x de Apache. Si Apache 2.x présente plus d&#039;option pour la configuration avancée du serveur et d&#039;autres caractéristiques liées à sa performance, le groupe de développement PHP n&#039;a toujours pas validé la plate-forme sous cette version. On peut raisonnablement dire que pour un serveur personnel ou ne nécessitant pas de fonctionnalités particulières, Apache 1.3.x fait parfaitement l&#039;affaire. C&#039;est ce que nous utiliserons.&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation d&#039;Apache ne pose pas de problèmes. L&#039;objectif est de disposer en fin d&#039;installation des packages suivants :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-common&amp;lt;/code&amp;gt; : fichiers d&#039;installation pour Apache et apache-mod_perl&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-modules&amp;lt;/code&amp;gt; : ensemble des modules pour Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; : fichiers de configuration de Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; : le démon Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-manuel &amp;lt;/code&amp;gt;(pas obligatoire mais peut se révéler utile).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi apache2&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (1 Mo):&lt;br /&gt;
 apache-conf-2.0.48-2mdk.i586&lt;br /&gt;
 apache2-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-common-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-modules-2.0.48-6mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache-conf            ##################################################&lt;br /&gt;
    2:apache2-modules        ##################################################&lt;br /&gt;
    3:apache2-common         ##################################################&lt;br /&gt;
    4:apache2                ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le package &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; contient en particulier les fichiers de configuration &amp;lt;code&amp;gt;/etc/httpd/conf/httpd.conf&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/httpd/conf/commonhttpd.conf&amp;lt;/code&amp;gt; qui définissent les paramètres de fonctionnement du serveur[#foot94 ][#foot94 ]&amp;lt;sup&amp;gt;[#foot94  Note 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Premier test d&#039;Apache ===&lt;br /&gt;
&lt;br /&gt;
Le fonctionnement d&#039;Apache est matérialisé par la mise en route d&#039;un démon nommé &#039;&#039;&#039;httpd&#039;&#039;&#039;. Pour mettre en route, arrêter, vérifier etc. ce service tapez /etc/rc.d/init/httpd option ou option peut prendre les valeurs start, stop, restart, status ou extendedstatus selon votre besoin. En clair, pour démarrer Apache tapez &amp;lt;code&amp;gt;/etc/rc.d/init.d/httpd start[#foot95 ][#foot95 ]&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[#foot95 ]&amp;lt;br /&amp;gt;Note 2 Sur Mandrake, vous pouvez également utiliser la commande &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;service httpd start&amp;lt;/code&amp;gt; par exemple.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
En principe l&#039;installation d&#039;Apache a modifié les fichiers de configuration du lancement de LINUX. Le démon httpd devrait donc démarrer systématiquement et automatiquement à chaque boot. L&#039;installation a par ailleurs démarré immédiatement ce démon, il n&#039;est donc pas nécessaire de rebooter comme on le ferait avec un autre système d&#039;exploitation très connu avec lequel le moindre changement de mulot passe par un reboot...&lt;br /&gt;
&lt;br /&gt;
Nous pouvons par ailleurs passer immédiatement au test du serveur sans passer par la moindre phase de configuration. Pour cela chargez votre navigateur préféré (pour ma part j&#039;utilise Konqueror). Saisir ``&amp;lt;code&amp;gt;http://localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL. Vous voyez apparaître après quelques instant une page de présentation d&#039;Apache. En fait le serveur Apache vient d&#039;envoyer la page &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt;, affirmation que vous pourrez facilement vérifier en tapant ``&amp;lt;code&amp;gt;file:/var/www/html/index.shtml&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL de votre navigateur. Attention: il n&#039;y a qu&#039;un slash après &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;file:&amp;lt;/code&amp;gt; alors que par habitude vous pourriez être tentés (comme moi!) d&#039;en mettre deux.&lt;br /&gt;
&lt;br /&gt;
La page affichée dans ce cas est bien la même que la première. Les différences d&#039;affichage dans les parties graphiques s&#039;expliquent par le fait que l&#039;affichage a été demandé en direct au lieu de passer par le serveur Apache.&lt;br /&gt;
&lt;br /&gt;
Si vous préférez utiliser Lynx (un navigateur en mode texte ultra rapide puisqu&#039;il ne charge pas les parties graphiques) vous pouvez même vous contenter de taper ``&amp;lt;code&amp;gt;lynx localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039;. Lynx ajoutera automatiquement ce qui manque. Merveilleux de simplicité non ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 5 Installation de PHP ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Mise en place des paquetages rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de PHP doit contenir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;libphp-common432&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;L&#039;installation de ces packages ne devrait pas poser de problème particulier. Sauf erreur ils s&#039;installent automatiquement avec l&#039;option d&#039;installation ``recommandée&#039;&#039; de Mdk. Vérifiez toutefois la présence de &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;rpm -qa | grep php&amp;lt;/code&amp;gt;) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- apache2-mod_php-2.0.48_4.3.4-1mdk.i586&lt;br /&gt;
  2- mod_php-4.3.4-1mdk.i586&lt;br /&gt;
  3- php-cli-4.3.4-4mdk.i586&lt;br /&gt;
  4- php-cgi-4.3.4-4mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-4)1&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache2-mod_php        ##################################################&lt;br /&gt;
 Shutting down httpd2: [  OK  ]&lt;br /&gt;
 Checking configuration sanity for Apache 2.0:  [  OK  ]&lt;br /&gt;
 Starting httpd2: [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;installation des rpm se termine par un redémarrage de Apache afin de prendre en compte le module PHP.&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Premier script PHP ===&lt;br /&gt;
&lt;br /&gt;
Il importe maintenant de réaliser le premier test. Créez un sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; puis créez dans ce sous répertoire un fichier &amp;lt;code&amp;gt;test.php&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;html&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;?&amp;lt;br /&amp;gt; echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;br /&amp;gt; phpinfo();&amp;lt;br /&amp;gt; ?&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;/html&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sauvegardez et chargez dans un navigateur (URL &amp;lt;code&amp;gt;http://localhost/test/test.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Voilà votre première page web dynamique ! Vous avez, en quelques lignes, créé du code html (les balises &amp;lt;html&amp;gt; et &amp;lt;/html&amp;gt;), faite générer du html par PHP (&amp;lt;code&amp;gt;echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;/code&amp;gt;), les &amp;lt;br&amp;gt; sont des retours chariots, et fait appel à l&#039;une des nombreuses fonctions de PHP, phpinfo() qui donne les principales informations sur le configuration actuelle de PHP.&lt;br /&gt;
&lt;br /&gt;
Vous pourrez réaliser d&#039;autres tests, l&#039;aide nécessaire est à votre disposition dans les bouquins, les revues et sur le net.&lt;br /&gt;
&lt;br /&gt;
Lorsque vous aurez constitué un petit groupe de fichiers de test vous pourrez alors faire l&#039;expérience suivante :&lt;br /&gt;
&lt;br /&gt;
* tapez simplement &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt; dans la barre d&#039;URL de votre navigateur, celui-ci affiche la liste des fichiers créés, en fait le contenu du sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt;. Si vous cliquez sur l&#039;un des fichiers vous lancez le serveur Apache qui va interpréter le code PHP contenu dans le fichier choisi.&lt;br /&gt;
* copiez l&#039;un des fichiers (ou renommez le) vers index.php. La même URL que précédemment affiche alors directement les contenu de index.php! Le contenu du sous répertoire n&#039;est plus visible! L&#039;accès aux différents fichiers reste toutefois possible si vous tapez directement leurs noms respectifs.&lt;br /&gt;
* effacez le ficher &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;, l&#039;affichage de la liste des fichiers est à nouveau possible. C&#039;est pratique pour éviter qu&#039;un visteur de passage puisse consulter le contenu d&#039;un sous-répertoire. Bien sûr c&#039;est un simple truc, pas un rideau de fer contre un kracker expérimenté, mal intentionné et patient !&lt;br /&gt;
&lt;br /&gt;
== 6 Installation de MySQL ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de &#039;&#039;&#039;mysql&#039;&#039;&#039; est elle aussi très simple. Les packages suivants sont nécessaires (ils devraient avoir été installés par défaut, en cas de besoin les installer par la suite):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-common&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MySQL-client n&#039;est pas indispensable. Il s&#039;agit en fait de la partie client de l&#039;ensemble client-serveur. Ce client permet toutefois (attention, en mode texte c&#039;est plutôt spartiate !) de faire quelques requêtes au serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&#039;# urpmi mysql&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
  2- MySQL-Max-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-2)1&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (18 Mo):&lt;br /&gt;
 MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-client-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-common-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 libmysql12-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 perl-Mysql-1.22_19-9mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:libmysql12             ##################################################&lt;br /&gt;
    2:MySQL-client           ##################################################&lt;br /&gt;
    3:perl-Mysql             ##################################################&lt;br /&gt;
    4:MySQL-common           ##################################################&lt;br /&gt;
    5:MySQL                  ##################################################&lt;br /&gt;
 040512 12:40:46  /usr/sbin/mysqld: Shutdown Complete&lt;br /&gt;
 # service mysql start&lt;br /&gt;
 Lancement du serveur MySQL                                      [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En principe après l&#039;installation de mysql vous devriez disposer d&#039;un serveur MySQL opérationnel (et en marche). Pour le vérifier tapez &amp;lt;code&amp;gt;ps -ax | grep mysql&amp;lt;/code&amp;gt;. Vous devriez voir s&#039;afficher quelques lignes relatives à autant de serveurs en attente de requêtes. Si tel n&#039;est pas le cas tapez (comme root) &amp;quot;&amp;lt;code&amp;gt;safe_mysql &amp;amp;&amp;lt;/code&amp;gt;&amp;quot; dans une fenètre texte. Cette commande devrait démarrer le serveur MySQL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Attention&amp;lt;/u&amp;gt; : l&#039;installation par défaut utilise root comme super administrateur du serveur et le mot de passe root. Faites donc un essai de fonctionnement du serveur MySQL en utilisant simplement le client MySQL en mode texte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# mysql -p&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Enter password:&amp;lt;br /&amp;gt; Welcome to the MySQL monitor. Commands end with ; or \g.&amp;lt;br /&amp;gt; Your MySQL connection id is 4 to server version: 4.0.18-log&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the buffer.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mysql&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tapez alors quit à l&#039;invite mysql et vous voilà sorti.&lt;br /&gt;
&lt;br /&gt;
Il va falloir faire fonctionner tout ce petit monde ensemble! Apache et PHP sont déjà opérationnels. Ils communiquent ensemble, l&#039;essai a été fait. MySQL est en route également. Pour que PHP puisse entrer en contact avec MySQL il lui faut un minimum de connaissances qui lui sont apportées par le module &#039;&#039;&#039;php-mysql&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php-mysql&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:php-mysql              ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez donc à l&#039;installer lui aussi sinon pas de langue commune! Redémarrez Apache.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Installation du script phpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
Plutôt que de vous lancer dans la rédaction d&#039;un premier script php qui va s&#039;adresser au serveur MySQL (pour lui dire quoi ? Rien n&#039;existe encore, ou si peu !) je vous suggère de récupérer sur le net un ensemble de scripts nommé phpMyAdmin. Il s&#039;agit tout simplement d&#039;un ensemble de scripts PHP qui va vous permettre, via un navigateur, d&#039;administrer vos premières bases de données, de lire les bases de données système MySQL (celles qui définissent les droits des utilisateurs), d&#039;en créer d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi phpmyadmin&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Préparation... ##################################################&amp;lt;br /&amp;gt; 1:phpMyAdmin ##################################################&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Premier test ===&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation faite utilisez votre navigateur préféré et tapez &amp;lt;code&amp;gt;http://localhost/admin/phpMyAdmin/&amp;lt;/code&amp;gt; dans la barre d&#039;URL. Vous devriez voire apparaître une page html &amp;quot;Bienvenue à phpMyAdmin 2.5.4 - Connexion&amp;quot;. Il vous reste à modifier le fichier /var/www/html/admin/phpMyAdmin/config.inc.php et le paramètre &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt; Exemple : &amp;lt;code&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;ma phrase secrete&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rechargez la page de votre navigateur, voilà vous êtes prêts à l&#039;utiliser !&lt;br /&gt;
&lt;br /&gt;
== 7 Synthèse ==&lt;br /&gt;
&lt;br /&gt;
Vous venez de créer deux ensembles de données, les répertoires contenant les pages HTML/PHP, et les répertoires contenant les bases de données MySQL.&lt;br /&gt;
&lt;br /&gt;
* Les pages PHP/HTML sont rangées dans &amp;lt;code&amp;gt;/var/www/html/&amp;lt;/code&amp;gt;. La page d&#039;accueil Apache est à l&#039;adresse &amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt; (rappel !). Le sous-répertoire &amp;lt;code&amp;gt;/var/www/html/admin/phpMyAdmin&amp;lt;/code&amp;gt; contient le script de connexion à MySQL. Vous pourrez créer d&#039;autres sous répertoires contenant vos premiers essais, par exemple &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; qui sera accessible à l&#039;URL &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Les données MySQL sont rangées dans &amp;lt;code&amp;gt;/var/lib/mysql/&amp;lt;/code&amp;gt;. Chaque base de données correspond à un sous-répertoire. Exemple : &amp;lt;code&amp;gt;/var/lib/mysql/mysql/&amp;lt;/code&amp;gt; contient les tables qui définissent les droits d&#039;accès à MySQL. Ce sous-répertoire n&#039;est évidemment accessible que pour l&#039;administrateur système. Si vous créez une nouvelle base de données avec phpMyAdmin ou directement en utilisant le client MySQL, le serveur créera un nouveau sous répertoire /var/lib/mysql/test par exemple si votre nouvelle base s&#039;appelle test.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;La description ci-dessus avait pour but de vous conduire à disposer d&#039;un serveur Apache qui soit opérationnel et qui puisse mettre en oeuvre des bases de données MySQL via PHP. Ce but étant atteint il convient maintenant d&#039;être modeste. Le vrai travail commence juste. Lisez les docs, les man pages. Il existe aussi d&#039;excellents bouquins sur la question. Pour ma part j&#039;étudie actuellement ``Pratique de MySQL et PHP&#039;&#039; édition O&#039;Reilly. Je le trouve très bien fait.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, lisez [[Reseau-web-Apache_protec|Protection d&#039;un serveur Apache PHP MySQL]], concernant la sécurisation de l&#039;environnement que l&#039;on vient de créer.&lt;br /&gt;
&lt;br /&gt;
== Remerciement ==&lt;br /&gt;
&lt;br /&gt;
Lors d&#039;une installation il est courant de progresser un peu à tâtons, par essais successifs. Après quelques heures de bagarre (qui peuvent être réparties sur plusieurs jours) il faudrait être un sur-homme pour se souvenir de tout ce qu&#039;on a fait. La mise au point d&#039;un document comme celui-ci ne peut donc se faire qu&#039;après plusieurs installations réussies. Idéalement la bêta-version du document doit elle-même être testée par un autre personne qui suit scrupuleusement la description et commente les erreurs, inversions, oublis etc. Je remercie donc M. Guy ASSFELD d&#039;avoir bien voulu apporter sa contribution à ce travail en déboguant la première version.&lt;br /&gt;
&lt;br /&gt;
== L&#039;auteur ==&lt;br /&gt;
&lt;br /&gt;
JML dit Jean-Marc LICHTLE, email jean-marc.lichtle@gadz.org, ingénieur Arts et Métiers promo CH173 (rigolez pas, à l&#039;époque le hi-tech c&#039;était les cartes perforées sur IBM 1130) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
; ... serveur&amp;lt;sup&amp;gt;[#tex2html1 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;De nombreuses distributions ne se contente plus du seul fichier httpd.conf. La version contenue dans LINUX Mandrake 10.0 utilise un fichier supplémentaire, commonhttpd.conf qui est appelé par httpd.conf par un ``include&#039;&#039;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
; ... start&amp;lt;sup&amp;gt;[#tex2html2 2]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: Je ne précise pas, il va sans dire que certaines commandes ne peuvent être lancées que par l&#039;administrateur système (root). L&#039;appel à httpd fait partie de ces commandes réservées. Donc si LINUX vous fait un bras d&#039;honneur commencez par vous poser la question de votre habilitation à lancer une commande.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Marc LICHTLE le 01/10/2001.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 01/10/2001, Jean-Marc LICHTLE&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Anthony</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12511</id>
		<title>Apache PHP MySQL</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Apache_PHP_MySQL&amp;diff=12511"/>
		<updated>2006-04-24T22:13:57Z</updated>

		<summary type="html">&lt;p&gt;Anthony : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services Web]]&lt;br /&gt;
= Installation Apache, PHP, MySQL =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Installation Apache, PHP, MySQL&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Jean-Marc LICHTLE&amp;lt;br /&amp;gt; Mise à jour par [mailto:anne@lea-linux.org Anne]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installation d&#039;un serveur Apache/PHP/MySQL en environnement Mandrake &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1 Objectif de ce document ==&lt;br /&gt;
&lt;br /&gt;
L&#039;objet de ce document est de guider les premiers pas d&#039;un utilisateur débutant dans l&#039;utilisation de la trilogie Apache, PHP, MySQL. On suppose que les bases de LINUX sont connues, en particulier que l&#039;utilisateur est familiarisé avec l&#039;arborescence des fichiers, la manipulation d&#039;un logiciel de décompression des paquetages, la notion d&#039;utilisateur, d&#039;administrateur, etc. &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 2 Introduction ==&lt;br /&gt;
&lt;br /&gt;
La configuration de l&#039;ensemble Apache, PHP, MySQL n&#039;était pas spécialement aisée avec les distributions plus anciennes. Un article (très intéressant) de la revue Linux pratique décrit dans le numéro 12 comment s&#039;y prendre pour réaliser cette opération, 9 pages d&#039;instructions, de mises à jour de fichiers .conf etc.. Passionnant (et pénible).&lt;br /&gt;
&lt;br /&gt;
Depuis un certain nombre de versions de Mandrake, il est possible de tout faire fonctionner sans retoucher le moindre fichier de configuration, simplement en installant les &#039;&#039;&#039;rpm&#039;&#039;&#039; ! Et Mandrake 10 ne déroge pas à ce constat.&lt;br /&gt;
&lt;br /&gt;
Rappelons brièvement que:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Apache est un serveur Web (le logiciel qui ``envoie&#039;&#039; des pages html à un navigateur). Il s&#039;agit du serveur le plus utilisé actuellement sur le Web puisqu&#039;il représente environ 2/3 des serveurs installés.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* PHP est un langage de programmation interprété. Correctement interfacé avec Apache il permet au serveur de fournir des pages dynamiques gérées en fonction des besoins du client. En clair, la page n&#039;est plus un document statique mais peut évoluer, afficher des informations différentes selon les souhaits de l&#039;utilisateur.&lt;br /&gt;
* MySQL est un gestionnaire de bases de données assez puissant et rapide. Il peut très bien fonctionner en utilisant son propre client en mode texte sans l&#039;utilisation d&#039;une quelconque interface graphique. L&#039;utilisateur doit alors maîtriser le langage SQL de MySQL (proche de la norme ANSI) et se servir de la ligne de commande pour adresser des requêtes au serveur. Spartiate, on se croirait revenus à la grande époque de DBase sous DOS! (nostalgie).&lt;br /&gt;
&lt;br /&gt;
== 3 Rappel: Utilisation de la commande rpm. ==&lt;br /&gt;
&lt;br /&gt;
ll existe de nombreux utilitaires tels que Kpackage, GnoRPM, Midnight Commander etc. qui permettent d&#039;installer et de gérer les packages au format Red Hat (RPM).&lt;br /&gt;
&lt;br /&gt;
Pour ma part je trouve plus rapide et au moins aussi efficace de travailler en mode ligne de commande en utilisant directement la commande rpm. Voir l&#039;[../software/rpm.php3 article rpm] sur Léa. Encore plus simple, URPMI permet aujourd&#039;hui une gestion complète des dépendances. Je vous laisse le soin de consulter la documentation.&lt;br /&gt;
&lt;br /&gt;
== 4 Installation d&#039;Apache ==&lt;br /&gt;
&lt;br /&gt;
Note prélable : la plupart des distributions proposent aujourd&#039;hui les versions 1.3.x et 2.x de Apache. Si Apache 2.x présente plus d&#039;option pour la configuration avancée du serveur et d&#039;autres caractéristiques liées à sa performance, le groupe de développement PHP n&#039;a toujours pas validé la plate-forme sous cette version. On peut raisonnablement dire que pour un serveur personnel ou ne nécessitant pas de fonctionnalités particulières, Apache 1.3.x fait parfaitement l&#039;affaire. C&#039;est ce que nous utiliserons.&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation d&#039;Apache ne pose pas de problèmes. L&#039;objectif est de disposer en fin d&#039;installation des packages suivants :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-common&amp;lt;/code&amp;gt; : fichiers d&#039;installation pour Apache et apache-mod_perl&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2-modules&amp;lt;/code&amp;gt; : ensemble des modules pour Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; : fichiers de configuration de Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; : le démon Apache&lt;br /&gt;
* &amp;lt;code&amp;gt;apache-manuel &amp;lt;/code&amp;gt;(pas obligatoire mais peut se révéler utile).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi apache2&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (1 Mo):&lt;br /&gt;
 apache-conf-2.0.48-2mdk.i586&lt;br /&gt;
 apache2-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-common-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-modules-2.0.48-6mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache-conf            ##################################################&lt;br /&gt;
    2:apache2-modules        ##################################################&lt;br /&gt;
    3:apache2-common         ##################################################&lt;br /&gt;
    4:apache2                ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le package &amp;lt;code&amp;gt;apache-conf&amp;lt;/code&amp;gt; contient en particulier les fichiers de configuration &amp;lt;code&amp;gt;/etc/httpd/conf/httpd.conf&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/httpd/conf/commonhttpd.conf&amp;lt;/code&amp;gt; qui définissent les paramètres de fonctionnement du serveur[#foot94 ][#foot94 ]&amp;lt;sup&amp;gt;[#foot94  Note 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Premier test d&#039;Apache ===&lt;br /&gt;
&lt;br /&gt;
Le fonctionnement d&#039;Apache est matérialisé par la mise en route d&#039;un démon nommé &#039;&#039;&#039;httpd&#039;&#039;&#039;. Pour mettre en route, arrêter, vérifier etc. ce service tapez /etc/rc.d/init/httpd option ou option peut prendre les valeurs start, stop, restart, status ou extendedstatus selon votre besoin. En clair, pour démarrer Apache tapez &amp;lt;code&amp;gt;/etc/rc.d/init.d/httpd start[#foot95 ][#foot95 ]&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[#foot95 ]&amp;lt;br /&amp;gt;Note 2 Sur Mandrake, vous pouvez également utiliser la commande &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;service httpd start&amp;lt;/code&amp;gt; par exemple.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
En principe l&#039;installation d&#039;Apache a modifié les fichiers de configuration du lancement de LINUX. Le démon httpd devrait donc démarrer systématiquement et automatiquement à chaque boot. L&#039;installation a par ailleurs démarré immédiatement ce démon, il n&#039;est donc pas nécessaire de rebooter comme on le ferait avec un autre système d&#039;exploitation très connu avec lequel le moindre changement de mulot passe par un reboot...&lt;br /&gt;
&lt;br /&gt;
Nous pouvons par ailleurs passer immédiatement au test du serveur sans passer par la moindre phase de configuration. Pour cela chargez votre navigateur préféré (pour ma part j&#039;utilise Konqueror). Saisir ``&amp;lt;code&amp;gt;http://localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL. Vous voyez apparaître après quelques instant une page de présentation d&#039;Apache. En fait le serveur Apache vient d&#039;envoyer la page &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt;, affirmation que vous pourrez facilement vérifier en tapant ``&amp;lt;code&amp;gt;file:/var/www/html/index.shtml&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039; dans la barre d&#039;URL de votre navigateur. Attention: il n&#039;y a qu&#039;un slash après &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;file:&amp;lt;/code&amp;gt; alors que par habitude vous pourriez être tentés (comme moi!) d&#039;en mettre deux.&lt;br /&gt;
&lt;br /&gt;
La page affichée dans ce cas est bien la même que la première. Les différences d&#039;affichage dans les parties graphiques s&#039;expliquent par le fait que l&#039;affichage a été demandé en direct au lieu de passer par le serveur Apache.&lt;br /&gt;
&lt;br /&gt;
Si vous préférez utiliser Lynx (un navigateur en mode texte ultra rapide puisqu&#039;il ne charge pas les parties graphiques) vous pouvez même vous contenter de taper ``&amp;lt;code&amp;gt;lynx localhost&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039;. Lynx ajoutera automatiquement ce qui manque. Merveilleux de simplicité non ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== 5 Installation de PHP ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Mise en place des paquetages rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de PHP doit contenir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;libphp-common432&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;L&#039;installation de ces packages ne devrait pas poser de problème particulier. Sauf erreur ils s&#039;installent automatiquement avec l&#039;option d&#039;installation ``recommandée&#039;&#039; de Mdk. Vérifiez toutefois la présence de &amp;lt;/nowiki&amp;gt;&amp;lt;code&amp;gt;mod_php&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;rpm -qa | grep php&amp;lt;/code&amp;gt;) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- apache2-mod_php-2.0.48_4.3.4-1mdk.i586&lt;br /&gt;
  2- mod_php-4.3.4-1mdk.i586&lt;br /&gt;
  3- php-cli-4.3.4-4mdk.i586&lt;br /&gt;
  4- php-cgi-4.3.4-4mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-4)1&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache2-mod_php        ##################################################&lt;br /&gt;
 Shutting down httpd2: [  OK  ]&lt;br /&gt;
 Checking configuration sanity for Apache 2.0:  [  OK  ]&lt;br /&gt;
 Starting httpd2: [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;installation des rpm se termine par un redémarrage de Apache afin de prendre en compte le module PHP.&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Premier script PHP ===&lt;br /&gt;
&lt;br /&gt;
Il importe maintenant de réaliser le premier test. Créez un sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; puis créez dans ce sous répertoire un fichier &amp;lt;code&amp;gt;test.php&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;html&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;?&amp;lt;br /&amp;gt; echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;br /&amp;gt; phpinfo();&amp;lt;br /&amp;gt; ?&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;/html&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sauvegardez et chargez dans un navigateur (URL &amp;lt;code&amp;gt;http://localhost/test/test.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Voilà votre première page web dynamique ! Vous avez, en quelques lignes, créé du code html (les balises &amp;lt;html&amp;gt; et &amp;lt;/html&amp;gt;), faite générer du html par PHP (&amp;lt;code&amp;gt;echo &#039;premier test php&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;;&amp;lt;/code&amp;gt;), les &amp;lt;br&amp;gt; sont des retours chariots, et fait appel à l&#039;une des nombreuses fonctions de PHP, phpinfo() qui donne les principales informations sur le configuration actuelle de PHP.&lt;br /&gt;
&lt;br /&gt;
Vous pourrez réaliser d&#039;autres tests, l&#039;aide nécessaire est à votre disposition dans les bouquins, les revues et sur le net.&lt;br /&gt;
&lt;br /&gt;
Lorsque vous aurez constitué un petit groupe de fichiers de test vous pourrez alors faire l&#039;expérience suivante :&lt;br /&gt;
&lt;br /&gt;
* tapez simplement &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt; dans la barre d&#039;URL de votre navigateur, celui-ci affiche la liste des fichiers créés, en fait le contenu du sous répertoire &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt;. Si vous cliquez sur l&#039;un des fichiers vous lancez le serveur Apache qui va interpréter le code PHP contenu dans le fichier choisi.&lt;br /&gt;
* copiez l&#039;un des fichiers (ou renommez le) vers index.php. La même URL que précédemment affiche alors directement les contenu de index.php! Le contenu du sous répertoire n&#039;est plus visible! L&#039;accès aux différents fichiers reste toutefois possible si vous tapez directement leurs noms respectifs.&lt;br /&gt;
* effacez le ficher &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;, l&#039;affichage de la liste des fichiers est à nouveau possible. C&#039;est pratique pour éviter qu&#039;un visteur de passage puisse consulter le contenu d&#039;un sous-répertoire. Bien sûr c&#039;est un simple truc, pas un rideau de fer contre un kracker expérimenté, mal intentionné et patient !&lt;br /&gt;
&lt;br /&gt;
== 6 Installation de MySQL ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Mise en place des rpm ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation de &#039;&#039;&#039;mysql&#039;&#039;&#039; est elle aussi très simple. Les packages suivants sont nécessaires (ils devraient avoir été installés par défaut, en cas de besoin les installer par la suite):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-common&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MySQL-client n&#039;est pas indispensable. Il s&#039;agit en fait de la partie client de l&#039;ensemble client-serveur. Ce client permet toutefois (attention, en mode texte c&#039;est plutôt spartiate !) de faire quelques requêtes au serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&#039;# urpmi mysql&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
  2- MySQL-Max-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-2)1&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (18 Mo):&lt;br /&gt;
 MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-client-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-common-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 libmysql12-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 perl-Mysql-1.22_19-9mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:libmysql12             ##################################################&lt;br /&gt;
    2:MySQL-client           ##################################################&lt;br /&gt;
    3:perl-Mysql             ##################################################&lt;br /&gt;
    4:MySQL-common           ##################################################&lt;br /&gt;
    5:MySQL                  ##################################################&lt;br /&gt;
 040512 12:40:46  /usr/sbin/mysqld: Shutdown Complete&lt;br /&gt;
 # service mysql start&lt;br /&gt;
 Lancement du serveur MySQL                                      [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En principe après l&#039;installation de mysql vous devriez disposer d&#039;un serveur MySQL opérationnel (et en marche). Pour le vérifier tapez &amp;lt;code&amp;gt;ps -ax | grep mysql&amp;lt;/code&amp;gt;. Vous devriez voir s&#039;afficher quelques lignes relatives à autant de serveurs en attente de requêtes. Si tel n&#039;est pas le cas tapez (comme root) &amp;quot;&amp;lt;code&amp;gt;safe_mysql &amp;amp;&amp;lt;/code&amp;gt;&amp;quot; dans une fenètre texte. Cette commande devrait démarrer le serveur MySQL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Attention&amp;lt;/u&amp;gt; : l&#039;installation par défaut utilise root comme super administrateur du serveur et le mot de passe root. Faites donc un essai de fonctionnement du serveur MySQL en utilisant simplement le client MySQL en mode texte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# mysql -p&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Enter password:&amp;lt;br /&amp;gt; Welcome to the MySQL monitor. Commands end with ; or \g.&amp;lt;br /&amp;gt; Your MySQL connection id is 4 to server version: 4.0.18-log&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the buffer.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mysql&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tapez alors quit à l&#039;invite mysql et vous voilà sorti.&lt;br /&gt;
&lt;br /&gt;
Il va falloir faire fonctionner tout ce petit monde ensemble! Apache et PHP sont déjà opérationnels. Ils communiquent ensemble, l&#039;essai a été fait. MySQL est en route également. Pour que PHP puisse entrer en contact avec MySQL il lui faut un minimum de connaissances qui lui sont apportées par le module &#039;&#039;&#039;php-mysql&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php-mysql&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:php-mysql              ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez donc à l&#039;installer lui aussi sinon pas de langue commune! Redémarrez Apache.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Installation du script phpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
Plutôt que de vous lancer dans la rédaction d&#039;un premier script php qui va s&#039;adresser au serveur MySQL (pour lui dire quoi ? Rien n&#039;existe encore, ou si peu !) je vous suggère de récupérer sur le net un ensemble de scripts nommé phpMyAdmin. Il s&#039;agit tout simplement d&#039;un ensemble de scripts PHP qui va vous permettre, via un navigateur, d&#039;administrer vos premières bases de données, de lire les bases de données système MySQL (celles qui définissent les droits des utilisateurs), d&#039;en créer d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi phpmyadmin&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Préparation... ##################################################&amp;lt;br /&amp;gt; 1:phpMyAdmin ##################################################&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Premier test ===&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation faite utilisez votre navigateur préféré et tapez &amp;lt;code&amp;gt;http://localhost/admin/phpMyAdmin/&amp;lt;/code&amp;gt; dans la barre d&#039;URL. Vous devriez voire apparaître une page html &amp;quot;Bienvenue à phpMyAdmin 2.5.4 - Connexion&amp;quot;. Il vous reste à modifier le fichier /var/www/html/admin/phpMyAdmin/config.inc.php et le paramètre &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt; Exemple : &amp;lt;code&amp;gt;$cfg[&#039;blowfish_secret&#039;] = &#039;ma phrase secrete&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rechargez la page de votre navigateur, voilà vous êtes prêts à l&#039;utiliser !&lt;br /&gt;
&lt;br /&gt;
== 7 Synthèse ==&lt;br /&gt;
&lt;br /&gt;
Vous venez de créer deux ensembles de données, les répertoires contenant les pages HTML/PHP, et les répertoires contenant les bases de données MySQL.&lt;br /&gt;
&lt;br /&gt;
* Les pages PHP/HTML sont rangées dans &amp;lt;code&amp;gt;/var/www/html/&amp;lt;/code&amp;gt;. La page d&#039;accueil Apache est à l&#039;adresse &amp;lt;code&amp;gt;/var/www/html/index.shtml&amp;lt;/code&amp;gt; (rappel !). Le sous-répertoire &amp;lt;code&amp;gt;/var/www/html/admin/phpMyAdmin&amp;lt;/code&amp;gt; contient le script de connexion à MySQL. Vous pourrez créer d&#039;autres sous répertoires contenant vos premiers essais, par exemple &amp;lt;code&amp;gt;/var/www/html/test/&amp;lt;/code&amp;gt; qui sera accessible à l&#039;URL &amp;lt;code&amp;gt;http://localhost/test/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Les données MySQL sont rangées dans &amp;lt;code&amp;gt;/var/lib/mysql/&amp;lt;/code&amp;gt;. Chaque base de données correspond à un sous-répertoire. Exemple : &amp;lt;code&amp;gt;/var/lib/mysql/mysql/&amp;lt;/code&amp;gt; contient les tables qui définissent les droits d&#039;accès à MySQL. Ce sous-répertoire n&#039;est évidemment accessible que pour l&#039;administrateur système. Si vous créez une nouvelle base de données avec phpMyAdmin ou directement en utilisant le client MySQL, le serveur créera un nouveau sous répertoire /var/lib/mysql/test par exemple si votre nouvelle base s&#039;appelle test.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;La description ci-dessus avait pour but de vous conduire à disposer d&#039;un serveur Apache qui soit opérationnel et qui puisse mettre en oeuvre des bases de données MySQL via PHP. Ce but étant atteint il convient maintenant d&#039;être modeste. Le vrai travail commence juste. Lisez les docs, les man pages. Il existe aussi d&#039;excellents bouquins sur la question. Pour ma part j&#039;étudie actuellement ``Pratique de MySQL et PHP&#039;&#039; édition O&#039;Reilly. Je le trouve très bien fait.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, lisez [[reseau-web-Apache_protec|Protection d&#039;un serveur Apache PHP MySQL]], concernant la sécurisation] de l&#039;environnement que l&#039;on vient de créer.&lt;br /&gt;
&lt;br /&gt;
== Remerciement ==&lt;br /&gt;
&lt;br /&gt;
Lors d&#039;une installation il est courant de progresser un peu à tâtons, par essais successifs. Après quelques heures de bagarre (qui peuvent être réparties sur plusieurs jours) il faudrait être un sur-homme pour se souvenir de tout ce qu&#039;on a fait. La mise au point d&#039;un document comme celui-ci ne peut donc se faire qu&#039;après plusieurs installations réussies. Idéalement la bêta-version du document doit elle-même être testée par un autre personne qui suit scrupuleusement la description et commente les erreurs, inversions, oublis etc. Je remercie donc M. Guy ASSFELD d&#039;avoir bien voulu apporter sa contribution à ce travail en déboguant la première version.&lt;br /&gt;
&lt;br /&gt;
== L&#039;auteur ==&lt;br /&gt;
&lt;br /&gt;
JML dit Jean-Marc LICHTLE, email jean-marc.lichtle@gadz.org, ingénieur Arts et Métiers promo CH173 (rigolez pas, à l&#039;époque le hi-tech c&#039;était les cartes perforées sur IBM 1130) !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
; ... serveur&amp;lt;sup&amp;gt;[#tex2html1 1]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;De nombreuses distributions ne se contente plus du seul fichier httpd.conf. La version contenue dans LINUX Mandrake 10.0 utilise un fichier supplémentaire, commonhttpd.conf qui est appelé par httpd.conf par un ``include&#039;&#039;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
; ... start&amp;lt;sup&amp;gt;[#tex2html2 2]&amp;lt;/sup&amp;gt;&lt;br /&gt;
: Je ne précise pas, il va sans dire que certaines commandes ne peuvent être lancées que par l&#039;administrateur système (root). L&#039;appel à httpd fait partie de ces commandes réservées. Donc si LINUX vous fait un bras d&#039;honneur commencez par vous poser la question de votre habilitation à lancer une commande.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Marc LICHTLE le 01/10/2001.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 01/10/2001, Jean-Marc LICHTLE&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Anthony</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=EGroupware&amp;diff=11114</id>
		<title>EGroupware</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=EGroupware&amp;diff=11114"/>
		<updated>2005-12-14T09:43:46Z</updated>

		<summary type="html">&lt;p&gt;Anthony : /* Configuration d&amp;#039;eGroupWare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applications]]&lt;br /&gt;
= Une solution de groupware OpenSource =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Une solution de groupware OpenSource&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [mailto:anne@lea-linux.org Anne]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quand l&#039;évolution des technologies impacte sur l&#039;organisation d&#039;entreprise ==&lt;br /&gt;
&lt;br /&gt;
Le schéma organisationnel des entreprises qui était plutôt de type hiérarchique et rigide il y a quelques années tend à  s&#039;aplatir et se doter de nombreuses fonctionnalités transversales.&lt;br /&gt;
&lt;br /&gt;
Cette évolution implique donc un remaniement des modes de communication et d&#039;organisation, ainsi que du système d&#039;information. Un des outils clé de ce changement est le groupware qui dote l&#039;entreprise de moyens simples et efficaces pour permettre à  l&#039;ensemble de ses collaborateurs d&#039;y parvenir : partage de l&#039;information à  travers de multiples calendriers privés ou non, de forums, d&#039; outils collaboratifs (de type wiki), de gestionnaire de contacts...&lt;br /&gt;
&lt;br /&gt;
Les quatre membres fondateurs d&#039;eGroupWare sont issus du projet phpGroupWare. Celui-ci n&#039;évoluant pas selon eux dans la bonne direction et ne collant pas assez aux besoins exprimés par les utilisateurs d&#039;un groupware, ils décidèrent de forker(partir et refaire) le projet et d&#039;initier ainsi eGroupWare.&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif clairement annoncé est de concurrencer des solutions commerciales comme Notes et Exchange tout en respectant les principes de l&#039;Open Source. à cet effet l&#039;équipe d&#039;eGroupWare a donc orienté son outil en fonction de ce que doit apporter un logiciel de groupware dans une entreprise, une association,...&lt;br /&gt;
&lt;br /&gt;
Selon Reiner Jung, chef de projet eGroupWare : &amp;quot;Souvent les gens définissent le groupware comme un regroupement de fonctions comme le mail, une todo liste, des notes et un calendrier. àa n&#039;est pas notre définition. Un groupware devrait offrir un espace de travail partagé. Cet espace doit mettre à  disposition un ensemble de modules pour le travail de tous les jours. Dans mon activité quotidienne, je partage aussi des fichiers, gère mes projets, les développeurs ont besoin d&#039;un wiki, d&#039;un forum pour les discussions... Quand je peux exécuter la plupart de mes tâches quotidiennes à  travers un groupware, alors c&#039;en est un véritablement. Nous sommes sur la voie de ce genre de réalisation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dans de nombreux projets, les développeurs et/ou les entreprises créent un road map et décident des besoins des utilisateurs à  la version suivante. àa n&#039;est pas la bonne façon de procéder. Nous voulons obtenir un groupware qui remplisse les besoins d&#039;utilisateurs dans le monde professionnel. Selon moi, ce sont les utilisateurs qui développent eGroupWare. Ils ont souvent des connaissances plus importantes que nous sur le fonctionnement d&#039;un groupware et savent pertinemment ce dont ils ont besoin. Le projet doit réaliser, coordonner les demandes, s&#039;assurer de sa viabilité, sa stabilité et sa sécurité.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Particularité de fonctionnement : le groupe propose à  des entreprises qui souhaitent voir une ou plusieurs fonctionnalités aboutir plus rapidement de financer des heures de développement.. La méthode est de plus en plus courante et gage d&#039;adéquation du développement aux besoins réels.&lt;br /&gt;
&lt;br /&gt;
Un des avantages d&#039;eGroupWare est sa simplicité de mise en place. Elle ne doit toutefois pas occulter la complexité que représente la mise à  plat du circuit de l&#039;information dans une organisation. En effet, le groupware ne sera finalement que le reflet de ce schéma organisationnel. L&#039;objet de cet article est de montrer pas à  pas la solution technique. Nous n&#039;aborderons pas l&#039;étape préalable indispensable qui consiste à  partir de l&#039;organigramme de l&#039;entreprise pour mettre en place des groupes d&#039;utilisateurs et organiser les différents niveaux d&#039;accès à  l&#039;information.&lt;br /&gt;
&lt;br /&gt;
eGroupWare est constitué d&#039;un ensemble de modules présentant les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* webmail &lt;br /&gt;
* carnet de contacts &lt;br /&gt;
* calendrier partagé &lt;br /&gt;
* forum &lt;br /&gt;
* wiki &lt;br /&gt;
* CMS &lt;br /&gt;
* gestion de tickets d&#039;incident &lt;br /&gt;
* éditeur de site wysiwyg &lt;br /&gt;
* lient FTP et gestionnaire de fichiers &lt;br /&gt;
* messagerie instantanée &lt;br /&gt;
* gestionnaire de projets &lt;br /&gt;
* outil de sondage &lt;br /&gt;
* gestion graphique des utilisateurs et groupes, ainsi que de leur compte mail et LDAP &lt;br /&gt;
Chacun de ces modules, on le verra, peut être partagé avec tout ou partie des utilisateurs accédant à  eGroupWare. Passons aux choses concrètes : les prérequis&lt;br /&gt;
Passons maintenant à  l&#039;installation de la plate-forme qui va supporter eGroupWare. Nous avons fait le choix d&#039;une Mandrake 10.0 pour supporter cette plate-forme.&lt;br /&gt;
== Installer une plate-forme LAMP ==&lt;br /&gt;
L&#039;application nécessite au moins un serveur web, PHP et une base de données. Il est possible de l&#039;installer sur IIS, mais pour une raison on ne peut plus partisane, nous choisirons Apache sur Linux. L&#039;ensemble des informations du groupware et notamment le système d&#039;ACL (Access control List) est stocké dans une base de donnée, qui peut être MySQL ou PostgreSQL.&lt;br /&gt;
Nous allons décrire ci-dessous les modalités d&#039;installation de cette plate-forme LAMP (Linux, Apache, MySQL, PHP).&lt;br /&gt;
&#039;&#039;&#039;La première étape consiste à  installer Apache :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi apache2&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (1 Mo):&lt;br /&gt;
 apache-conf-2.0.48-2mdk.i586&lt;br /&gt;
 apache2-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-common-2.0.48-6mdk.i586&lt;br /&gt;
 apache2-modules-2.0.48-6mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache-conf            ##################################################&lt;br /&gt;
    2:apache2-modules        ##################################################&lt;br /&gt;
    3:apache2-common         ##################################################&lt;br /&gt;
    4:apache2                ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Le fichier de configuration est /etc/httpd/conf/httpd.conf. (Mandrake a délocalisé une partie de ce fichier dans /etc/httpd/conf/commonhttpd.conf). La configuration par défaut permet de lancer dès maintenant le service Apache :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# service httpd start&lt;br /&gt;
 Starting httpd:                                                 [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
La plate-forme nécessite également l&#039;installation de PHP :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- apache2-mod_php-2.0.48_4.3.4-1mdk.i586&lt;br /&gt;
  2- mod_php-4.3.4-1mdk.i586&lt;br /&gt;
  3- php-cli-4.3.4-4mdk.i586&lt;br /&gt;
  4- php-cgi-4.3.4-4mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-4)1&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:apache2-mod_php        ##################################################&lt;br /&gt;
 Shutting down httpd2: [  OK  ]&lt;br /&gt;
 Checking configuration sanity for Apache 2.0:  [  OK  ]&lt;br /&gt;
 Starting httpd2: [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Là  encore la configuration proposée permet un fonctionnement immédiat de PHP. Il nous reste enfin à  installer le serveur MySQL :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi mysql&lt;br /&gt;
 Un des paquetages suivants est nécessaire :&lt;br /&gt;
  1- MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
  2- MySQL-Max-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 Que choisissez-vous ? (1-2)1&lt;br /&gt;
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (18 Mo):&lt;br /&gt;
 MySQL-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-client-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 MySQL-common-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 libmysql12-4.0.18-1.1.100mdk.i586&lt;br /&gt;
 perl-Mysql-1.22_19-9mdk.i586&lt;br /&gt;
 Est-ce correct ? (O/n)&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:libmysql12             ##################################################&lt;br /&gt;
    2:MySQL-client           ##################################################&lt;br /&gt;
    3:perl-Mysql             ##################################################&lt;br /&gt;
    4:MySQL-common           ##################################################&lt;br /&gt;
    5:MySQL                  ##################################################&lt;br /&gt;
 040512 12:40:46  /usr/sbin/mysqld: Shutdown Complete&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
On procède ensuite au démarrage du service :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# service mysql start&lt;br /&gt;
 Starting mysql:                                                 [  OK  ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
L&#039;installation nécessite enfin un certain nombre de modules pour Apache, nécessaires au bon fonctionnement d&#039;eGroupWare.&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php-mysql php-xml php-imap php-ldap&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:php-imap               ##################################################&lt;br /&gt;
    2:php-xml                ##################################################&lt;br /&gt;
    3:php-mysql              ##################################################&lt;br /&gt;
    4:php-ldap               ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Voilà  votre plate-forme prête à  fonctionner !&lt;br /&gt;
== L&#039;annuaire LDAP ==&lt;br /&gt;
Il est également possible d&#039;adosser le groupware à  un annuaire LDAP (site officiel : http://openldap.org). Avantage de la méthode : il va permettre de centraliser . C&#039;est l&#039;option qui sera présentée ici car elle permet d&#039;utiliser de manière optimale les fonctionnalités d&#039;eGroupWare. L&#039;installation du serveur LDAP est simple :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi openldap-servers openldap-client&lt;br /&gt;
 Préparation...              ##################################################&lt;br /&gt;
    1:openldap-servers       ##################################################&lt;br /&gt;
    2:openldap-client        ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Le recours à  un annuaire LDAP présuppose deux choses : l&#039;installation du module php-ldap pour Apache (ce que nous avons fait dans le paragraphe précédent) et l&#039;intégration d&#039;une classe nécessaire pour inclure des paramètres eGroupWare dans la définition des comptes de groupes et d&#039;utilisateurs. Pour ce faire, copiez les schémas fournis dans les sources (les schémas seront ajoutés dès la prochaine version du RPM Mandrake), phpgwaccount.schema et phpgwcontact.schema dans l&#039;arborescence LDAP. Comme leurs noms l&#039;indiquent, l&#039;un permet de définir les comptes de groupes et d&#039;utilisateurs, l&#039;autre permet de définir le stockage des contacts dans l&#039;annuaire. Pour finir, déclarez l&#039;utilisation de ces schémas dans slapd.conf et redémarrez le serveur.&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# ls /etc/openldap/schema&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; local.schema phpgwaccount.schema phpgwcontact.schema&amp;lt;br /&amp;gt; # cat /etc/openldap/slapd.conf&amp;lt;br /&amp;gt; ...&amp;lt;br /&amp;gt; include /etc/openldap/schema/phpgwaccount.schema&amp;lt;br /&amp;gt; include /etc/openldap/schema/phpgwcontact.schema&amp;lt;br /&amp;gt; ...&amp;lt;br /&amp;gt; # service ldap restart&amp;lt;/div&amp;gt;&lt;br /&gt;
== Le support de la messagerie ==&lt;br /&gt;
Nous allons utiliser également un serveur SMTP et un serveur POP/IMAP. Les choix réalisés par l&#039;équipe d&#039;eGroupWare privilégient Postfix d&#039;un côté et Cyrus-IMAP de l&#039;autre. Il est tout à  fait envisageable d&#039;utiliser d&#039;autres produits mais ceux-ci ont l&#039;avantage de permettre ensuite la gestion du compte de messagerie à  travers l&#039;interface du groupware (gestion des boites mail, alias de mail, forwards, et bientôt les absences).&lt;br /&gt;
Attention : les requêtes sur les utilisateurs eGroupWare concernant la messagerie se basent sur la classe qmailUser et l&#039;attribut mailAlternateAddress. Ci-dessous un extrait du fichier de configuration de Postfix main.cf concernant la construction de la requête LDAP à  effectuer :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cat /etc/postfix/main.cf&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; virtual_alias_maps = ldap:ldapuser, ldap:ldapgroup&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; ldapuser_server_host = 127.0.0.1&amp;lt;br /&amp;gt; ldapuser_server_port = 389&amp;lt;br /&amp;gt; ldapuser_bind = yes&amp;lt;br /&amp;gt; ldapuser_bind_dn = cn=adminmail,dc=domain,dc=com&amp;lt;br /&amp;gt; ldapuser_bind_pw = Xd25./T&amp;lt;br /&amp;gt; ldapuser_search_base = ou=Personnes,dc=domain,dc=com&amp;lt;br /&amp;gt; ldapuser_timeout = 60&amp;lt;br /&amp;gt; ldapuser_query_filter = (&amp;amp;(objectclass=qmailUser)(mailAlternateAddress=%s))&amp;lt;br /&amp;gt; ldapuser_result_attribute = mail&amp;lt;br /&amp;gt; ldapuser_lookup_timeout = 60&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; ldapgroup_server_host = 127.0.0.1&amp;lt;br /&amp;gt; ldapgroup_server_port = 389&amp;lt;br /&amp;gt; ldapgroup_bind = yes&amp;lt;br /&amp;gt; ldapgroup_bind_dn = cn=adminmail,dc=domain,dc=com&amp;lt;br /&amp;gt; ldapgroup_bind_pw = Xd25./T&amp;lt;br /&amp;gt; ldapgroup_search_base = ou=Groupes,dc=domain,dc=com&amp;lt;br /&amp;gt; ldapgroup_timeout = 60&amp;lt;br /&amp;gt; ldapgroup_query_filter = (&amp;amp;(objectclass=mailRecipient)(mailAlternateAddress=%s))&amp;lt;br /&amp;gt; ldapgroup_result_attribute = rfc822MailMember&amp;lt;br /&amp;gt; ldapgroup_lookup_timeout = 60&amp;lt;br /&amp;gt; ....&amp;lt;/div&amp;gt;&lt;br /&gt;
On pourra bien sur affiner cette configuration mais ce n&#039;est pas l&#039;objet de l&#039;article. Consulter Postfix-Cyrus-Web-cyradm-HOWTO, un bon point de départ.&lt;br /&gt;
== L&#039;installation de eGroupWare ==&lt;br /&gt;
=== Les étapes de l&#039;installation ===&lt;br /&gt;
L&#039;installation peut se faire à  partir des sources :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cd /var/www/html&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # tar xjf eGroupWare-0.9.99.015-1.tar.bz2&amp;lt;/div&amp;gt;&lt;br /&gt;
Comme nous travaillons sur une Mandrake, nous utiliserons les packages prévu à  cet effet. Il est possible de télécharger le package édité par l&#039;équipe d&#039;eGoupWare (eGroupWare-all-apps-0.9.99.015-1.noarch.rpm). Toutefois dans un soucis de cohérence, nous utiliserons les packages fournis par la source contrib de Mandrake. Pour installer eGroupWare et tous ses modules :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi -a egroupware egroupware-&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Par défaut les fichiers s&#039;installent dans /var/www/html/egroupware.&lt;br /&gt;
Le processus d&#039;installation d&#039;eGroupWare prévoit la création de la base de donnée pour MySQL et PostgreSQL. Nous reprenons ci-dessous les étapes qui permettent la création en ligne de commande de la base et d&#039;un utilisateur qui aura les droits sur cette base pour MySQL.&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# mysqladmin --user=root create egroupware&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # mysql --user=root mysql&amp;lt;br /&amp;gt; mysql&amp;gt; GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY &#039;passwd&#039;;&amp;lt;br /&amp;gt; mysql&amp;gt; flush privileges;&amp;lt;/div&amp;gt;&lt;br /&gt;
Voilà , nous laissons de côté maintenant la ligne de commande pour passer à  l&#039;installeur web d&#039;eGroupWare. L&#039;installation va alors se faire en 3 étapes à  partir de l&#039;URL suivante dans notre cas : http://localhost/egroupware/setup.&lt;br /&gt;
=== Vérification de l&#039;installation ===&lt;br /&gt;
[[Image:egroupware-egw1.png]]&lt;br /&gt;
=== Génération du fichier header.inc.php ===&lt;br /&gt;
[[Image:egroupware-egw2.png]]&lt;br /&gt;
Ce fichier contient les paramètres de base d&#039;eGroupWare comme les paramètres de connexion à  la base de données mais aussi la possibilité d&#039;en générer plusieurs instances en définissant des domaines. Cette notion peut être utile si l&#039;on souhaite par exemple définir deux interfaces distinctes d&#039;eGroupWare, par exemple, l&#039;Intranet et les clients.&lt;br /&gt;
Vous allez également créer deux utilisateurs clés : l&#039;un vous servira à  rééditer cette page, l&#039;autre à  poursuivre la procédure d&#039;installation.&lt;br /&gt;
Il est recommandé de conserver une sauvegarde de ce fichier.&lt;br /&gt;
=== Installation des applications ===&lt;br /&gt;
[[Image:egroupware-egw3.png]]&lt;br /&gt;
Connectez-vous comme demandé.&lt;br /&gt;
L&#039;étape suivante consiste à  valider l&#039;installation des différents applications du groupware et créer les tables correspondantes dans votre base de données.&lt;br /&gt;
=== Configuration d&#039;eGroupWare ===&lt;br /&gt;
[[Image:egroupware-egw4.png]]&lt;br /&gt;
La configuration se présente ensuite comme une série de champs à  renseigner. L&#039;installation d&#039;eGroupWare nécessite la création d&#039;un répertoire, de préférence hors de l&#039;arborescence Apache qui contiendra notamment les fichiers uploadés par l&#039;intermédiaire du gestionnaire de fichiers. Ce répertoire devra être accessible à  l&#039;utilisateur exécutant l&#039;instance Apache (le répertoire est créé par défault, vérifiez qu&#039;il existe, sinon tapez le code ci desous).&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# mkdir /var/lib/egroupware&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # chown -R apache:apache /var/lib/egroupware&amp;lt;/div&amp;gt;&lt;br /&gt;
Vous devrez également spécifier l&#039;IP ou le nom de votre serveur FTP si vous souhaitez utiliser le module FTP du groupware.&lt;br /&gt;
[[Image:egroupware-egw5.png]]&lt;br /&gt;
Nous voilà  maintenant arrivés à  la configuration de l&#039;authentification et des comptes utilisateurs. Plusieurs options s&#039;offrent à  vous. Si vous ne disposez pas d&#039;annuaire LDAP, choisissez de stocker les comptes dans la base de données. Dans notre cas, ayant recours à  LDAP, nous allons donc compléter les éléments nécessaires. Ils sont classiques pour ceux qui ont l&#039;habitude de manipuler ce service : home directory à  utiliser, shell, contexte des OU (Organizational Units) d&#039;utilisateurs et de groupes, manager de LDAP et mot de passe.&lt;br /&gt;
Il est indispensable également d&#039;autoriser l&#039;utilisation de LDAP v.3, que l&#039;on retrouve par défaut dans la majorité des distributions. Enregistrer la configuration obtenue.&lt;br /&gt;
Nous compléterons cette phase par la création d&#039;un compte administrateur qui sera utilisé ensuite pour l&#039;administration du groupware (gestion des ACL, gestion des utilisateurs et des applications). Il vous est d&#039;ailleurs proposé de créer des comptes de démonstration pour tester le bon fonctionnement de l&#039;application. Vous pouvez en vérifier la création dans l&#039;annuaire :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# ldapsearch -x &amp;quot;uid=adminegw&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # adminegw, Users, domain, com&amp;lt;br /&amp;gt; dn: uid=adminegw,ou=Users,dc=domain,dc=com&amp;lt;br /&amp;gt; phpgwAccountType: u&amp;lt;br /&amp;gt; uidNumber: 2008&amp;lt;br /&amp;gt; objectClass: top&amp;lt;br /&amp;gt; objectClass: person&amp;lt;br /&amp;gt; objectClass: organizationalPerson&amp;lt;br /&amp;gt; objectClass: inetOrgPerson&amp;lt;br /&amp;gt; objectClass: posixAccount&amp;lt;br /&amp;gt; objectClass: shadowAccount&amp;lt;br /&amp;gt; objectClass: phpgwAccount&amp;lt;br /&amp;gt; cn: adminegw adminegw&amp;lt;br /&amp;gt; uid: adminegw&amp;lt;br /&amp;gt; sn: adminegw&amp;lt;br /&amp;gt; givenName: adminegw&amp;lt;br /&amp;gt; homeDirectory: /home/adminegw&amp;lt;br /&amp;gt; loginShell: /bin/false&amp;lt;br /&amp;gt; gidNumber: 2&amp;lt;br /&amp;gt; phpgwAccountStatus: A&amp;lt;br /&amp;gt; phpgwAccountExpires: -1&amp;lt;/div&amp;gt;&lt;br /&gt;
L&#039;utilisateur est bien créé et on retrouve la classe phpgwAccount ainsi que les attributs élémentaires : phpgwAccountType (u : user ou g : groupe), phpgwAccountStatus (A : compte actif), phpgwAccountExpires (-1 : jamais).&lt;br /&gt;
La configuration est maintenant terminée. Vous pouvez toutefois à  ce stade gérer les langues (ajouter / supprimer). 22 langues sont aujourd&#039;hui disponibles, par défaut sont sélectionnés l&#039;anglais et le français. Vous pouvez également gérer les applications. Le mode d&#039;installation que nous avons utilisé fournit toutes les applications disponibles, vous pouvez restreindre cette liste.&lt;br /&gt;
L&#039;installation et la configuration de base sont maintenant terminées, nous passons à  la configuration de l&#039;utilisation du groupware.&lt;br /&gt;
&lt;br /&gt;
== Configuration du groupware ==&lt;br /&gt;
Une fois connecté en tant qu&#039;administrateur du groupware, allez sur le paneau d&#039;administration . [[Image:egroupware-egw6.png]]&lt;br /&gt;
Il vous offre les fonctionnalités suivantes :&lt;br /&gt;
* gestion des applications&lt;br /&gt;
* gestion des utilisateurs&lt;br /&gt;
* configuration du site et paramétrage mail&lt;br /&gt;
* gestion des catégories et ACL&lt;br /&gt;
Avant de poursuivre il est indispensable de définir ces 2 dernières notions qui sous-tendent toute la configuration qui va suivre.&lt;br /&gt;
=== ACL et catégories globales ===&lt;br /&gt;
[[Image:egroupware-egw7.png]]&lt;br /&gt;
Les ACL sont un terme générique (Acces Control List) que l&#039;on retrouvera dans de nombreuses applications. Elles vont définir les droits d&#039;accès d&#039;un utilisateur et/ou d&#039;un groupe aux données d&#039;une application. Elles sont au nombre de quatre : lecture, ajout, modification, suppression.&lt;br /&gt;
Dans notre exemple, les membres du groupe commerciaux auront tous les droits sur les données du gestionnaire de fichiers relatives à  leur groupe. Seuls les membres du groupe techniciens auront un accès en lecture.&lt;br /&gt;
[[Image:egroupware-egw8.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Les catégories globales permettent d&#039;organiser les données et sont communes à  toutes les applications. Il est possible également de créer des catégories spécifiques à  une application ainsi que des catégories personnelles. Elles sont importantes car elles permettent de rationaliser l&#039;affichage des données et de d&#039;organiser celles-ci plus clairement.&lt;br /&gt;
=== Une administration centralisée des utilisateurs ===&lt;br /&gt;
La gestion des utilisateurs et des groupes peut se faire à  plusieurs niveaux :&lt;br /&gt;
[[Image:egroupware-egw9.png]]&lt;br /&gt;
* le module de gestion de comptes utilisateurs : il permet de créer, modifier, supprimer un utilisateur. Les modifications portent sur les données de base du compte, la configuration mail, les applications attribuées spécifiquement à  un utilisateur.[[Image:egroupware-egw10.png]]&lt;br /&gt;
* le module de gestion de comptes de groupes : il permet de positionner les utilisateurs dans le groupe choisi. Pour pouvoir positionner les ACL, cliquer sur l&#039;application et sauvegarder puis cliquer à  nouveau sur la puce situé à  droite de la dite application.&amp;lt;br /&amp;gt; On conseille souvent d&#039;utiliser un groupe &amp;quot;Default&amp;quot; dans lequel on positionnera tous les utilisateurs. Celui-ci permettra de fixer les applications de base communes à  tous ainsi que des ACL. On affinera ensuite groupe par groupe ces ACL en fonction des besoins.&lt;br /&gt;
* On trouve enfin la gestion des préférences utilisateurs. Ces préférences agissent sur l&#039;ergonomie des applications, leur mode de visualisation, la possibilité ou non de personnaliser la configuration. Ces préférences peuvent être définies par les utilisateurs eux-mêmes mais restreintes par l&#039;administrateur qui positionnera des préférences forcées pour une ou plusieurs applications. Enfin on dispose également de la possibilité de fixer des préférences par défaut.&lt;br /&gt;
== Revue de détail des principales applications ==&lt;br /&gt;
Nous allons ici passer en revue les applications les plus courantes ainsi que leurs fonctionnalités dans le cadre du groupware.&lt;br /&gt;
* Messagerie&amp;lt;br /&amp;gt;[[Image:egroupware-egw11.png]]&amp;lt;br /&amp;gt; eGroupWare propose deux types de webmails qui offrent les fonctionnalités classiques de ce type de client. On trouve entre autres un lien avec le carnet de carnet d&#039;adresses.&lt;br /&gt;
* Carnet d&#039;adresses&amp;lt;br /&amp;gt; Il s&#039;agit la d&#039;une fonctionnalité classique. Il permet des importations et des exportations à  partir de différents formats standards. L&#039;ensemble des contacts est stockable dans une base LDAP.&lt;br /&gt;
* Calendrier&amp;lt;br /&amp;gt;[[Image:egroupware-egw12.png]]&amp;lt;br /&amp;gt; Le calendrier dispose de vues quotidienne, par semaine, mensuelle ou annuelle. On peut ajouter des événements pour soi-même, d&#039;autres utilisateurs ou des groupes. Il est possible alors de générer des alarmes par mail pour prévenir les différents participants. Ce calendrier est également doté d&#039;un système de confirmation pour chaque événement qui permet ainsi au mieux leur planification.&lt;br /&gt;
Egalement à  disposition, un planificateur de tâches, qui permet de visualiser rapidement les plages horaires disponibles pour fixer un rendez-vous pour une ou plusieurs personnes.&lt;br /&gt;
* Infolog &amp;lt;br /&amp;gt; C&#039;est un outil à  mi chemin entre le post-itÂ© et la mini gestion de projet. Il permet de programmer des tâches, en associant ou non d&#039;autres participants, des contacts, des événements du calendrier, des fichiers. Des indicateurs permettent ensuite de visualiser la progression du dit projet.&lt;br /&gt;
L&#039;application propose en tout une quinzaine de modules.&lt;br /&gt;
== Sécurisation et optimisation de l&#039;installation ==&lt;br /&gt;
La sécurisation de la plate-forme supportant eGroupWare relève des conseils habituels liés à  l&#039;administration d&#039;une plate-forme LAMP (Linux-Apache-MySQL-PHP).&lt;br /&gt;
Concernant le serveur MySQL, vérifiez que l&#039;utilisateur root dispose bien d&#039;un mot de passe. En effet, à  l&#039;installation du serveur, l&#039;utilisateur root est initialisé dans la base &amp;quot; mysql&amp;quot; sans aucun mot de passe :&lt;br /&gt;
De plus nous allons restreindre l&#039;accès au serveur MySQL aux seules requêtes lancées en local :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cat /etc/my.cnf&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; [mysqld]&amp;lt;br /&amp;gt; ...&amp;lt;br /&amp;gt; bind_address = 127.0.0.1&amp;lt;br /&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
Concernant la configuration de PHP, les développeurs apportent quelques conseils pour en optimiser les performances :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;max_execution_time ? 30&amp;lt;br /&amp;gt; memory_limit ? 16 Mo&amp;lt;br /&amp;gt; register_globals = Off&amp;lt;br /&amp;gt; safe_mode = On&amp;lt;/div&amp;gt;&lt;br /&gt;
Vous devrez également personnaliser le paramètre &amp;quot;upload_max_filesize&amp;quot; en fonction des besoins pour le gestionnaire de fichiers. C&#039;est à  ce niveau que la taille des uploads de fichiers de cette application sera limité et non par un paramètre propre au groupware.&lt;br /&gt;
Enfin eGroupWare peut gagner considérablement en rapidité d&#039;exécution grâce à  Turck MMCache. Il accélère l&#039;interprétation du code PHP et réduit la charge du serveur.&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# urpmi php-mmcache php-mmcache-admin&lt;br /&gt;
 installation de php-mmcache php-mmcache-admin&lt;br /&gt;
    1:php-mmcache            ##################################################&lt;br /&gt;
    2:php-mmcache-admin      ##################################################&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Attribuer un mot de passe à  l&#039;administrateur de l&#039;interface de gestion du cache :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# php -q /var/www/html/admin/php-mmcache/mmcache_password.php&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; Changing password for Turck MMCache Web Interface (mmcache.php)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Enter admin name: admincache&amp;lt;br /&amp;gt; New admin password: R3./po&amp;lt;br /&amp;gt; Retype new admin password: R3./po&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Add the following lines into your php.ini and restart HTTPD&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mmcache.admin.name=&amp;quot;admincache&amp;quot;&amp;lt;br /&amp;gt; mmcache.admin.password=&amp;quot;$1$BGhHjZ5A$wNPAxc3BfU12POJoxopBO/&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
On accède ensuite à  l&#039;interface de gestion du cache : http://localhost/admin/php-mmcache&lt;br /&gt;
== eGroupWare, les projets ==&lt;br /&gt;
Le projet est aujourd&#039;hui disponible dans sa première version stable. Mais le groupe de développement travaille déjà  sur ce que sera la prochaine version stable, la 1.2. Dans cette optique, de nombreux d&#039;objectifs ont étés fixés et mis en avant.&lt;br /&gt;
Il est projeté de mettre à  disposition un moteur de workflow1&lt;br /&gt;
Dans les développements très attendus, on note aussi un certain nombre de connecteurs vers l&#039;extérieur qui permettront d&#039;inclure encore plus le groupware dans son environnement : une synchronisation avec les PDA (ou organiseurs personnels en bon français) disponible très prochainement, un connecteur pour Evolution, et un connecteur pour Outlook.&lt;br /&gt;
Il est prévu également de travailler sur l&#039;ergonomie de l&#039;interface utilisateur et notamment un assistant pour la configuration de celle ci. De nouveaux modèles de documents, ainsi que de nouvelles fonctionnalités comme le glisser-déposer sont également au programme.&lt;br /&gt;
Des applications vont être ré-écrites, soit totalement (carnet d&#039;adresses, gestion des accidents), soit partiellement(webmail, gestionnaire de fichiers, gestion de projets).&lt;br /&gt;
Enfin pour vérifier l&#039;identité de l&#039;utilisateur du groupware, celui-ci devrait inclure également une fonction d&#039;autorité de certification, tout ceci dans un souci de mieux répondre aux exigences de sécurisation du système.&lt;br /&gt;
== Liens ==&lt;br /&gt;
* [http://egroupware.org le site du projet] &lt;br /&gt;
* [http://sourceforge.net/mail/?group_id=78745 les listes de diffusion (utilisateurs, développeurs)] &lt;br /&gt;
* [http://linuxfrench.net/article.php?id_article=1403 Interview de Reiner JUNG, chef de projet ] &lt;br /&gt;
* [http://httpd.apache.org le site d&#039;Apache ] &lt;br /&gt;
* [http://www.mysql.com le site de MySQL ] &lt;br /&gt;
* [http://openldap.org le site de OpenLDAP ] &lt;br /&gt;
* [http://lea-linux.org/reseau/Apache_PHP_MySQL.html HOWTO plate-forme LAMP]&lt;br /&gt;
* [http://www.linux.com/howtos/Postfix-Cyrus-Web-cyradm-HOWTO/index.shtml HOWTO Postfix/Cyrus-IMAP]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Anne le 05/09/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 05/09/2004, Anne&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Anthony</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Les_permissions_sur_les_fichiers&amp;diff=11106</id>
		<title>Les permissions sur les fichiers</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Les_permissions_sur_les_fichiers&amp;diff=11106"/>
		<updated>2005-12-12T13:37:51Z</updated>

		<summary type="html">&lt;p&gt;Anthony : /* La propriété : &amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Environnement système]]&lt;br /&gt;
= Les permissions sur les fichiers =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Les permissions sur les fichiers&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Dis Papa, c&#039;est quoi &amp;lt;code&amp;gt;rwxr-xr-x&amp;lt;/code&amp;gt; ? Tais-toi et nage !&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Un peu de théorie ==&lt;br /&gt;
&lt;br /&gt;
Dans ce chapitre, nous allons étudier les &#039;&#039;&#039;permissions sur les fichiers&#039;&#039;&#039;. Nous allons voir rapidement sur quoi la gestion des permissions se base.&lt;br /&gt;
&lt;br /&gt;
=== Les utilisateurs et les groupes ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers appartiennent à un &#039;&#039;&#039;&#039;&#039;utilisateur&#039;&#039;&#039;&#039;&#039; à l&#039;intérieur d&#039;un &#039;&#039;&#039;&#039;&#039;groupe d&#039;utilisateurs&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* L&#039;&#039;&#039;utilisateur&#039;&#039;, c&#039;est vous ! C&#039;est un identifiant avec un mot de passe, qui sont définis dans le fichier &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;. On peut ajouter des utilisateurs à l&#039;aide de la commande &amp;lt;code&amp;gt;useradd&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;adduser&amp;lt;/code&amp;gt; (voir &amp;lt;code&amp;gt;man adduser&amp;lt;/code&amp;gt;). Certaines distributions fournissent des outils graphiques pour ce faire, comme &amp;lt;code&amp;gt;drakuser&amp;lt;/code&amp;gt; de Mandrake.&lt;br /&gt;
* Le &#039;&#039;groupe d&#039;utilisateurs&#039;&#039;, défini dans le fichier &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt;, permet de regrouper des utilisateurs dans des groupes (un même utilisateur peut faire partie de plusieurs groupes) afin par exemple de partager des permissions entre plusieurs utilisateurs. Par exemple, le groupe &amp;lt;code&amp;gt;quakeusers&amp;lt;/code&amp;gt; peut être défini afin d&#039;y placer les utilisateurs qui auront le droit d&#039;utiliser le jeu Quake : on donnera par exemple la permission aux membres de ce groupe de lancer l&#039;exécutable de ce jeu. De même, le groupe &amp;lt;code&amp;gt;cdrecording&amp;lt;/code&amp;gt; aura les droits d&#039;utiliser le graveur de CD.&lt;br /&gt;
&lt;br /&gt;
=== Les droits possibles : R, W et X ===&lt;br /&gt;
&lt;br /&gt;
Les droits que l&#039;on peut attribuer à un fichier concernent :&lt;br /&gt;
&lt;br /&gt;
* la lecture (&#039;&#039;&#039;&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;&#039; comme read),&lt;br /&gt;
* l&#039;écriture (&#039;&#039;&#039;&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;&#039;&#039;&#039; comme write),&lt;br /&gt;
* l&#039;exécution (&#039;&#039;&#039;&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;&#039;&#039;&#039; comme execute).&lt;br /&gt;
&lt;br /&gt;
On peut attribuer ces droits pour :&lt;br /&gt;
&lt;br /&gt;
* un utilisateur,&lt;br /&gt;
* les membres d&#039;un groupe,&lt;br /&gt;
* le monde entier (i.e. les autres utilisateurs).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Visualiser/modifier les permissions ==&lt;br /&gt;
&lt;br /&gt;
=== Ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
En ligne de commande (voir la rubrique [shell.php3 Shell]), tapez :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[username@taz username]$ &#039;&#039;&#039;ls -la&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;total 144 &amp;lt;br /&amp;gt; drwxr-xr-x   18 username     users        2048 jan  7 19:22 . &amp;lt;br /&amp;gt; drwxr-xr-x    7 root     root         1024 fév  6  1996 .. &amp;lt;br /&amp;gt; -rw-------    1 username     users         147 jan  7 19:22 .Xauthority &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users        1899 jui 28 21:01 .Xdefaults &amp;lt;br /&amp;gt; -rw-------    1 username     users        5860 jan  7 19:22 .bash_history &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users          24 jui 28 21:01 .bash_logout &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users         262 jui 29 18:15 .bash_profile &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users         434 jui 28 21:01 .bashrc &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users        2626 jui 28 21:01 .emacs &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users         532 jui 28 21:01 .inputrc &amp;lt;br /&amp;gt; drwxr-xr-x    3 username     users        1024 jui 28 21:01 .kde &amp;lt;br /&amp;gt; -rw-r--r--    1 username     users        1546 jan  7 19:04 .kderc &amp;lt;br /&amp;gt; -rwxr-xr-x    1 username     users        1166 jui 28 21:01 .kderc.rpmorig&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour une explication détaillée des différentes colonnes, voir la rubrique [shell.php3#ls Shell]. Nous n&#039;allons ici nous intéresser qu&#039;aux éléments relatifs aux permissions.&lt;br /&gt;
&lt;br /&gt;
1. La première colonne -rw-r--r-- représente les permissions associées au fichier. &amp;lt;br /&amp;gt;&#039;&#039;(le premier caractère est le type du fichier fichier : un d pour un répertoire, un l pour un lien, etc.)&#039;&#039;&amp;lt;br /&amp;gt; Ensuite, on a trois groupes de trois caractères : &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;rwx&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039;. La présence de la lettre r w ou x accorde la permission, un tiret &#039;-&#039; la dénie.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;&#039; signifie : possibilité de lire ce fichier / dans ce répertoire, &amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;&#039;&#039;&#039; signifie : possibilité d&#039;écrire dans ce fichier / répertoire, &amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;&#039;&#039;&#039; signifie : possibilité d&#039;exécuter ce fichier / d&#039;aller dans ce répertoire.&lt;br /&gt;
&lt;br /&gt;
Les trois groupes de caractère s&#039;appliquent, dans l&#039;ordre, à :&lt;br /&gt;
&lt;br /&gt;
# l&#039;utilisateur auquel appartient le fichier,&lt;br /&gt;
# le groupe d&#039;utilisateurs auquel est rattaché le fichier,&lt;br /&gt;
# les autres utilisateurs.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;r w x&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;r - x&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;r - x&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| utili-&amp;lt;br /&amp;gt;sateur&lt;br /&gt;
| groupe&lt;br /&gt;
| autres&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. La 3&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne est l&#039;utilisateur à qui appartient le fichier. À cet utilisateur s&#039;appliquent les permissions représentées par les trois premiers caractères de permissions de la première colonne (&amp;lt;code&amp;gt;-&#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;rwx&amp;lt;/font&amp;gt;&#039;&#039;&#039;r-xr-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
3. La 4&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne est le groupe d&#039;utilisateurs auquel appartient le fichier. A ce groupe s&#039;appliquent les permissions représentées par le deuxième groupe de trois caractères de permissions de la première colonne (&amp;lt;code&amp;gt;-rwx&#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;r-x&amp;lt;/font&amp;gt;&#039;&#039;&#039;r-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;Exemples :&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt; 1. La ligne suivante : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;drwxr-xr-x  18  username  users   2048 jan  7 19:22 .&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; signifie pour le répertoire &#039;.&#039; (le répertoire HOME de l&#039;utilisateur username) que tout le monde a le droit de lire le contenu du répertoire (le dernier &#039;r&#039;), et que tout le monde peut y accéder (le dernier &#039;x&#039;). Par contre, seul l&#039;utilisateur username peut y écrire (caractère &#039;w&#039;), c&#039;est à dire y créer des fichiers, les modifier ou les supprimer.&lt;br /&gt;
&lt;br /&gt;
2. La ligne : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;-rw-r-----   1  username  wwwadm  1728 jan  7 19:22 projet-www&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; signifie que seul &#039;username&#039; et les utilisateurs du groupe &#039;wwwadm&#039; peuvent lire ce fichier, que seule username peut le modifier, et que les autres utilisateurs n&#039;ont aucun droit dessus (le dernier groupe de caractères &#039;---&#039;).&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
&lt;br /&gt;
=== Les droits : &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Il existe deux façon de changer les droits d&#039;un fichier ou répertoire.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Soit en précisant les droits en octal (base 8)&#039;&#039;&#039;. La correspondance est la suivante :&lt;br /&gt;
** 1 : droit d&#039;exécution ;&lt;br /&gt;
** 2 : droit d&#039;écriture ;&lt;br /&gt;
** 4 : droit de lecture.&lt;br /&gt;
Donc, pour préciser les droits en exécution et lecture, le chiffre octal est : 1 + 4 = 5. Pour préciser les droits en éxécution, écriture et lecture, le chiffre octal est : 1 + 2 + 4 = 7.&lt;br /&gt;
Ensuite, il faut savoir que le chiffre des unités (en octal) correspond &#039;au reste du monde&#039; que le chiffre des &#039;huitaines&#039; (deuxième chiffre en octal) correspond &#039;au groupe&#039; et que le chiffre des &#039;soixante-quatraines&#039; (troisième chiffre en octal) correspond &#039;à l&#039;utilisateur&#039;. Ainsi, si on veut que l&#039;utilisateur ait les 3 droits (rwx), que le groupe ait les 2 droits (r-x) et que le reste du monde n&#039;ai aucun droit (---), le nombre octal est : 750 (7 = 1 + 2 + 4 ; 5 = 1 + 4 ; 0 = 0). Pour donner ces droits à un fichier on tape alors :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chmod 0750 /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
Le premier 0 dans 0750 signifie qu&#039;on donne le nombre en octal (son absence ne modifie pas le comportement de chmod).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Soit en précisant les droits qu&#039;on ajoute (+) ou soustrait (-) au fichier (ou répertoire).&#039;&#039;&#039; Pour ajouter des droits à l&#039;utilisateur, on ajoute un droit (r,w, x ou toute combinaison des 3) à &#039;u&#039;. Par exemple : &amp;lt;code&amp;gt;u+rw&amp;lt;/code&amp;gt; signifie qu&#039;on ajoute les droit de lecteur et d&#039;écriture à l&#039;utilisateur. Pour le groupe, on ajoute ou soustrait à &#039;g&#039; et pour le reste du monde on ajoute ou soustrait à &#039;o&#039; (other). Par exemple pour ajouter les droits de lecture et d&#039;écriture à l&#039;utilisateur on tapera :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chmod u+rw /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
Et :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chmod go-rwx /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
Pour retirer tous les droits (rwx) au groupe (g) et aux autres (a).&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Remarque : à la place de u, g et o on peut utiliser &#039;a&#039; (all) qui veut dire qu&#039;on change les droits de tout le monde (utilisateur, groupe et reste du monde).&amp;lt;/div&amp;gt;&lt;br /&gt;
Il faut savoir que la commande peut s&#039;appliquer de manière récursive (c&#039;est bien pratique pour les répertoires), en lui passant l&#039;argument &#039;-R&#039; et qu&#039;à la place du droit &#039;x&#039;, on peut présiser &#039;X&#039; (majuscule) ce qui signifie que parmi les fichiers et répertoires dont on modifiera les droits d&#039;exécution, seuls les répertoires sont concernés. Ainsi :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chmod -R u+rwX /chemin/vers/repertoire &amp;lt;/div&amp;gt;&lt;br /&gt;
rendra tous les fichiers contenus dans ce répertoire (ainsi que dans tous les sous-répertoires de celui-ci) lisibles et écrivables et que tous les sous-répertoires (et leurs sous-répertoires) seront &#039;navigables&#039; (le droit d&#039;exécution pour un répertoire autorise à se rendre dans le dit répertoire).&lt;br /&gt;
&lt;br /&gt;
=== La propriété : &amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Les droits de propriétés sont très simples à modifier. Il suffit de donner le nom du nouveau possesseur (et éventuellement le nom du nouveau groupe) et le nom du fichier. Ainsi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chown username /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donne le fichier &amp;lt;code&amp;gt;/chemin/vers/fichier&amp;lt;/code&amp;gt; à l&#039;utilisateur &#039;username&#039;. Et :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chown username.groupe /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donne le fichier &amp;lt;code&amp;gt;/chemin/vers/fichier&amp;lt;/code&amp;gt; à l&#039;utilisateur &#039;username&#039; et au groupe &#039;groupe&#039;. Comme pour &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; &#039;&#039;&#039;le paramétre &#039;-R&#039; permet de rendre récursive&#039;&#039;&#039; l&#039;application de la nouvelle propriété &#039;&#039;&#039;(i.e. répertoires et sous-répertoires)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Le groupe : &amp;lt;code&amp;gt;chgrp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Le changement de groupe uniquement peut être obtenu par :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; [username@localhost ~] $ chgrp groupe /chemin/vers/fichier &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
qui donne &amp;lt;code&amp;gt;/chemin/vers/fichier&amp;lt;/code&amp;gt; au groupe &#039;groupe&#039;. L&#039;argument &#039;-R&#039; rend cette application récursive.&lt;br /&gt;
&lt;br /&gt;
=== Interface graphique ===&lt;br /&gt;
&lt;br /&gt;
Dans votre gestionnaire de fichiers préféré, sous KDE ou Gnome par exemple, vous pouvez consulter et modifier les permissions sur un fichier en affichant la boîte de dialogue &amp;quot;Propriétés&amp;quot; du fichier/répertoire (en général par un clic droit).&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin... ==&lt;br /&gt;
===SUID et GUID===&lt;br /&gt;
Il existe encore deux types de droits (en fait 3 mais le troisième est devenu obsolète) : &#039;s&#039; (SUID bit) et &#039;g&#039; (SGID bit). Si l&#039;on active le SUID bit d&#039;un programme, il s&#039;exécute sur le compte du possesseur du fichier (si c&#039;est root, sur le compte de root, d&#039;où un danger potentiel de sécurité). Si l&#039;on active le SGID bit, c&#039;est sur le compte de l&#039;utilisateur normal, mais en tant que membre du groupe du fichier. Cela rend un fichier exécutable. &amp;lt;br /&amp;gt;À ce propos consultez l&#039;article [../dev/suid_scripts.php3 SUID Scripts] par Xavier GARREAU sur Léa.&lt;br /&gt;
&lt;br /&gt;
Ces droits s&#039;octroient de la même manière que les autres. Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# chmod +s /usr/bin/xmms&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fera en sorte que xmms puisse obtenir les privilèges de root (le fichier &amp;lt;code&amp;gt;/usr/bin/xmms&amp;lt;/code&amp;gt; appartenant à root. Un &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; sur le fichier donnera ensuite :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;-rw&#039;&#039;&#039;s&#039;&#039;&#039;r-xr--    1 root     root      172812 dec  12 12:12 xmms&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce cas particulier, cela permet à xmms d&#039;obtenir une priorité temps réel qui peut être nécessaire pour un son parfait.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Les permissions peuvent se montrer limitées et ne permettent pas une gestion fine de certaines situations dans lesquelles un même fichier doit présenter des permissions différentes pour plusieurs utilisateurs. En effet, on ne peut définir normalement qu&#039;un seul propriétaire et un seul groupe, opposés à un unique « tout le monde ».&lt;br /&gt;
&lt;br /&gt;
Les [[ACL]] permettent de dépasser cette limitation en attribuant à un fichier des permissions différentes selon l&#039;utilisateur (rw pour &#039;&#039;utilisateur1&#039;&#039;, rwx pour &#039;&#039;utilisateur2&#039;&#039;, &#039;&#039;r&#039;&#039; pour &#039;&#039;utilisateur3&#039;&#039;, etc.).&lt;br /&gt;
&lt;br /&gt;
Consulter l&#039;article requis pour plus de détails.&lt;br /&gt;
&lt;br /&gt;
===Attributs étendus===&lt;br /&gt;
Les [[systèmes de fichiers]] &#039;&#039;ext2&#039;&#039; et &#039;&#039;ext3&#039;&#039; permettent l&#039;ajout d&#039;[[attributs étendus]] s&#039;apparentant aux permissions.&lt;br /&gt;
&lt;br /&gt;
Consulter l&#039;article requis pour plus de détails.&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 10/01/2000, Jean-Christophe Cardot&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Anthony</name></author>
	</entry>
</feed>