UbuntuTrusty:ServeurWeb

De Wiki Fred
Aller à : navigation, rechercher
Serveur Web Apache - PHP - MySQL


Apache


Avant de commencer


Apache repose sur un moteur Multi-Processing Method (MPM). C'est celui-ci qui détermine quel mécanisme est utilisé par Apache pour gérer les connections multiples.

Sous Linux, les principaux moteurs sont (Documentation complète) :

  • MPM prefork
  • MPM worker
  • MPM event (depuis Apache 2.4)


Le gestionnaire de paquets d'Ubuntu 14.04 installe Apache 2 avec le MPM event.

Pour connaître le MPM utilisé par Apache :
/usr/sbin/apache2 -V
 


Installation


  • apt-get install apache2
    


  • Premier test
Trustyapache01.png


Configuration


Tous les fichiers de configuration se trouvent dans /etc/apache2/
Par défaut, le document root est /var/www/html
Voir Documentation complète
 
Pour redémarrer Apache :
service apache2 restart
 
  • Pour éviter le message AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
  • Créer un fichier fqdn dans /etc/apache2/conf.d/ contenant
ServerName localhost
Pour Ubuntu 14.04
  • Créer un fichier fqdn.conf dans /etc/apache2/conf-available/ contenant
ServerName localhost
  • Activer cette configuration
a2enconf fqdn
 
  • Redémarrer Apache


Sécurisation


Par défaut, Apache est configuré pour fournir, dans l'entête de réponse à une requête, des informations le concernant.

Réponse	HTTP/1.1 200 OK
Server	Apache/2.4.7 (Ubuntu)


Ces informations pourraient être utilisées par des personnes malveillantes. Il est donc utile de les réduire et de les masquer.

  • Editer le fichier /etc/apache2/conf-available/security.conf
  • Changer la valeur de ServerTokens pour Prod
Full -
Server Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.3

OS -
Server Apache/2.4.7 (Ubuntu)

Minimal -
Server Apache/2.4.7

Minor -
Server Apache/2.4

Major -
Server Apache/2

Prod -
Server Apache
 
  • Redémarrer Apache


De même, lors de l'appel à une page inexistante, la page d'erreur 404 peut afficher ce genre d'information

Apache Server at xxx Port 80
  • Editer le fichier /etc/apache2/conf-available/security.conf
  • Changer la valeur de ServerSignature pour Off
  • Redémarrer Apache


PHP


Avant de commencer

Lors de l'installation de PHP5, Apache passera du MPM event au MPM prefork.
 

Installation


  • sudo apt-get install php5
    
  • Premier test
  • Créer un fichier phpinfo.php dans /var/www/html
<?php phpinfo.php; ?>
  • Trustyphp01.png


Configuration

Le fichier de configuration php.ini se trouve dans /etc/php5/apache2/
 
  • Activer l'affichage de toutes les erreurs php
  • Editer le fichier /etc/php5/apache2/php.ini
  • Replacer display_errors = Off par display_errors = On
  • Redémarrer Apache


Sécurisation


Par défaut, PHP est configuré pour fournir, dans l'entête de réponse à une requête, des informations le concernant.

Réponse	HTTP/1.1 200 OK
X-Powered-By PHP/5.5.9-1ubuntu4.3


Ces informations pourraient être utilisées par des personnes malveillantes. Il est donc utile de les masquer.

  • Editer le fichier /etc/php5/apache2/php.ini
  • Changer la valeur de expose_php pour Off


MySQL


Installation


  • sudo apt-get install mysql-server
    
Lors de l'installation le message suivant pourrait apparaître : [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
Dans ce cas
  • Editer le fichier /etc/mysql/my.cnf et remplacer key_buffer par key_buffer_size ainsi que myisam-recover par myisam-recover-options
  • Vérifier le fichier /var/log/mysql/error.log ne contient par d'autres erreurs ou warnings
 
  • sudo apt-get install mysql-client
    
  • Premier test
  • mysql -u root
    
  • Trustymysql01.png
  • sudo apt-get install php5-mysql
    
  • Redémarrer Apache
  • Deuxième test
  • Créer un fichier mysql.php dans /var/www/html
1 <?php
2 $connection = mysql_connect("localhost","root","...password...");
3 if (! $connection)
4 	die ("Mysql for php is not ok : ".mysql_error());
5 else
6 	echo "Mysql for php is ok";
7 mysql_close($connection); 
8 ?>
  • Trustymysql02.png


Configuration

Pour redémarrer MySQL :
sudo service mysql restart
 
Si aucun mot de passe n'a été défini pour l'utilisateur root lors de l'installation, ne pas oublier d'en définir un.
 
  • Définir un mot de passe pour root

phpMyAdmin


Installation


  • sudo apt-get install phpmyadmin
    

Lors de l'installation :

  • Serveur web à reconfigurer automatiquement : apache2
  • Faut-il configurer la base de données de phpmyadmin avec dbconfig-common : oui


Configuration


  • Activer le module mcrypt
sudo php5enmod mcrypt


Par défaut, phpMyAdmin se lancera dans la langue du navigateur. Pour qu'il se lance toujours en anglais

  • Editer le fichicher /etc/phpmyadmin/config.inc.php et y ajouter, à la fin,
$cfg['Lang'] = 'en-utf-8';