Skip navigation

Debian 7 : LAMP

Mise en place d’un serveur web (LAMP) sous Debian Wheezy

Comme un serveur web est une machine dont la configuration change une fois mise en place, il est recommandé de mettre à jour l’OS avant de commencer.

root@debian~#: aptitude update
root@debian~#: aptitude upgrade

Installation de apache.

root@debian~#: aptitude install apache2

: pour vérifier si apache est bien en place, il suffit d’entrer l’IP du serveur dans un navigateur. Il devrait y avoir un message semblable au suivant.

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Édition du fichier de configuration.

root@debian~#: vim /etc/apache2/apache2.conf
# Prise en compte de UTF-8
AddDefaultCharset UTF-8

# Type de fichier à prendre en compte
DirectoryIndex index.html index.htm index.xhtml index.php

# Reverse DNS (ou à défaut le serveur lui même : localhost)
ServerName localhost

Voilà pour la configuration de base.

Dans la version 2.2 d’apache, il faut activer le module userdir. Ainsi, chaque utilisateur aura son dossier www/.

root@debian~#: a2enmod userdir

De cette façon, il est possible d’accéder au contenu de l’espace web /home/USER/www/ à partir de l’adresse http://www.nom-de-domaine.org/~USER/

Un fois sauvegarder, il fait redémarer le service apache.

root@debian~#: service apache2 restart

sortie

[ ok ] Restarting web server: apache2 ... waiting .

: il faudra redémarrer le service plusieurs fois au cours de cette procédure. La sortie devrait toujours êre similaire à celle présenté ci-dessus. Par conséquent, la sortie du redémarrage du service ne sera plus réécrite.

Afin de rendre la gestion des différents sites web plus aisée. Il est recommandé de mettre le site par défault dans un sous-dossier du répertoire www/. Ainsi le site par défaut sera dans le dossier default-site/.

root@debian~#: mkdir /var/www/default-site

Délplacement du fichier index.html.

root@debian~#: mv /var/www/index.html /var/www/default-site/index.html

Il faut maintenant indiquer cela à apache via les fichiers /etc/apache2/sites-available/default et /etc/apache2/sites-available/default-ssl en ajoutant le nouveau dossier du site par défault.

: le nom de fichier et son contenu diffère quelque peu sous Debian et Ubuntu.

: sous Ubuntu

root@ubuntu~#: vim /etc/apache2/sites-available/000-default.conf

: sous Debian

root@debian~#: vim /etc/apache2/sites-available/default

contenu du fichier sous Debian

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Après modification, le fichier devrait être semblable à celui-ci.
contenu du fichier sous Debian

<VirtualHost *:80>
	ServerAdmin administrateur@mail.org
	ServerName 2.16.117.153
	DocumentRoot /var/www/default-site
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/default-site/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

: comme indiqué plus haut, le contenu change de Debian à Ubuntu, mais le principe est le même. Sous Ubuntu 14.04 il n’y a que le DocumentRoot à modifier.

Où :

  • ServerAdmin administrateur@mail.org est l’email de l’administreur du/des site/s ;
  • ServerName 2.16.117.153 l’IP du serveur ;
  • DocumentRoot /var/www/default-site le chemin du répertoire pour ce vhost.

Pour le /etc/apache2/sites-available/default-ssl, voici les modifications à apporter (au début du fichier).
aperçu du contenu du fichier

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/default-site
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/default-site/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

Comme le site par défaut est traité comme un site, il faut l’activer. Pour se faire c’est la commande a2ensite avec comme paramètre le nom de vhost qui est utilisé.

Cette commande crée un lien symbolique dans le répertoire des sites en activité : /etc/apache2/sites-available/.

root@debian~#: a2ensite default

sortie

Enabling site default.
To activate the new configuration, you need to run:
  service apache2 reload

Pour que ces modifications soient prises en compte, il faut redémarrer le service apache.

root@debian~#: service apache2 restart

: bien que la sortie de la commande a2ensite demande le « reload » de la configuration du service apache, je préfère le rédémarrage qui inclut le recharchement de ce fichier.

Réécriture d’URL

: dans l’aperçu de contenu de fichier précédent, la ligne AllowOverride All est une des étape permetant d’activer la réécriture d’URL. Il faut aussi éditer le .htaccess du site et activer le module rewrite.

