LAMP : une nouvelle infrastructure LAMP 1. Les composantes Linux Apache MySQL Php : fortement lié à Apache (module) 2. Les variantes Pour Windows : EasyPHP, XAMP... Serveurs web : lighttpd... BdD SQL : PostgreSQL, SQLite, Oracle... Langages interprétés : Perl, Python, Ruby... Installation Une architecture modulaire Documentation : http://localhost/manual/en/mod/ 1. Apache 2.2.x 2. MySQL 5.0 ou 5.1 3. Php 5.2 ou 5.3 4. PhpMyAdmin 2.11.x ou 3.2.x 1. aptitude install apache2.2 apache2-doc >... 2. aptitude install phpmyadmin > PHP, MySQL... Cinq niveaux d'intégration des composants 1. Core 2. MPM 3. Base 4. Extension 5. Experimental En pratique (Debian) Répertoires de conguration mods-available module.load nom et chier à charger(.so) module.conf conguration (optionnel) Commandes : a2enmod et a2dismod
MPM - Multi-Processing Module Ordonnancement des réponses aux requêtes Conguration Modules sans threads (classiques) mpm_prefork (défaut) : le plus stable mpm_itk (contrib.) : variante, un utilisateur par vhost Modules avec threads (processus légers) mpm_worker : multi-threads + multi-processus plus léger, plus réactif mpm_event (var. expérimentale) selon système incompatible avec mod_ssl Remarques modules dépendants du système d'exploitation et du matériel Optimisation : plusieurs paramètres selon le MPM choisi (4 à 6) Quatre niveaux de contextes 1. Serveur (server cong) 2. Hôte virtuel (virtual host) 3. Directory (cf plus bas) 4..htaccess (selon AllowOverride) Sections de niveau Directory Files, FilesMatch : chier Directory, DirectoryMatch : répertoire Location, LocationMatch : URL Proxy, ProxyMatch Résolution des URL Contenus dynamiques Base : DocumentRoot Module mod_alias 1. Redirect, RedirectMatch : URL-path -> URL 2. Alias, AliasMatch : URL-path -> FS 3. ScriptAlias, ScriptAliasMatch : URL-path -> FS Module mod_rewrite... Moteur de ré-écriture URL -> URL Trois méthodes principales CGI (Common Gateway Interface) + FastCGI... Modules Apache : mod_perl, mod_php... Méthodes internes à Apache : mod_info, mod_status Gestion des scripts CGI Dénitions des Handlers SetHandler (dans une section) (core) AddHandler, RemoveHandler <handler> <.ext> (modmime) Dénition des actions (mod_action) Action <handler mime-type> <script-cgi> (modaction)script <methode=put GET> <script-cgi>(modaction) Voir aussi : ScriptAlias, ScriptAliasMatch Documentation :.../handler.html
Authentication et autorisation Gestion multi-sites mod_auth mod_authn_* : authentications spéciques mod_authz_* : autorisations spéciques Deux usages principaux hôtes virtuels (plusieurs noms sur un serveur) HTTPS : sites sécurisés (HTTP over SSL) En pratique (Debian) Deux répertoires : sites-available et sites-enabled Commandes : a2ensite et a2dissite Directive de section <VirtualHost> Diagnostic Les logs Apache ErrorLog + LogLevel CustomLog + LogFormat Module mod_status apache2ctl [status fullstatus] page http://localhost/server-status (ou URL personnalisée) Module mod_info page http://localhost/server-info (ou URL personnalisée)
PHP - le langage PHP - conguration et administration php.ini Les extensions PHP PEAR (PHP Extension and Application Repository) : composants PHP PECL (PHP Extension Community Library) : composants compilés (C) PHP - diagnostic phpinfo() php5 CLI (Command Line Interface) Débogage : xdebug : administration et développement
MySQL un moteur de BD relationnelle un administrateur des utilisateurs des logs... PhpMyAdmin
Applications web Debian : Mediawiki à la main : GLPI