Annonce

Réduire
Aucune annonce.

[Serveur dédié] 2 - Apache et PHP : le serveur web

Réduire
Ceci est une discussion importante.
X
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel [Serveur dédié] 2 - Apache et PHP : le serveur web

    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) :

    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
    Configuration générale (ancien httpd.conf)
    Code:
    mods-available/
    Modules disponibles
    Code:
    mods-enabled/
    Modules activés
    Code:
    sites-available/
    Sites disponibles (contient default pour le site hébergé par défaut)
    Code:
    sites-enabled/
    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.

    Code:
    a2enmod rewrite
    Afin d'activer un site dont la configuration est stockée dans sites-available, utilisez a2ensite (Apache 2 Enable Site) :

    Code:
    a2ensite
    Pour désactiver un site, utilisez
    Code:
    a2dissite
    . Pour désactiver un module, utilisez
    Code:
    a2dismod
    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 :
    Code:
    ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
    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

    Code:
    DirectoryIndex index.html index.php
    Pour modifier l'adresse IP et le port d'écoute, éditez /etc/apache2/ports.conf (ou apache2.conf selon les configurations)

    Code:
    Listen 127.0.0.1:80
    Listen 127.0.0.1:443 # si https
    Editez /etc/apache2/apache2.conf pour modifier le nom du serveur si nécessaire et le faire correspondre à votre hostname :

    Code:
    ServerName "test.hackademics.com"
    Pour plus de sécurité, masquez l'identification du serveur sur les pages d'erreur (message Apache Server + numéro de version).

    Code:
    ServerSignature off
    ServerTokens Prod
    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 :

    Code:
    /etc/init.d/apache2 force-reload
    Ou bien plus radicalement de redémarrer Apache :

    Code:
    /etc/init.d/apache2 restart
    Au besoin, consultez la liste des modules chargés grâce à :

    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
    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 :

    Code:
    max_execution_time = 30
    max_input_time = 60
    memory_limit = 64M
    upload_max_filesize = 10M
    register_globals = Off
    expose_php = Off
    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.

    Code:
    disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd
    Pour activer la gestion de l'UTF-8 par PHP 5 (par défaut dans la version 6) :

    Code:
    mbstring.language=UTF-8
    mbstring.internal_encoding=UTF-8
    mbstring.http_input=UTF-8
    mbstring.http_output=UTF-8
    mbstring.detect_order=auto
    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.

    Code:
    /etc/init.d/apache2 force-reload
    Source: alsacrea


    Suivre Hackademics: Twitter, Google+, Facebook.
Chargement...
X