: sous Ubuntu (14.04) il faut éditer le fichier /etc/apache2/sites-available/000-default.conf et rajouter les ligne suivantes.

<Directory "/var/www">
	AllowOverride All
</Directory>

Activer le module de réécriture d’URL et redémarrage du service apache.

root@debian~#: a2enmod rewrite
root@debian~#: service apache2 restart

Ajouter un nom de domaine

Une fois que la redirection de type A est effectué chez le registra, il faut créer le vhost pour ce nom de domaine. Il y a donc un vhost par nom de domaine.

Création du dossier.

root@debian~#: mkdir /var/www/domaine.org

Création du fichier index. Ce pour tester la configuration ultérieurement, le contenu est donc aussi à modifier.

root@debian~#: cp /var/www/default-site/index.html /var/www/domaine.org

: toujours pour rendre la gestion du serveur web aisé, j’ai choisi de nommer le dossier avec le nom de domaine associé.

Création du vhost associé.

root@debian~#: vim /etc/apache2/sites-available/domaine.org

contenu du fichier

<VirtualHost *:80>
	ServerAdmin administrateur@mail.org
	ServerName domaine.org
	ServerAlias www.domaine.org
	DocumentRoot /var/www/domaine.org
	<Directory /var/www/domaine.org/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
	</Directory>
	ServerSignature Off
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Le vhost du domaine est senssiblement le même que celui pour la configutation du vhost pour l’IP du serveur.

  • ServerAdmin administrateur@mail.org est l’email de l’administreur du/des site/s ;
  • ServerName domaine.org le nom de domaine ;
  • DocumentRoot /var/www/domaine.org le chemin du répertoire pour ce vhost.

Activation du nouveau site.

root@debian~#: a2ensite domaine.org

sortie

Enabling site domaine.org.
To activate the new configuration, you need to run:
  service apache2 reload

Redémarrage de service apache.

root@debian~#: service apache2 restart

Installation de PHP

Voici le paquet installant PHP 5.

root@debian~#: aptitude install libapache2-mod-php5

Installation de quelques modules supplémentaires.

root@debian~#: aptitude install php5-gd php5-mcrypt php-pear

Configuration de base de PHP,

root@debian~#: vim /etc/php5/apache2/php.ini

aperçu du contenu du fichier

short_open_tag = On
display_errors = Off
log_errors = On
file_uploads = On
upload_max_filesize = 200M
max_execution_time = 60

: les commentaires du fichier de configuration sont très explicite. C’est pourquoi je ne détaillerais pas ces paramètres. Cependant, en les configurant ainsi, le serveur web sera moins sujet à conflit/erreur.

Redémarrage de service apache.

root@debian~#: service apache2 restart

Pour tester la l’installation de PHP5 et sa configuration il faut faire un fichier index.php et appeler la fonction phpinfo(). Ce qui devrait donner quelque chose comme ceci.

php-info

Installation de MySQL et de phpMyAdmin

Installiton de MySQL server.

root@debian~#: aptitude install mysql-server

Maintenant que MySQL est installer, pour que PHP puisse le prendre en charge, il lui faut le module php5-mysql.

root@debian~#: aptitude install php5-mysql

Installation de phpMyAdmin.

root@debian~#: aptitude install phpmyadmin

Accéder à phpMyAdmin

Il faut maintenant le rendre accessible. Pour ce faire, il y a deux solutions. L’inclure dans le fichier du configuration de apache ou faire un lien symbolique vers le répertoire de son choix (généralement le site par défault).

Ajout de phpMyAdmin dans apache

Il faut éditer une nouvelle fois le fichier /etc/apache2/apache2.conf.

root@debian~#: vim /etc/apache2/apache2.conf

aperçu du contenu du fichier

# Inclut phpMyAdmin
Include /etc/phpmyadmin/apache.conf

Redémarrage du service.

root@debian~#: service apache2 restart
Création d’un lien synbolique pour accéder à phpmyadmin
root@debian~#: ln -s /usr/share/phpmyadmin/ /var/www/default-site/

: Cette méthode à l’avantage de NE PAS rendre phpMyAdmin accessible depuis tous les domaines ou sous-domaines. Il est toujours possible de faire autant de lien symbolique que souhaité plus tard.

/etc/apache2/sites-available/000-default.conf

by | March 22, 2015 | No Comments | Système | Tags : serveur