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 | ||
doc:obsolete:apache [03/07/2014 00:06] 127.0.0.1 modification externe |
— (Version actuelle) | ||
---|---|---|---|
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 : \\ | ||
- | \\ | ||
- | {{/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 : | ||
- | {{/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. | ||
- | |||
- | Entrez simplement la ligne suivante : | ||
- | <code root>a2enmod rewrite</code> | ||
- | Et redémarrer apache2 | ||
- | <code root>service apache2 restart</code> | ||
- | |||
- | ===== 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 |