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.
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 Nicolas SHINEY | March 22, 2015 | No Comments | Système | Tags : serveur