Tutoriel - Votre Serveur Local
Tutoriel - Votre Serveur Local
Tutoriel - Votre Serveur Local
com/informatique/tutoriels/votre-serveur-local)
Le gros de ce tuto concerne la mise en place du serveur. Dans la dernière partie, nous verrons
comment tirer profit du local, c'est le plus important après tout.
Préparons le terrain
Il s'agit d'être votre propre hébergeur, votre serveur. Celui-ci ne sera accessible que depuis les autres
ordinateurs connectés à votre réseau local par le même routeur que votre ordi (ce routeur est votre
QuelqueChoseQuelqueChose Box).
Mac OS X dispose d'un serveur intégré. Les deux solutions abordées dans ce tuto en utilisent les
ressources (pour en apprendre davantage, visitez le site o!iciel d'Apple
(http://www.apple.com/fr/server/macosx/)), mais par des moyens très di!érents. Avant de
poursuivre ce tuto, n'oubliez pas de vous rendre dans les Préférences Système, dans le panneau
Partage, puis "Partage WEB Personnel".
:
Notre objectif : pouvoir visualiser en local un site utilisant les technologies PHP et MySQL, ainsi
qu'Apache.
Passer à l'acte
Grosso-modo, vous disposez de 2 types de solutions.
Je me la coule douce
Cette solution consiste à télécharger MAMP ou tout autre logiciel pour installer votre serveur sur votre
Mac. C'est un peu ce que M@teo21 explique pour EasyPHP sur PC. La partie "MAMP" du tuto y est
consacrée.
Je bosse dur
Celle-ci va vous amener à bidouiller dans les /etc, les http.conf, et surtout à utiliser le terminal et les
commandes UNIX. Les trois dernières parties du tuto vous guideront dans ce labyrinthe Unixien ^^ .
On choisit quoi ?
C'est à vous de voir, nous allons étudier les deux possibilités, mais je ne vous cache pas ma
préférence pour la seconde ;) . Allez, commençons par apprendre comment installer MAMP.
MAMP
Le pour et le contre
MAMP présente surtout les avantages suivants :
au niveau de Mac OS, ce n'est pas très propre (nous verrons cela plus tard) ;
Je pense que MAMP s'adresse aux débutants en xHTML, PHP et MySQL qui n'ont pas envie de
s'encombrer de manipulations supplémentaires, et on les comprend ! :-°
Installation
Pour télécharger MAMP, par ici (http://www.living-e.de/en/products/The-
MAMP/download/download.php). Choisissez en fonction de votre processeur, faites bien attention.
Une fois l'image disque ouverte dans le Finder, glissez le dossier MAMP dans votre dossier
"Applications".
Ne déplacez JAMAIS MAMP du dossier "Applications", ou alors dites bye-bye à votre serveur
local !
Une fois la copie terminée, placez les fichiers de votre site dans le dossier "htdocs" de MAMP.
les deux voyants indiquent l'état d'Apache et de MySQL. Vert pour "OK, ça va pour moi !" et rouge
pour "Alerte (rouge ^^ ) !" ;
:
"Arrêter les serveurs" devient "Démarrer les serveurs" en fonction de leur état. Le nom des
boutons parle de lui-même ;
"Ouvrir la page d'accueil" pour contrôler MySQL, mais aussi voir votre site, ... ;
Utiliser MAMP
Les préférences
Cliquez sur "Préférences". Vous disposez de 4 onglets :
Apache : là non plus, rien à modifier. Assurez-vous que htdocs est bien sélectionné.
Enregistrez les modifications apportées en cliquant sur OK.
Utiliser MAMP
Ouvrez la page d'accueil. Normalement, votre navigateur charge l'URL "http://localhost:8888/". Cela
signifie : "Charge le site en local à partir du port 8888". Vous avez vu ? Je parle couramment l'URL ;) .
Accédons maintenant aux options proposées par MAMP en chargeant l'URL
"http://localhost:8888/MAMP/". L'interface s'ouvre devant vos yeux encore une fois ébahis o_O . La
première page est consacrée aux mots de passe à entrer dans vos requêtes MySQL. À présent, les
options intéressantes :
:
Les options de MAMP.
PhpInfo : toutes les informations au niveau de la configuration de PHP.
eAccelerator : réglages de cette option censée augmenter la vitesse d'exécution des scripts. Est-ce
vraiment e!icace, je ne sais pas, mais bon, autant la laisser active.
Activons le PHP
Enfin de l'action ! ;)
Nous commencerons par activer le PHP, puis nous installerons MySQL. Mais avant, quelques mises au
point siouplaît.
une certaine propreté du point de vue de l'OS : nous allons vraiment exploiter le potentiel d'OS X
et non pas le détourner comme avec MAMP ;
Précisons que cela peut être intéressant également si vous envisagez de vous investir dans les
serveurs par la suite : ce que vous apprendrez ne vous sera pas inutile :) .
:
Bien sûr, l'inconvénient d'une installation manuelle est qu'elle plus longue et surtout, qu'elle peut
être plus dangereuse. Toutefois, ne vous inquiétez pas, votre Mac n'explosera pas tant que vous
bidouillez uniquement votre serveur (ou envoyez-moi une photo de votre ordinateur cramé ;) ).
Il est évident que ce type d'installation est destiné à des personnes plus expérimentées ou tout
simplement intéressées. Vous savez que Mac OS X est réputé pour son interface graphique. Mais on
parle souvent moins du système fonctionnel qui se cache derrière tout ça : c'est UNIX, auquel vous
pouvez accéder grâce au Terminal (qui se trouve dans les utilitaires du dossier "Applications"). Nous
allons beaucoup nous en servir tout au long de ce tuto.
Je tiens à vous avertir que les réglages que nous allons e!ectuer ne correspondent pas à des réglages
de serveurs réels ! En e!et, ce n'est pas le but de ce tuto, je serai parfois un peu plus négligent avec la
sécurité.
La plupart des serveurs Unix se configurent à partir des dossiers /etc et /etc/httpd (en tout cas, c'est
ce qui se passe sous Mac OS). Les deux fichiers à connaître sont php.ini et httpd.conf.
Mais voilà : sur Mac OS, ces dossiers sont invisibles ! :o Heureusement, le terminal nous permet d'y
accéder simplement. Nous allons d'abord configurer le php.ini.
php.ini
Dans le terminal, nous allons ouvrir ce fichier avec la commande pico. Par défaut, ce fichier n'existe
pas. En revanche, les réglages par défaut du serveur sont stockés dans un fichier nommé
php.ini.default. Nous allons d'abord faire une copie de php.ini.default nommée php.ini.
On vous demande un mot de passe administrateur, entrez-le (ne vous inquiétez pas si des étoiles ne
s'a!ichent pas au fur et à mesure). Ouvrons notre php.ini fraîchement créé.
Un véritable éditeur de texte apparaît sous vos yeux ébahis (à mon avis, il est bien meilleur que
TextEdit) !
Dans cet éditeur, il faut faire défiler le texte à l'aide des flèches haut et bas, ou bien des raccourcis
clavier [Ctrl + V] pour descendre rapidement, ou [Ctrl + Y] pour remonter rapidement.
Nous allons modifier le php.ini en "descendant", et non pas par ordre d'importance. Il se peut
que vous n'ayez rien à changer. Dans ce cas, réjouissez-vous !
Cela pourrait brider des fonctions de PHP. Pour s'assurer que tout PHP est activé, rajoutez un point-
virgule devant disable_functions =. Cela transforme cette instruction en commentaire (les
commentaires dans les fichiers .ini commencent par ;).
; This directive allows you to disable certain classes for security reasons.
; It receives a comma-delimited list of class names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_classes =
De même, rajoutez un point virgule devant l'instruction disable_classes qui désactive certaines
classes du PHP.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = ... définit le temps maximum que prend l'exécution d'un script. Si cette limite
est dépassée, le script s'arrête.
max_input_time = ... définit plus ou moins les mêmes choses, nous n'entrerons pas dans les détails.
définit le temps maximum que prend l'exécution d'un script. Si cette limite est dépassée, le script
s'arrête.
max_input_time = ... définit plus ou moins les mêmes choses, nous n'entrerons pas dans les détails.
memory_limit = ... accorde de la mémoire pour exécuter le script. À vous de voir jusqu'à combien
vous êtes prêts à sacrifier !
Continuons ;)
Je vous conseille de le désactiver, si ce n'est pas déjà le cas, en remplaçant le On par O!. Le
register_globals concerne des problèmes de sécurité ou d'exécution du script, au niveau du contenu
des variables non-initialisées. Depuis le PHP 4.2.0, le réglage standard est sur O!, et c'est quand
même mieux comme ça. Pour plus de détails, consultez php.net (http://fr2.php.net/register_globals).
Étape 4 : MySQL
Descendez jusqu'à [MySQL].
Observons :p !
Vous allez voir plein de mysql.default_quelquechose :
_host : adresse par défaut du serveur MySQL, utilisé pour les connections avec la base de
données ;
Si vous ne voulez pas définir quoi que ce soit par défaut, ce qui est possible, rajoutez des points
virgules devant chaque instruction pour la rendre inopérante.
Une autre donnée intéressante peut être mysql.connect_timeout, pour définir le temps maximum
d'une requête SQL. Si elle dépasse le temps imparti (en secondes), alors la requête s'arrête. Par
défaut, la valeur est à 60 secondes.
httpd.conf
Nous allons enfin mettre en route le PHP ! Youpi ! À vos terminaux !
Example:
# LoadModule foo_module libexec/mod_foo.so
#LoadModule vhost_alias_module libexec/httpd/mod_vhost_alias.so
#LoadModule env_module libexec/httpd/mod_env.so
LoadModule config_log_module libexec/httpd/mod_log_config.so
Cette fois, comme nous sommes dans un .conf, les commentaires commencent par #. Pour activer ou
désactiver une bibliothèque, servez-vous du dièse !
La ligne
doit devenir
(enlevez le #).
Le httpd sur lequel je base mon tuto est relativement ancien. Vous pouvez donc très bien avoir
un php5, ou php3, ça dépend.
:
Toujours en descendant, trouvez la ligne :
#AddModule mod_php4.c
et débarrassez-vous du # !
Si vous souhaitez faire de l'URL Rewriting, faites de même en activant les modules :
puis
AddModule mod_rewrite.c
DocumentRoot "/Library/WebServer/Documents"
et remplacez ce chemin par celui qui vous plaît. Moi, j'ai par exemple choisi
"/Library/Webserver/Server".
Il se peut que votre chemin par défaut DocumentRoot soit di!érent, peu importe.
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Ces lignes correspondent aux options activées dans les dossiers où se trouve votre site. Tout dépend
de ce que vous voulez faire (ici, le serveur peut juste suivre des liens symboliques). Dans un premier
temps, mettez "All" pour tout activer (sauf MultiViews), comme ceci :
<Directory />
Options All
AllowOverride None
</Directory>
Dans la "vraie vie", il est déconseillé de mettre All. Il faudrait même interdire l'accès au dossier
(voir ci-dessous).
:
<Directory />
Order deny,allow
Deny from all
</Directory>
<Directory "/Library/WebServer/Documents">
doit aussi être changé par le nouveau chemin que vous avez choisi.
Laissez-la comme telle, ou remplacez par All si vous souhaitez être tranquilles :
Options All
Cette ligne vous permet de définir quelles sont les pages index validées (en précisant leurs
extensions). Vous pouvez aussi définir la priorité d'un index par rapport à un autre.
Par exemple, dans ce cas, si index.php, index.htm et index.html se trouvent dans le même dossier
"sdz", si je charge l'URL "http://localhost/sdz/", j'obtiendrai la page index.php, prioritaire par rapport
à index.html et index.htm. De même, si je supprime index.php, alors c'est index.htm qui s'a!ichera. À
vous de voir quel ordre vous convient, mais de préférence évitez de mélanger les index, ça ne fait pas
bon ménage.
par
:
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All
En réalité, MAMP fonctionne de la même manière, à la di!érence que ces fichiers ne se situent
pas dans /etc.
Relancer le serveur
Il faut, pour qu'Apache prenne en compte nos modifications, redémarrer le serveur.
.
Après ce brillant redémarrage, faites une copie des fichiers de votre site et mettez-les dans votre
dossier "Server", ou celui que vous avez choisi. Puis, dans votre navigateur chargez l'URL
"http://localhost/". De trois choses l'une. Soit votre page d'accueil s'a!iche et vous sautez au plafond,
soit vous ne voyez rien, et une erreur s'a!iche ou encore votre Mac prend feu, et vous me lynchez. :D
Normalement, tout doit fonctionner correctement. N'hésitez pas à recommencer la configuration du
httpd.conf en repartant du httpd.conf.default au besoin.
Il ne nous reste plus qu'à installer MySQL ! :D
Installons MySQL !
:
Je vous laisse sou!ler un petit peu :p !
C'est bon ? ^^
Histoire de vous remonter le moral : nous lâcherons le terminal pour cette partie. :)
On y va ?
Téléchargeons MySQL
Vous pouvez l'obtenir à cette adresse
(http://dev.mysql.com/downloads/mysql/5.0.html#downloads).
En bas de la page, il y a de quoi télécharger pour Mac OS X. Choisissez en fonction de votre OS X.x et
de votre processeur en version standard.
Il su!it ensuite d'ouvrir l'image disque et de la monter dans le Finder. Ouvrez les deux packages qui
s'y trouvent, puis ouvrez le panneau de Préférences Système s'y trouvant. Celui-ci s'installe alors,
comme ci-dessous :
Voilà :D !
phpMyAdmin
Nous allons installer phpMyAdmin comme gestionnaire MySQL. Téléchargez-le ici
(http://www.phpmyadmin.net/home_page/downloads.php), dans la langue de votre choix.
Choisissez bien la version qui correspond à votre OS.
À présent, dans ce fichier, vous pouvez spécifier votre configuration. Je vous recommande le modèle
minimaliste ci-dessous :
Enregistrez ce fichier, puis rafraîchissez la page dans votre navigateur : phpMyAdmin est lancé :) .
:
Un repos bien mérité
Le plus gros est fait ! :)
Maintenant, deux trois explications sur le local, dans le cas d'une installation manuelle.
Gestion du chmod
Dans le terminal (encore lui ! ;) ) tapez la commande chmod XXX chemin/dossier/truc/fichier.php. Par
exemple, je veux mettre le dossier sdz en chmod 777 :
Tantan ! :p
Créer un .htaccess
Utilisez la commande pico !
Exemple :
pico /Library/Webserver/Server/.htaccess
Je tape mes directives, puis je ferme ([Ctrl + X]). J'appuie sur "y", puis j'appuie sur Entrée pour valider
le nom de fichier (".htaccess"). Procédez de même pour un .htpassword par exemple ! :)
Localhost et autres
"http://localhost" vous permet d'accéder au serveur local de l'ordinateur sur lequel vous vous
trouvez. "http://leNomDeLOrdinateur.local" vous mène au serveur local d'un ordinateur en
particulier de votre réseau. De préférence, utilisez "http://NomDeLOrdinateur.local" plutôt que
localhost. Vous pouvez aussi entrer votre adresse IP locale.
Le nom de votre ordinateur est dans le terminal, au début des lignes de commande.
Ne pas confondre Terminal et Console, la console vous facilite simplement l'accès à une
commande du Terminal par le biais d'une interface graphique.
La Console se trouve elle aussi dans les Utilitaires de Mac OS. À son ouverture, voici ce que vous
obtenez :
:
La Console
Parcourez le chemin suivant, et penchons-nous sur error_log dans httpd (ça ne vous rappelle pas
quelque chose :D ?) :
Les logs !
Les erreurs
Error_log est un fichier qui stocke les erreurs enregistrées par le serveur sous la forme :
[notice] : c'est juste une remarque sur quelque chose de suspect, rien de bien grave ;
[warn] : attention ! C'est un avertissement. Ce n'est pas encore le bug total, mais il y a quand
même un problème de moindre importance ;
[boum] : votre serveur vient d'exploser :D (bien sûr, ça n'existe pas hein ?).
[Mon Jan 15 11:48:52 2007] [error] [client 127.0.0.1] File does not exist: /Li
brary/WebServer/Server/favicon.ico
Il s'agit d'un bug (pourquoi en notice, j'en sais rien :-° ) dû à Apache (plantage, redémarrage, ...).
Bref, toutes ces informations peuvent s'avérer nécessaires afin de localiser un problème quelconque
dans l'a!ichage d'une page, d'une requête, ...
Les requêtes
Ouvrez le fichier access_log. Il contient de nombreuses informations sur toutes les requêtes
e!ectuées par le serveur, sous la forme :
À présent, vous pouvez enfin tester votre site en local sur Mac tranquillement ! Bravo :D ! En espérant
vous avoir été utile...
De plus, vous avez maintenant une petite idée de ce qu'il faut bidouiller quand on a a!aire à un "vrai"
serveur, ainsi que des petites astuces bien utiles de temps à autre.
N'oubliez jamais que le terminal est votre ami ! ;)
Adieu (ou à bientôt ?), ô mac-user !
: