Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Ou comment installer un serveur web.
ATTENTION !
Tuto en GRANDE PARTIE obsolète. smolski le 05/01/2013
Toutes les commandes qui ne commencent pas par $
sont à faire dans un terminal root2).
Distribution utilisée: Debian stable
Pré-requis: 1 ordinateur ou une machine virtuelle avec le port TCP 80 ouvert sur le lan
Paquetage à installer: apache2, php5, libapache2-mod-php5, mysql-server, mysql-client, php5-mysql, phpmyadmin
Note: On considèrera une adresse réseau 192.168.0.0/24, et un serveur ayant l'ip 192.168.0.1
Tapez en console:
apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql
Il faut ensuite confirmer les dépendances en tapant O
ou Y
selon la langue de votre système.
Le mot de passe pour mysql vous sera automatiquement demandé, renseignez-le à votre convenance.
service apache2 start
service apache2 stop
À faire pour prendre en compte des modifications
service apache2 restart
Relancer apache sans interrompre son fonctionnement, utile si vous êtes en production :
service apache2 reload
apt-get install php-pear php5-cli php5-gd php5-xsl php5-mcrypt php5-curl php5-imap
Si vous êtes sur la machine locale, ouvrez votre navigateur internet et allez à l'URL :
ou
Nous allons tester l'installation de php5 en créant la page web phpinfo
.
Avec la commande cat, créez le fichier /var/www/phpinfo.php ainsi :
cat > /var/www/phpinfo.php <<EOF
<?php phpinfo(); ?> EOF
Puis, vous relancez l'url de votre navigateur en indiquant la page créée : phpinfo.php
ainsi :
Editez le fichier de configuration /etc/php/apache2/php.ini
ainsi :
nano /etc/php/apache2/php.ini
Activer les variables globales :
Depuis la version 4.2.0 de PHP, cette option est par défaut initialisée à OFF
et ce pour des raisons de sécurité.
Voici un lien expliquant la raison de cette desactivation :
manuel php
en root et recherchez la ligne commençant par :
register_globals
et remplacez off par on.
Ensuite :
error_reporting = E_ALL & ~E_NOTICE
avec cette configuration, seulement les avertissements dus à des erreurs seront affichés. Si vous voulez afficher tous les messages, enlevez le dernier paramètre ainsi :
error_reporting = E_ALL
utile lors du développement, mais préférable de le désactiver sur un serveur en prod.
display_errors = On
avec cette fonction activé, les erreurs sont affichés à l'ecran. Pour ne plus afficher les erreurs, remplacer on par off.
log_errors = On
sur on, ce paramètre enregistrera toutes les erreurs dans un fichier.
error_log = filename
ici on définit le nom du fichier de log en remplaçant filename par le chemin complet vers le fichier à écrire. Pensez à decommenter la ligne pour activer la fonction.
Si vous voulez offrir autre chose que les traditionnelles :
Not Found The requested URL /foru was not found on this server.
ou
Forbidden You don't have permission to access /.htaccess on this server.
et ainsi de suite, vous pouvez demander à apache de rediriger le visiteur sur une page défini sur laquelle vous préciserez ce que vous voulez lorsqu'il générera une erreur. pour ce faire, 2 possibilités s'offrent à nous : -soit définir les pages à afficher dans le fichier /etc/apache2/httpd.conf soit dans un fichier .htaccess à placer à la racine du serveur pour qu'il agisse partout. Pour ce faire, quelque soit la méthode choisi, on va utiliser la directive ErrorDocument. Exemple :
ErrorDocument 404 /erreur/404.html
ici, on redirige le visiteur vers une page nommé 404.html se trouvant dans le dossier erreur lui meme à la racine du serveur. On peut très bien mettre l'adresse d'une page externe en mettant son adesse complète genre http://www.lapage_a_afficher.html. Vous pouvez faire ceci pour chaque message d'erreur pouvant apparaître comme le 401, 402, 403, etc…
pour ce faire, nous allons modifier quelques fichiers afin d'ordonner à apache de prendre en compte les fichiers htaccess. Premier fichier à éditer,
/etc/apache2/sites-available/default
On va remplacer
AllowOverride None
par :
AllowOverride All
ceci est à effectuer pour les 2 premières apparitions de cette directive, c'est à dire, pour ce qui concerne /var/www seulement. On fait la même chose pour le fichier :
/etc/apache2/sites-enabled/000-default
1) Avant toute chose, assurez vous d'avoir activer la prise en compte des fichiers htaccess. Cf plus haut. 2) Maintenant, il ne reste plus qu'a éditer le fichier
/etc/apache2/httpd.conf
dans lequel on va ajouter à la fin :
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
cette ligne indique à apache de charger le module permettant la réécriture d'url à la volée. Pour vérifier que la modif a bien été prise en compte, vous pouvez créer un script php contenant ceci :
<?php phpinfo(); ?>
ceci une fois exécuter dans votre navigateur vous montrera les détails de la configuration d'apache. L'information qui nous intéresse se trouve dans le section apache2handler, dans la sous section Load modules vous devriez voir à la fin mod_rewrite ce qui signifie que le mode est bien activé. 3)Passons à la pratique : je ne m'étalerais pas sur la syntaxe à adopter pour la mise en place des redirections, je vais simplement donner un exemple basic. Commençons par créer un fichier php contenant un banal texte genre :
si je vois ce message c'est que l'url rewriting fonctionne bien
Mettez ce fichier à la racine de votre serveur et créez aussi un fichier .htaccess dans lequel vous allez mettre :
RewriteEngine on RewriteRule ^test\.html$ /test.php [L]
La première ligne demande l'activation du mod rewrite et celle d'après indique que lors d'une requête sur la page test.html, il faut renvoyer test.php . Une fois ceci fait, dans votre navigateur favoris tapez : http://localhost/test.html et si tout s'est bien passé, vous devriez voir apparaître le contenu de la page test.php.
Voir :
Voir :
Il est intéressant d'installer son serveur web de façon manuelle, afin de bénéficier des dernières versions stables , et d'optimiser l'utilisation ou non de certains modules afin d'améliorer les performances en générale .
Commençons par télécharger les dernières sources disponibles depuis le site d'apache :
$ cd /usr/local/src/
$ wget http://mirror.mkhelif.fr/apache/httpd/httpd-2.2.11.tar.gz
$ tar xzf httpd-2.2.11.tar.gz
$ rm -f httpd-2.2.11.tar.gz
$ cd httpd-2.2.11/
Il n'est pas nécessaire d'avoir tous les modules actifs , selon l'utilisation d'apache , vous pouvez spécifier quels sont les modules que vous souhaitez activer ou non , ainsi que de nombreux autres paramètres
Pour avoir la liste des paramètres lancez cette commande
./configure --help | less
Nous allons donc créer notre fichier de configuration , pour effectuer une compilation aux petits oignons
vim my_configure
Voici un exemple de ce fichier , je vous laisse lire la documentation d'apache , pour voir ce qui a été activé/désactivé , bien que le nom de ces paramètres sont assez parlant
#!/bin/sh
#optimisation pour la compilation export CC="gcc" export CFLAGS="-02"
#Config des sources pour l'env ./configure --prefix=/usr/local \ --enable-rewrite \ --enable-so \ --enable-cache \ --enable-mem-cache \ --enable-alias \ --enable-vhost-alias \ --enable-ssl=shared \ --disable-status \ --disable-cgi \ --disable-cgid \ --enable-unique-id \ --enable-ssl \
Nous allons ensuite changer le mode du fichier de configuration afin de pouvoir l'exécuter comme un script
chmod 700 my_configure
Enfin , nous allons exécuter notre petit script de configuration . En cas d'erreurs , il vous faudra peut être installer des librairies supplémentaires , celles-ci seront spécifiées dans le message d'erreur .
./my_configure
Si plus aucun message d'erreurs n'apparait , on peut passer à l'étape suivante.
Nous y sommes , l'étape finale de cette installation manuelle, pour finir , deux commandes suffisent
make
puis
make install
Une fois installé , apache se trouve à l'endroit spécifié par la ligne prefix de notre fichier de configuration . Le fichier de configuration d'apache se trouve donc dans /usr/local/conf/httpd.conf
vim /usr/local/conf/httpd.conf
Le script apachectl est conçu pour fonctionner comme un script d'initialisation SysV standard; il accepte les arguments start, restart, et stop , nous allons donc pouvoir directement le mettre dans le répertoire init.d
ln -s /usr/local/bin/apachectl /etc/init.d/apache2 update-rc.d apache2 default
Voir :