Dernière modif 27.05.01
L'url pour récupérer Apache est www.apache.org,
vous y trouverez la version 1.3.20 d'Apache. Pour PHP4.0.5,
l'url est www.php.net. Pour l'installation
de MySQL reportez vous d'abord à la page
qui lui est consacrée.
Après installation, le serveur est lancé par défaut,
à ce propos on ne sait pas s'il est lancé ou pas, il n'y
a aucune indication, ce qui est un peu génant. Sous le répertoire
c:\Program
Files\Apache Group\Apache on trouve l'exécutable
apache.exe,
mais aussi les répertoires suivants:
- bin, contient d'autres exécutables, dont celui nécessaire
pour créer des mots de passe pour les pages à accés
réservé (htpasswd.exe),
- cgi-bin, contient les scripts CGI (aucun par défaut),
- conf, contient les fichiers de configuration d'Apache
dont le plus important est httpd.conf,
- htdocs, contient les fichiers HTML de la page d'accueil
d'Apache, on y trouve notamment la documentation,
- icons, contient une tonne d'icônes qui servent à
identifier les fichiers par leur type (exe, image, ...),
- logs, contient les fichiers de log d'Apache, dont access.log
avec le détail des accés au serveur web, error.log
pour les erreurs, attention ces fichiers croissent régulièrement,
vous devez faire le ménage régulièrement. Ce répertoire
contient aussi le fichier http.pid, il sert à ne pas lancer
deux serveurs Apache en même temps.
- modules, contient des dlls pour rajouter des options à
Apache,
comme la fonction proxy cache par exemple,
- proxy, si vous activez l'option proxy pour partager la connexion
internet, ce répertoire contient le cache.
NOTE Si vous upgradez d'une version précédente,
vos fichiers de config ne seront pas écrasés mais utilisés
par défaut.
ServerName machine.votredomaine
Avec machine.votredomaine défini lors de l'install. Pour une machine sans carte réseau, il faudra lire :
ServerName localhost
ATTENTION: Si vous avez Sambar Server qui tourne sur votre machine, vous aurez des problèmes car Sambar et Apache utilise le même port, dans ce cas stoppez Sambar. Si Sambar vous sert que de proxy pour partager votre connexion, je vous conseille de désinstaller Sambar et de vous servir de la fonctionnalité proxy d'Apache. Si vous voulez continuer d'utiliser Sambar avec Apache choisissez un autre port pour Apache (3021 par exemple). Pour cela modifiez la ligne
Port 80
Maintenant pour voir si tout marche bien, d'un poste de votre réseau, de votre navigateur préféré, configuré tel que décrit dans les paragraphes configuration d'un poste client sous netscape ou internet explorer sans l'utilisation d'un proxy, tapez dans le champ URL, http://localhost ou http://obelix si votre poste s'appele obelix. Une page d'accueil d'Apache avec la titre: Test page for Apache Installation
Pour info les pages par défaut se trouve dans c:\Program Files\Apache Group\Apache\htdocs. Ce chemin est défini par la variable DocumentRoot, exemple dans le fichier httpd.conf
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
Si vous voulez que la page d'accueil pointe à un autre endroit, modifiez cette variable.
Pour être complet vous pouvez dire que le français doit être la langue par défaut pour cela vous devez modifier la ligne suivante pour que le fr soit en premier :
LanguagePriority fr en da nl et de el it pt ltz ca es sv
Si jamais Apache n'est pas lancé, vous disposez de la commande
dans le menu Démarrer->Programmes->Apache httpd Server->Control
Apache Server->Start
Dans le répertoire c:\Program Files\Apache Group\php4,
prennez le fichier php.ini-dist, copiez le sous c:\windows
et renommez le php.ini.
Prenez, à présent, dans le même répertoire
la dll php4ts.dll et copiez la dans c:\windows\system.
A présent nous allons modifier le fichier httpd.conf d'Apache, après la ligne
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"
Rajouter
ScriptAlias /php4/ "C:/Program Files/Apache Group/php4/"
Maintenant modifier les lignes suivantes:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
Pour lire
AddType application/x-httpd-php .phtml .php .php .php4
AddType application/x-httpd-php-source .phps
On vient d'indiquer d'interpréter les fichiers .php, .php et .php4 comme des fichiers PHP. Maintenant juste après le commentaire au niveau du commentaire suivant
# Action lets you define media types that will execute a script whenever
# a matching file is called. This eliminates the need for repeated
URL
# pathnames for oft-used CGI file processors.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
Rajouter
Action application/x-httpd-php /php4/php.exe
php4 correspond au nom du répertoire définit par le paramètre ScriptAlias plus haut dans le fichier.
Bon maintenant pour voir si tout marche bien, on va créer un fichier info.php dans le répertoire c:\Program Files\Apache Group\Apache\htdocs contenant
<?
phpinfo();
?>
Relancer Apache pour prendre en compte les modifications, dans le menu Démarrer
Programmes-> Apache httpd Server-> Control Apache Server -> Restart
Une fois Apache lancé, sur un poste de votre réseau, taper à présent au niveau du champ URL de votre navigateur préféré (configuré tel que décrit dans les 2 paragraphes suivants sans l'utilisation d'un proxy) http://obelix/info.php si votre poste Apache s'appelle obelix. Une page d'accueil apparaît avec une tonne d'info sur votre config, dont en entête le tableau suivant:
Maintenant pour qu'Apache considère que les fichiers index.php, index.php ou index.php4 puissent être des points d'entrée, on modifiera la ligne suivante dans httpd.conf :
DirectoryIndex index.html
Pour lire
DirectoryIndex index.html index.htm index.php index.php index.php4
Relancer Apache à présent.
Sans proxy
- Sélectionnez Direct connection to the internet, puis
cliquez sur le bouton OK,
- Cliquez sur OK,
Avec proxy pour accéder aussi au web via Apache muni de
la fonction proxy
- Sélectionner Manual proxy configuration, puis View
- pour FTP, Gopher, HTTP, Security, WAIS
proxy, indiquer le nom de la machine Apache puis au niveau des
différents ports 80, laissez les autres paramètres par défaut,
puis OK,
- Cliquez sur OK.
Sans proxy
Choisissez Connection direction à Internet
Avec proxy pour accéder aussi au web via Apache muni de
la fonction proxy
- Cliquez sur Se connecter à Internet en utilisant un serveur
proxy,
- Cliquez sur le bouton Avancés...,
- Au niveau de la fenêtre Paramètres Proxy, cliquez
sur Utiliser le même proxy pour tous les protocoles,
- Dans le champ HTTP, saisissez le nom de votre serveur Apache,
puis 80 dans le champ port, cliquez sur OK,
- Cliquez sur OK, ça y est c'est terminé.
# Proxy Server directives. Uncomment the following line to
# enable the proxy server:
#
#ProxyRequests On
# <Directory proxy:*>
# Order deny,allow
# Deny from all
# Allow from votredomaine
# </Directory>
#
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing
Via: headers)
# Set to one of: Off | On | Full | Block
#
#ProxyVia On
#
# To enable the cache as well, edit and uncomment the following
lines:
# (no cacheing without CacheRoot)
#
#CacheRoot "C:/Program Files/Apache Group/Apache/proxy"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
Modifiez les lignes pour lire:
# Proxy Server directives. Uncomment the following line to
# enable the proxy server:
#
ProxyRequests On
# pour limiter l'accès au proxy aux seules machines de votre
domaine
# dans le doute vous pouvez laisser les 5 lignes suivantes en commentaire
# (tout le monde pourra alors utiliser le proxy)
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from votredomaine
</Directory>
#
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing
Via: headers)
# Set to one of: Off | On | Full | Block
#
#ProxyVia On
#
# To enable the cache as well, edit and uncomment the following
lines:
# (no cacheing without CacheRoot)
#
CacheRoot "C:/Program Files/Apache Group/Apache/proxy"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
# vous pouvez spécifier les domaines à ne pas sauvegarder
dans le cache (par exemple ceux qui contiennent une info qui se périme
très vite)
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
Le chemin indiqué dans CacheRoot devant correspondre bien sûr à l'emplacement d'Apache sur votre système. La taille du cache (CacheSize) est indiqué en Mo par défaut elle est fixée à 5 Mo.
Par ailleurs on va décommenter la ligne suivante plus haut dans le fichier :
#LoadModule proxy_module modules/mod_proxy.so
Pour lire
LoadModule proxy_module modules/mod_proxy.so
Relancer Apache
Démarrer->Programmes->Apache httpd Server->Control Apache Server -> Restart
Maintenant configurer votre navigateur pour se connecter à internet en utilisant un proxy tel que décrit dans les chapitres correspondants, vous indiquerez votre serveur Apache comme proxy.
NOTE Si vous utilisiez auparavant Sambar
Server en tant que proxy pour partager votre connexion internet, désinstaller
le, il ne vous est plus utile.
Alias /icons/ "C:/Program Files/Apache Group/Apache/icons/"
Cette ligne:
Alias /monsite "C:/Mes Documents/mon site internet/"
Noter bien que c'est bien / qu'il faut mettre et non pas \
(à
la UNIX, et non à la Windows), n'oubliez pas le /
à
la fin. Relancer Apache, à présent pour accéder
aux pages présentes dans votre répertoire mon site internet,
il suffira de taper comme URL http://obelix/monsite
Pour cela, si 192.168.13.10 est l'adresse IP de votre serveur Apache qui a pour nom obelix, si vos postes ne sont pas client DNS, dans ce cas rajouter dans leurs fichiers c:\windows\hosts la ligne suivante:
192.168.13.10 www.toto.net
Si vos postes sont clients DNS, dans ce cas sur le serveur DNS(s'il est chez vous...), rajouter l'entrée correspondante. Maintenant on modifiera les lignes suivantes:
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log
common
#</VirtualHost>
Pour lire:
#NameVirtualHost 12.34.56.78:80
NameVirtualHost 192.168.13.10
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
#
<VirtualHost 192.168.13.10>
# ServerAdmin webmaster@host.some_domain.com
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
ServerName obelix
ErrorLog logs/obelix-error_log
CustomLog logs/obelix-access_log common
</VirtualHost>
<VirtualHost 192.168.13.10>
# ServerAdmin webmaster@host.some_domain.com
DocumentRoot "C:/Mes Documents/mon site internet"
ServerName www.toto.net
ErrorLog logs/toto-error_log
CustomLog logs/toto-access_log common
</VirtualHost>
DocumentRoot indique l'endroit où chercher les pages HTML, notez bien qu'on a le / (à la UNIX) et non le \ (à la windows).
ErrorLog et CustomLog permettent d'avoir des fichiers
personnalisés de log pour vos sites virtuels. Relancez Apache,
et d'un navigateur taper http://www.toto.net et vos pages devraient
apparaître.
AuthUserFile "c:\Program Files\Apache Group\Apache\auth\htpasswd.txt"
AuthGroupFile "c:\Program Files\Apache Group\Apache\auth\htgroup.txt"
AuthName "Section restreinte"
AuthType Basic
require group autorise
Admettons qu'on veuille permettre l'accés aux utilisateurs qui s'identifieront sous le nom d'olivier et de veronique qui font parti d'un groupe de personnes autorisées.
A présent créer un répertoire c:\Program Files\Apache Group\Apache\auth. A partir d'une fenêtre DOS on se placera sous le répertoire c:\Program Files\Apache Group\Apache\bin et on tapera pour créer un mot de passe pour olivier :
htpasswd -c ..\auth\htpasswd.txt olivier
Automatically using MD5 format on windows
New password:*********
Re-Type new password:
Adding password for user olivier
L'option -c sert à créer le fichier htpasswd.txt qui contiendra la liste des personnes ainsi que leur mot de passe crypté.
Pour rajouter un autre utilisateur il suffira de taper htpasswd sans l'option de création :
htpasswd ..\auth\htpasswd.txt veronique
Automatically using MD5 format on windows
New password:*********
Re-Type new password:
Adding password for user veronique
Rajoutez autant de personnes que vous voulez
A présent sous c:\Program Files\Apache Group\Apache\auth créer un fichier htgroup.txt contenant:
autorise: olivier veronique
Ce fichier définit des groupes, avec une liste de personnes pour
chaque groupe, dans notre fichier .htaccess on autorise uniquement
les personnes du groupe autorise à pouvoir se connecter.
UserDir "c:/www/"
Avec comme toujours le / à la place du \, et sans oublier le / à la fin. Relancez Apache, pour accéder aux pages de toto, il faudra taper comme URL: http://obelix/~toto
<?
$serveur="localhost";
$login="olivier";
$pass="mot-de-passe";
$base="essai";
$table="coord";
$id=MYSQL_CONNECT($serveur,$login,$pass);
mysql_select_db($base);
$nom="hoarau";
$prenom="olivier";
$email="olivier.hoarau@fnac.net";
$query="INSERT INTO $table VALUES('$nom','$prenom','$email')";
$result=mysql_query($query,$id);
echo "Saisie terminée";
?>
Placer ce script dans c:\www\olivier et appeler le bd1.php
Dans votre navigateur préféré, dans le champ URL saisissez
http://obelix/~olivier/bd1.php
A priori y a pas grand chose qui s'est passé, maintenant connectez vous à votre base essai dans une une fenêtre DOS (en se plaçant sous c:\Program Files\mysql\bin):
mysql -u olivier -p essai
Enter password:******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 3.23-21-beta
Type 'help' for help.
mysql> SELECT * FROM coord;
+-----+-------+--------------------+
| nom | prenom | email
|
+-----+-------+--------------------+
| hoarau | olivier | olivier.hoarau@fnac.net |
+-----+-------+--------------------+
1 row in set (0.00 sec)
C'est bon ça fonctionne. Passons à un exemple plus pointu, on va entrer les informations concernant vos visiteurs dans une base MySQL, créer la table telle que décrite dans l'exemple 2 de la page MySQL, créer maintenant le script PHP.
<?
$page=getenv("HTTP_REFERER");
$ip=getenv( "REMOTE_ADDR");
$host=gethostbyaddr($ip);
$d = date("d/m/Y H:i:s");
$expl=getenv("HTTP_USER_AGENT");
$serveur="localhost";
$login="olivier";
$pass="mot-de-passe";
$base="essai";
$table="ref";
$id=MYSQL_CONNECT($serveur,$login,$pass);
mysql_select_db($base);
$query="INSERT INTO $table VALUES('$d','$host','$ip','$expl','$page')";
$result=mysql_query($query,$id);
echo "$d $host($ip) $expl $page";
?>
Nommez ce script bd2.php et placez le dans c:\www\olivier. Dans votre navigateur préféré tapez dans le champ URL
http://obelix/~olivier/bd2.php
Vous devriez voir la date, le nom de votre machine avec son adresse IP et des infos sur votre OS et votre navigateur. A présent connectons nous à la base:
mysql -u olivier -p essai
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 3.22.32
Type 'help' for help.
mysql> SELECT * FROM ref;
+---------------+---------------+----------+-----------------+-----+
| date
| host
| ip
| os
| page |
+---------------+---------------+----------+-----------------+-----+
| 24/04/2000 08:34:05 | asterix.armoric.bz | 192.168.13.11
| Mozilla/4.61 [en] (X |
|
+---------------+---------------+----------+-----------------+-----+
1 row in set (0.00 sec)
C'est bon le visiteur a bien été pris en compte.
L'archive se présente sous la forme d'un tarball phpMyAdmin_2_1_0.tar.gz,qu'on peut décompresser avec Winzip. Décompressez l'archive dans un répertoire (c:\Program Files chez moi). Cela va créer dans le répertoire de décompression un répertoire phpMyAdmin. Dans ce répertoire on va éditer le fichier config.inc.php, au lieu de root comme utilisateur, on va saisir l'utilisateur qu'on a créé précédemment en installant MySQL.
$cfgServers[1]['adv_auth'] = false;
// Use advanced authentication?
$cfgServers[1]['stduser'] = 'root';
// MySQL standard user (only needed with advanced auth)
$cfgServers[1]['stdpass'] = '';
// MySQL standard password (only needed with advanced auth)
$cfgServers[1]['user'] = 'olivier';
// MySQL user (only needed with basic auth)
$cfgServers[1]['password'] = 'mot-de-passe-en-clair';
// MySQL password (only needed with basic auth)
Et maintenant pour avoir la version française, dans le même fichier au lieu de:
require("english.inc.php");
On va mettre
require("french.inc.php");
NOTE Si vous avez des problèmes de retour chariot avec Notepad, servez vous d'Edit dans une fenêtre DOS.
Maintenant on doit rendre accessible le répertoire phpMyAdmin d'une page web, pour cela deux solutions on va créer un hôte virtuel pointant vers c:\Program Files\phpMyAdmin qu'on appelera www.sql.net par exemple. Pour cela dans le fichier httpd.conf d'Apache on rajoutera
<VirtualHost 192.168.13.10>
# ServerAdmin webmaster@host.some_domain.com
DocumentRoot "C:/Program Files/phpMyAdmin"
ServerName www.sql.net
ErrorLog logs/sql-error_log
CustomLog logs/sql-access_log common
</VirtualHost>
N'oubliez pas de rajouter www.sql.net dans votre fichier hosts.
NOTE Si ça vous gène que n'importe qui d'un navigateur puisse aller dans le répertore phpMyAdmin, mettez y des restrictions d'accès avec un fichier .htaccess.
Avec la solution hôte virtuel, à partir d'un navigateur quand on sélectionne www.sql.net on tombe sur une fenêtre avec frame avec à gauche la liste des bases de données disponibles (on retrouve les deux bases de données créées précedemment dans nos exemples) et à droite, le menu suivant:
On y retrouve notre base essai avec ses deux tables coord
et ref. Si on clique dessus coord, l'écran suivant
apparaît :
A partir de cette interface vous pouvez complètement administrer
vos bases.
[Retour page d'accueil FUNIX] |