2 - Installation d'Apache et PHP
2.1 Apache
Apache est le serveur HTTP (le protocole de communication utilisé pour le web) le plus répandu. Il est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires (Perl, PHP, Python, Ruby, CGI, SSI, réécriture d'URL, négociation de contenu, etc).
Installation
Grâce à l'outil APT (ou équivalent sur d'autres distributions) :
Configuration
Tous les fichiers de configuration Apache sont stockés dans /etc/apache2/ :
Configuration générale (ancien httpd.conf)
Modules disponibles
Modules activés
Sites disponibles (contient default pour le site hébergé par défaut)
Sites activés
Afin d'activer les modules, utilisez a2enmod (Apache 2 Enable Module) suivi du nom du module. Ici activons mod_rewrite pour permettre la réécriture des URLs.
Afin d'activer un site dont la configuration est stockée dans sites-available, utilisez a2ensite (Apache 2 Enable Site) :
Pour désactiver un site, utilisez
. Pour désactiver un module, utilisez
Remarque : Ces actions sur les modules et les sites créent un lien symbolique dans le répertoire enabled vers le fichier contenu dans available, par exemple :
et l'effacent pour le désactiver.
Afin de définir les fichiers affichés par défaut (index) dans un répertoire, éditez /etc/apache2/mods-available/dir.conf et vérifiez la directive DirectoryIndex
Pour modifier l'adresse IP et le port d'écoute, éditez /etc/apache2/ports.conf (ou apache2.conf selon les configurations)
Editez /etc/apache2/apache2.conf pour modifier le nom du serveur si nécessaire et le faire correspondre à votre hostname :
Pour plus de sécurité, masquez l'identification du serveur sur les pages d'erreur (message Apache Server + numéro de version).
Par défaut la racine du site web est stockée dans /var/www, ce à qui la directive DocumentRoot fait appel dans le fichier sites-available/default. Si vous utilisez un panel d'administration, celui-ci se chargera de créer dynamiquement les configurations Apache pour les différents sites (Virtual Hosts). Sinon, utilisez NameVirtualHost, ServerName et ServerAlias pour personnaliser les différents hôtes virtuels à héberger.
Après tout changement de configuration, n'oubliez pas de recharger la configuration :
Ou bien plus radicalement de redémarrer Apache :
Au besoin, consultez la liste des modules chargés grâce à :
2.2 PHP
Du côté de PHP, nous avons un langage puissant qui est répandu sur la plupart des serveurs web et utilisé par de nombreux outils, frameworks, CMS, et librairies variées.
Installation de la version 5
Grâce à APT :
Configuration
La configuration de PHP utilisé en ligne de commande est stockée dans /etc/php5/cli/php.ini. A ne pas confondre avec la configuration pour Apache qui nous intéresse et est stockée dans /etc/php5/apache2/php.ini. Voici quelques suggestions de modifications :
Référez-vous à la documentation PHP sur les directives php.ini pour une description complète.
Pour plus de sécurité, il est possible de désactiver des fonctions système. Cependant celles-ci peuvent être requises par certains scripts (notamment le panel d'administration). Ne le faites que si vous êtes sûr de leur non-emploi.
Pour activer la gestion de l'UTF-8 par PHP 5 (par défaut dans la version 6) :
N'oubliez pas de redémarrer Apache après toute modification de la configuration de PHP. En effet, celle-ci est chargée au démarrage.
Source: alsacrea
2.1 Apache
Apache est le serveur HTTP (le protocole de communication utilisé pour le web) le plus répandu. Il est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires (Perl, PHP, Python, Ruby, CGI, SSI, réécriture d'URL, négociation de contenu, etc).
Installation
Grâce à l'outil APT (ou équivalent sur d'autres distributions) :
Code:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Configuration
Tous les fichiers de configuration Apache sont stockés dans /etc/apache2/ :
Code:
apache2.conf
Code:
mods-available/
Code:
mods-enabled/
Code:
sites-available/
Code:
sites-enabled/
Afin d'activer les modules, utilisez a2enmod (Apache 2 Enable Module) suivi du nom du module. Ici activons mod_rewrite pour permettre la réécriture des URLs.
Code:
a2enmod rewrite
Code:
a2ensite
Code:
a2dissite
Code:
a2dismod
Code:
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
Afin de définir les fichiers affichés par défaut (index) dans un répertoire, éditez /etc/apache2/mods-available/dir.conf et vérifiez la directive DirectoryIndex
Code:
DirectoryIndex index.html index.php
Code:
Listen 127.0.0.1:80 Listen 127.0.0.1:443 # si https
Code:
ServerName "test.hackademics.com"
Code:
ServerSignature off ServerTokens Prod
Après tout changement de configuration, n'oubliez pas de recharger la configuration :
Code:
/etc/init.d/apache2 force-reload
Code:
/etc/init.d/apache2 restart
Code:
apache2ctl -t -D DUMP_MODULES
2.2 PHP
Du côté de PHP, nous avons un langage puissant qui est répandu sur la plupart des serveurs web et utilisé par de nombreux outils, frameworks, CMS, et librairies variées.
Installation de la version 5
Grâce à APT :
Code:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
La configuration de PHP utilisé en ligne de commande est stockée dans /etc/php5/cli/php.ini. A ne pas confondre avec la configuration pour Apache qui nous intéresse et est stockée dans /etc/php5/apache2/php.ini. Voici quelques suggestions de modifications :
Code:
max_execution_time = 30 max_input_time = 60 memory_limit = 64M upload_max_filesize = 10M register_globals = Off expose_php = Off
Pour plus de sécurité, il est possible de désactiver des fonctions système. Cependant celles-ci peuvent être requises par certains scripts (notamment le panel d'administration). Ne le faites que si vous êtes sûr de leur non-emploi.
Code:
disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd
Code:
mbstring.language=UTF-8 mbstring.internal_encoding=UTF-8 mbstring.http_input=UTF-8 mbstring.http_output=UTF-8 mbstring.detect_order=auto
Code:
/etc/init.d/apache2 force-reload