tag_debian_lamp_apache_mysql_php_web_tutoriel
Installation de Debian 6
Le paquet apache2 installe le serveur Apache 2.
Le paquet mysql-server installe le serveur MySQL.
Le paquet php5 installe le langage PHP 5 et, grâce aux dépendances, le module d'intégration dans Apache (paquet libapache2-mod-php5).
Le paquet php5-mysql installe les mécanismes de communication e ntre PHP 5 et MySQL.
aptitude install apache2 php5 mysql-server php5-mysql
Entrer un mot de passe pour l'utilisateur “root” de MySQL
Entrer à nouveau ce mot de passe pour confirmer
Entrer l'adresse de votre serveur dans un navigateur
http://localhost ou http://adresse_ip_du_serveur
Une page contenant ce texte doit s'afficher :
** It works! ** This is the default web page for this server. The web server software is running but no content has been added, yet. Si ce n'est pas le cas redémarrer apache
/etc/init.d/apache2 restart
Créez le fichier /var/www/test.php contenant : <? phpinfo(); ?>
nano /var/www/test.php
taper le texte suivant:
<? phpinfo(); ?>
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
Entrer l'adresse de votre serveur dans un navigateur
http://localhost/test.php ou http://adresse_ip_du_serveur/test.php
Une page contenant les infos sur PHP doit s'afficher
aptitude install phpmyadmin
Sélectionner le serveur web précédemment installé : Apache
Répondre Oui à la question : Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ?
Entrer le mot de passe administrateur de MySQL (celui créé à l'installation de MySQL)
Entrer un mot de passe de connexion MySQL pour phpmyadmin
Confirmer ce mot de passe
Dans un navigateur, entrer l'adresse de phpmyadmin sur votre serveur
http://localhost/phpmyadmin ou http://adresse_ip_du_serveur/phpmyadmin
La page d'authentification de phpmyadmin doit s'afficher
Se connecter avec le compte root et le mot de passe définit à l'installation de MySQL
Source : http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2
Après redémarrage d'Apache (/etc/init.d/apache2 restart) le message suivant apparaît:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Il faut rajouter dans le fichier /etc/apache2/apache2.conf la ligne:
ServerName localhost
Pour chaque sites hébergés il faut ajouter une ligne dans le fichier /etc/hosts
nano /etc/hosts
taper le texte suivant:
127.0.0.1 monsite1.fr 127.0.0.1 monsite2.fr
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
Créer les répertoires correspondant à chaque site dans /var/www/
mkdir /var/www/monsite1 mkdir /var/www/monsite2
Créer les fichiers de configuration pour chacun des sites dans /etc/apache2/sites-available/
(un modèle existe : /etc/apache2/sites-available/default)
nano /etc/apache2/sites-available/monsite1
taper le texte suivant:
<VirtualHost *>:80
ServerAdmin webmaster@monsite1.fr
ServerName monsite1.fr
ServerAlias www.monsite1.fr
DocumentRoot /var/www/monsite1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/monsite1>
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}/monsite1_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
Faire la même chose avec les autres sites
Activer les sites :
a2ensite monsite1 a2ensite monsite2
Recharger la configuration d'apache
/etc/init.d/apache2 reload
Vos sites doivent maintenant être accessibles (http://monsite1.fr, http://monsite2.fr )
N'oublier pas de créer une page sur chacun des sites pour tester :
nano /var/www/monsite1/index.html
taper le texte suivant:
<h1>monsite1</h1>
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
nano /var/www/monsite2/index.html
taper le texte suivant:
<h1>monsite2</h1>
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
Pour désactiver un site :
a2dissite monsite1 /etc/init.d/apache2 reload
aptitude install openssl
openssl req -x509 -nodes –days 365 -newkey rsa:1024 –out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Explications :
- x509 -nodes donne le type de certificat voulu
- days 365 indique la durée de validité (en jours) de votre certificat
- newkey rsa:1024 demande une clé RSA de 1024 bits - d'après la doc apache, il est déconseillé de créer une clé plus grosse pour des histoires de compatibilité
- out /etc/apache2/server.crt est le chemin de votre certificat
- keyout /etc/apache2/server.key est le chemin de la clé privée
Répondre aux questions :
Country Name (2 letter code) [AU]: FR State or Province Name (full name) [Some-State]:FRANCE Locality Name (eg, city) []:TOULOUSE Organization Name (eg, company) [Internet Widgits Pty Ltd]:SOCIETE Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:mondomaine1.fr Email Address []:admin@mondomaine1.fr
Protéger la clé privée :
chmod 440 /etc/apache2/server.key
a2enmod ssl
Editer le fichier /etc/apache2/ports.conf
nano /etc/apache2/ports.conf
ajouter la ligne (si elle n'est pas déjà présente) :
Listen 443
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
Ouvrir le fichier de configuration du site à sécuriser
nano /etc/apache2/sites-available/monsite1
Modifier le port 80 = 443
Ajouter les directives
SSLEngine on : permet d'activer le moteur SSL au sein d'un hôte virtuel, Elle peut prendre deux arguments –> on/off
SSLCertificateFile /etc/apache2/server.crt : définit le certificat authentifiant le Serveur auprès des clients
SSLCertificateKeyFile /etc/apache2/server.key : définit la clé privée du Serveur utilisée pour signer l'échange de clé entre le client et le serveur
Ce qui donne :
<VirtualHost *:443>
ServerAdmin webmaster@monsite1.fr
ServerName monsite1.fr
ServerAlias www.monsite1.fr
DocumentRoot /var/www/monsite1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/monsite1>
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}/monsite1_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>
Faire Ctrl + O pour enregistrer, puis Entrer pour valider le nom du fichier à écrire
Ctrl + X pour fermer nano
/etc/init.d/reload
Le site doit maintenant être accessible à l'adresse : https://monsite1.fr