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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:obsolete:apache [24/07/2010 15:04] smolski |
doc:obsolete:apache [28/12/2013 12:21] MicP [Installation d'un serveur LAMP] orthgraphe et formatage |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== serveur apache ====== | ||
+ | Ou comment installer un serveur web. | ||
+ | |||
+ | **ATTENTION !** \\ | ||
+ | Tuto en GRANDE PARTIE obsolète. **smolski** le 05/01/2013 | ||
+ | * Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=2805 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | ===== Débutant, à savoir : ===== | ||
+ | |||
+ | Toutes les commandes qui ne commencent pas par ''$'' sont à faire dans un terminal **root**((voir : [[:doc:systeme:su|La commande su]])). | ||
+ | |||
+ | ===== Installation d'un serveur LAMP ===== | ||
+ | |||
+ | __**Distribution utilisée:**__ Debian stable | ||
+ | |||
+ | __**Pré-requis:**__ 1 ordinateur ou une machine virtuelle avec le port TCP 80 ouvert sur le réseau local (LAN) | ||
+ | |||
+ | __**Paquetage à installer:**__ apache2, php5, libapache2-mod-php5, mysql-server, mysql-client, php5-mysql | ||
+ | |||
+ | __**Note:**__ On considérera que le réseau local est ''192.168.0.0/24'', et que l'adresse IP du serveur ''apache'' est ''192.168.0.1'' | ||
+ | |||
+ | ==== Installation de apache2 + mysql + php5 ==== | ||
+ | |||
+ | Mettez à jour la liste des paquetages et votre système: | ||
+ | <code root>apt-get update && apt-get upgrade</code> | ||
+ | |||
+ | Tapez en console: | ||
+ | <code root>apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql</code> | ||
+ | |||
+ | Il faut ensuite confirmer les dépendances en tapant ''O'' ou ''Y'' selon la langue de votre système. | ||
+ | |||
+ | On vous demandera de définir un mot de passe pour l'administration du serveur de gestion de bases de données ''mysql''. | ||
+ | Renseignez-le à votre convenance. | ||
+ | |||
+ | === Pour démarrer le serveur : === | ||
+ | |||
+ | <code root>service apache2 start</code> | ||
+ | |||
+ | === Pour arrêter le serveur : === | ||
+ | |||
+ | <code root>service apache2 stop</code> | ||
+ | |||
+ | === Pour redémarrer le serveur === | ||
+ | |||
+ | À faire pour prendre en compte des modifications | ||
+ | <code root>service apache2 restart</code> | ||
+ | |||
+ | === Redémarrer un serveur en production intense === | ||
+ | Relancer apache sans interrompre son fonctionnement, utile si vous voulez juste faire prendre en compte les modifications de configuration et que votre serveur est en production : | ||
+ | <code root>service apache2 reload</code> | ||
+ | ==== Installation de modules complémentaires pour php5 ==== | ||
+ | |||
+ | <code root>apt-get install php-pear php5-cli php5-gd php5-xsl php5-mcrypt php5-curl php5-imap</code> | ||
+ | |||
+ | ==== Vérification ==== | ||
+ | |||
+ | Si vous êtes sur la machine locale, ouvrez votre navigateur internet et allez à l'URL : | ||
+ | * http://127.0.0.1/ | ||
+ | ou | ||
+ | * http://localhost/ | ||
+ | |||
+ | Et nous devons obtenir : \\ | ||
+ | \\ | ||
+ | {{http://images.debian-facile.org/file-Rc55b1dc4f1c12b08ba49582b21f2f0ee.png?300}} | ||
+ | |||
+ | ==== Tester php5 ==== | ||
+ | |||
+ | Nous allons tester l'installation de php5 en créant la page web ''phpinfo''. | ||
+ | |||
+ | Avec la commande [[:doc:systeme:cat]], créez le fichier ''/var/www/phpinfo.php'' ainsi : | ||
+ | <code user>cat > /var/www/phpinfo.php <<EOF | ||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | EOF</code> | ||
+ | |||
+ | Puis, vous relancez votre navigateur en indiquant l'adresse : ''http://localhost/phpinfo.php'' \\ | ||
+ | Ce qui donne : | ||
+ | {{http://images.debian-facile.org/file-R9ec00abdc2fe18c09b455627705bf3cc.png?300}} | ||
+ | |||
+ | ==== Quelques options du fichier php.ini ==== | ||
+ | |||
+ | Editez le fichier de configuration ''/etc/php/apache2/php.ini'' ainsi : | ||
+ | <code root> nano /etc/php/apache2/php.ini</code> | ||
+ | |||
+ | 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 désactivation : | ||
+ | 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ée, les erreurs sont affichées à l'écran. 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 à dé-commenter la ligne pour activer la fonction. | ||
+ | |||
+ | ==== Personnaliser les messages d'erreurs ==== | ||
+ | |||
+ | 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éfinie 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 choisie, on va utiliser la directive ''ErrorDocument''. Exemple : | ||
+ | ErrorDocument 404 /erreur/404.html | ||
+ | |||
+ | Ici, on redirige le visiteur vers une page nommée ''404.html'' se trouvant dans le répertoire ''erreur'' lui même à la racine du serveur. On peut très bien mettre l'adresse d'une page externe en mettant son adresse 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... | ||
+ | |||
+ | ==== Activer la prise en compte des fichiers ''.htaccess'' : ==== | ||
+ | Pour ce faire, nous allons modifier quelques fichiers afin d'ordonner au serveur ''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 | ||
+ | |||
+ | ==== Activer l'url rewriting ==== | ||
+ | |||
+ | |||
+ | 1) Avant toute chose, assurez vous d'avoir activé la prise en compte des fichiers ''htaccess''. Cf plus haut. | ||
+ | 2) Maintenant, il ne reste plus qu'à é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(); ?> | ||
+ | |||
+ | Ce script ''php'' exécuté dans votre navigateur vous montrera les détails de la configuration du serveur ''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 basique. 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 entrez l'adresse : ''http://localhost/test.html'' et si tout s'est bien passé, vous devriez voir apparaître le contenu de la page ''test.php''. | ||
+ | |||
+ | ===== mysql ===== | ||
+ | |||
+ | Voir : | ||
+ | * [[:doc:programmation:mysql]] | ||
+ | |||
+ | |||
+ | |||
+ | ===== phpmyadmin ===== | ||
+ | |||
+ | Voir : | ||
+ | * [[:doc:reseau:phpmyadmin]] | ||
+ | |||
+ | ===== Installation de apache par compilation des sources ===== | ||
+ | |||
+ | //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 .// | ||
+ | |||
+ | ==== I. Téléchargement des sources ==== | ||
+ | |||
+ | Commençons par télécharger les dernières sources disponibles depuis le site d'apache : | ||
+ | * http://apache.multidist.com/httpd/httpd-2.2.11.tar.gz | ||
+ | |||
+ | <code bash>$ cd /usr/local/src/</code> | ||
+ | <code bash>$ wget http://mirror.mkhelif.fr/apache/httpd/httpd-2.2.11.tar.gz</code> | ||
+ | <code bash>$ tar xzf httpd-2.2.11.tar.gz</code> | ||
+ | <code bash>$ rm -f httpd-2.2.11.tar.gz</code> | ||
+ | <code bash>$ cd httpd-2.2.11/</code> | ||
+ | |||
+ | |||
+ | ==== II Configuration avant compilation ==== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ==== III Compilation ==== | ||
+ | |||
+ | Nous y sommes , l'étape finale de cette installation manuelle, pour finir , deux commandes suffisent | ||
+ | |||
+ | make | ||
+ | |||
+ | puis | ||
+ | |||
+ | make install | ||
+ | |||
+ | |||
+ | ==== IV Après la compilation ==== | ||
+ | |||
+ | |||
+ | === Le fichier de configuration === | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | === Lancer apache au démarrage du serveur === | ||
+ | |||
+ | 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 | ||
+ | |||
+ | ==== Installation par compilation de php ==== | ||
+ | |||
+ | Voir : | ||
+ | * [[:doc:reseau:php:compiler | Compilation de php]] | ||
+ | |||
+ | |||
+ | ===== Sources et Remerciements ===== | ||
+ | |||
+ | * [[http://lindev.fr/|Lindev.fr]] | ||
+ | * http://doc.ubuntu-fr.org/lamp |